小弟新人一个,最近在设计一个100M,10bit,首级3.5bit的无采保流水线ADC时遇到一些问题。简单地说就是输入sin信号时,首级输出误差达到50mV左右,但是后级接理想ADC之后,得到总输出数字码的信噪比却达到了60dB。
我在这里采用的是3.5bit的首级,所用的结构和时序参照这篇文章Design Techniques for a Pipelined ADC Without Using a Front-End Sample-and-Hold Amplifier,作者是Dong-Young Chang,下图为结构图,与图中结构有些不同的地方在于,我实际中在比较器前仍然加了预放大电路。
仿真的时候发现,提前关断开关采用MOS管时,输入斜方波,可以看到看到正常的3.5bit的输入输出曲线。在采样相末尾,提前关断时钟关断那个时间节点,读输入信号值,然后在读出保持相的输出结果。按照8vin+D0*Vref的关系式验算,比较仿真值和误差值关系,误差范围在可容忍的范围内。后接理想ADC,输出的数字码经过matlab还原,可以得到一个完整的原输入信号。但是将输入换成sin信号以后,仍然采用原先的方式进行验算,发现仿真值和计算值相差很大。误差是一个非线性误差,斜率大的位置,误差大。但是,此时,经过AD转换后的数字码经过MATLAB仿真测试后,可以得到很高的信噪比和动态范围(分别为SNR=60dB,SFDR=73dB)。如果将提前关断的开关换成理想开关时,可以保证在输入信号为sin时,第一级输出信号的仿真值和计算值误差在可以容忍的范围内,但是,经AD转换后的数字码的信噪比和无杂散动态范围都变得很低(SNR=30dB左右,SFDR=36dB左右)。可以看到三次谐波很高,躁底也变得很高。请问各位大大,有没有遇到过类似的情况?以及如何解决?是我的验算方法有问题吗?还是有什么其他问题?