adc逆向数据,只含模拟部分:16bit pipleline原理图,仅供个人学习使用,适合有一...

📅 发布时间:2026/7/11 22:47:16 👁️ 浏览次数:
adc逆向数据,只含模拟部分:16bit pipleline原理图,仅供个人学习使用,适合有一...
adc逆向数据只含模拟部分:16bit pipleline原理图仅供个人学习使用适合有一定基础的小伙伴只提供数据先看这张逆向出来的16bit pipeline ADC模拟部分结构简图手动狗头红色虚线框里藏着采样保持和15级1.5bit子级联。注意第三级MDAC的电容阵列有点妖C1到C4的比值是2.73:1:1:1而不是常见的2:1:1:1——这骚操作八成是为了补偿前级残差放大器的非线性。重点看第二级残差放大器周围布局原理图上标着诡异的相位裕度62度但增益却掉到86dB。这数据明显反直觉逆向时可能有参数丢失。试着用SPICE跑了个简化的双级运放模型.subckt OTA_2stage vdd gnd in in- out M1 n1 in n3 gnd nmos w2u l0.18u M2 n2 in- n3 gnd nmos w2u l0.18u M3 n3 vbias gnd gnd nmos w4u l0.18u M4 n1 n1 vdd vdd pmos w8u l0.18u M5 n2 n1 vdd vdd pmos w8u l0.18u M6 out vbias2 n4 gnd nmos w16u l0.18u M7 n4 n2 vdd vdd pmos w32u l0.18u Cc out n2 500f Cl out gnd 2p .ends这个架构的米勒补偿电容Cc取值500fF时相位裕度才勉强到58度。逆向数据里看到的62度说明原设计可能在第二级电流镜做了手脚比如动态偏置或者局部正反馈补偿。时序控制方面逆向文档里有张模糊的时序波形截图。放大看比较器锁存信号和采样开关的overlap时间约120ps——这在16bit精度下简直是玩火。算下kT/C噪声当Csample320fF时热噪声功率约78nV/sqrt(Hz)但级间时序抖动产生的噪声会吃掉至少3个LSB。原设计敢这么搞八成在数字后台做了抖动校准不过模拟部分确实够激进。adc逆向数据只含模拟部分:16bit pipleline原理图仅供个人学习使用适合有一定基础的小伙伴只提供数据MDAC里的开关电荷注入问题值得注意。看原理图里nmos开关的衬底接法第四级突然改成Dummy开关结构。实测数据中第三级INL在0x3FFF附近有0.8LSB的突变可能就是电荷注入补偿不足。用Verilog-A建模开关非线性时发现了有趣现象include constants.h include disciplines.h module switch_model (in, out, ctrl); electrical in, out, ctrl; parameter real Ron 100; parameter real Vth 0.45; analog begin if (V(ctrl) Vth) begin V(out,in) V(out,in)*Ron; end else begin V(out,in) 1e12; // 断开阻抗 end // 注入电荷模型 $bound_step(0.1e-12); // 时间步长控制 if (cross(V(ctrl) - Vth, 1)) begin I(in) 0.5e-15 * ddt(V(ctrl)); // 电荷注入补偿项 end end endmodule当开关尺寸超过8um/0.18um时这个简化模型和实测误差曲线开始出现明显偏差说明逆向时可能漏掉了衬底偏置调制效应。最后提个醒逆向数据里的基准电压生成电路用了三级cascode结构但PSRR在100kHz处突然掉到46dB。这坑爹特性导致实测中当数字部分大规模翻转时ADC输出会有周期性毛刺。建议自己复现时在基准和电源间加个RC滤波时间常数至少要比时钟周期大三个数量级。代码和原理图细节涉及逆向工程对象部分参数已做模糊处理请勿直接用于商业设计