10位50MHz的PIPELINE ADC的数字电路对整体电路性能影响太大了!
正向设计10位50MHz的PIPELINE ADC,在tt情况下对电路进行前仿真。
第一次仿真时发现有效位数才8.4位,而且谐波比较大,甚至有偶次谐波。但是找不到原因,郁闷着。
边郁闷边找原因,突然有一天感到ADC中的数字电路让我感到不爽!尤其是后面的错位相加电路,由于是组合电路,导致最后的10位数值输出D0~D9有许多毛刺,有的毛刺甚至有500ps的宽度,这些有毛刺的数字输出经过理想的DAC后,产生的模拟信号让我看着不舒服。
当时想法是,反正也找不到谐波比较大的原因,闲着也是闲着,先把数字电路修改一下吧。于是花了2天的时间,主要采用加缓冲器延时的方法,总算把组合电路调整的让人满意了,起码俺自己满意,10位数值输出D0~D9不再有毛刺。
正好又到周末,于是又想,既然改了电路,那就再仿真一次吧,反正这个周末不在公司加班。于是2天的时间,让亲爱的LINUX对我的ADC又仿真了一次。
周一看结果,让我感到不可思议了:SNR=61dB,ENB=9.8bits,SFDR=76.66dB。
这个结果与ENB=8.4差距太大了!难道数字电路对整体电路性能的影响会有这么大吗?还是俺的电路设计的不对?
你这是个假问题。为了得到adc的性能,非要用理想dac把adc输出转成模拟量,是最有问题的一种做法。
你的数字输出都不经DFF的?
为什么这么说?
你接理想DAC了毛刺也有影响?不至于吧。理想DAC只要能正确判断01有毛刺也没有关系吧
回复gaojun927:我使用Hspice仿真的。我一般是把数字量转换成模拟量,再进行fft分析。不知道您是如何仿真ADC性能的?
回复半支烟,我是这样想的:比如有一个0~3.3V的毛刺,这个毛刺有几百个皮秒的宽度。那么理想DAC会把这个毛刺转换成模拟信号,这个模拟信号就会有一个不该有的信号了。
用理想dac之后怎么做?接着fft?fft时时间怎么取?你就等于不停的采样,sh,再采样,这不是绕圈子吗?而且又在担心什么毛刺,那显然是重新采样时算进去了不该算的东西。所以我说你这是个假问题,概念不清楚的人就被自己绕进去了。
ADC数字输出本来就是一个离散时间的信号,这些数字输出经过DAC后,仍然是一个离散时间的信号,我对这些离散时间的信号做FFT(前提是取点的采样率和ADC的采样率一致),个人认为,不存在SH的动作。而如果做FFT的取点采样率不跟ADC的采样率一致,那倒确实是有过采样或者欠采样的问题了,但对harmonic这些东西,应该是没有影响的。
你这毛刺也太高了吧。话说你用理想DAC转换间隔应该是和采样速率一个间隔。取点的时候也应该等间隔取点。我觉得是没有影响的哈
回复8,9,10楼的兄弟:就像9楼lonerinuestc说的那样,我就是对这些离散时间的信号做FFT的。不知道8楼的gaojun927兄弟是如何测试ADC性能的?
回复10楼的兄弟:看来我的描述有误,组合电路的输出中出突然有0~3.3V的突变,而且时间有几百皮秒,这就不应该是毛刺了吧,应该说组合电路的功能是不对的。这对理想DAC的输出肯定是有影响的吧!
如果你是准确的在每个adc输出建立好之后对dac输出做fft,那你所描述的现象就不应该出现。相反,按照你的描述,给人的感觉就是你做fft的位置恰好采到了毛刺位置,但实际中在adc的后端是同步时序电路,那些毛刺不应该影响任何结果。我之所以不喜欢那种dac的方法,是因为总有人在给dac的结果做fft时不那么小心,用dac输出的连续波形的fft分析去代替adc的离散结果的fft分析。
突然想到个问题,请前辈指教。如果你就把DAC的输出当做连续时间信号来做FFT(假设没有貌似这些个东西),那么所得到的频谱是不是跟把DAC输出当做离散时间信号来FFT的结果一致?我感觉像是一致的,因为好比是用了一个超高速的SH来采样这个信号,那他的频谱应该是不变的,但是说不出太多理由。您觉得呢?
我理解你是说对dac的输出过采样,而且这个dac就是严格的对adc的输出做SH?那就可以看到SH过程对信号的影响,其实完全可以在离散域想象这个过程。
谢谢分享,好好学习下。
小编是说你的adc的数字输出本身也有毛刺,而不是经过理想dac 才有的毛刺?
话说我做的一个12b 160M的pipeline的SNR也才53dB,我看了一下数字输出本身也有毛刺,有的甚至宽度在1ns,而在100M下仿真的时候就没有毛刺,100M下SNDR可以仿到72.5dB,不知道是不是这里的原因。我再看看。
数字逻辑是否有问题,否则似乎不应该这样
申明:网友回复良莠不齐,仅供参考。如需专业解答,请学习本站推出的微波射频专业培训课程。
上一篇:丝印C3E是什么芯片
下一篇:5输入与非门,在传输低电平0信号时,可靠吗?