手把手带你玩转40nm SAR ADC设计

张开发
2026/5/4 17:16:16 15 分钟阅读
手把手带你玩转40nm SAR ADC设计
10bit 50MHz SAR ADC适合新手入门学习 Cadence仿真指导和SMIC 40nm工艺库轻松搭建完整系统 电路包括栅压自举开关、CDAC、比较器、SAR逻辑等还带测试电路 支持设计更高速度的TI ADC联系即发链接 特点适合初学者附带详细教程轻松掌握各个模块原理最近在GitHub上扒到一个超适合新手的SAR ADC项目10bit精度带50MHz采样率关键是用的是SMIC 40nm工艺库这工艺现在可是国内流片的热门选项拿这个练手绝对血赚。今天咱们就拆解这个项目的核心模块顺便分享几个Cadence仿真的骚操作。先看这个自举开关电路新手最容易翻车的地方。代码里用了动态衬底偏置技术直接上硬货ahdl_include gpdk045_v2.4.scs module boot_switch( in, out, clk, vdd); electrical in, out, clk, vdd; parameter real vth 0.45; analog begin (cross(V(clk) - vth, 1)) begin V(out) V(in) * 1.8; // 自举电压拉满 } (cross(V(clk) - vth, -1)) begin V(out) 0; // 关断时彻底放电 } end endmodule这个自举电路妙在用了工艺库里的精确阈值模型仿真时记得在ADE里勾选reltol1e-6才能捕捉到开关毛刺。上次有个哥们没注意这个结果SNR差了5dB找谁说理去CDAC阵列是项目的精髓所在二进制加权电容用了分段结构。在Layout里你会发现顶层用了MOM电容但单元模块里藏着个骚操作——用金属走线自己绕电容这种拼金属的玩法在40nm里特别吃香面积省一半不说匹配度还高。看这个匹配参数options errpresetmoderate m1 c100fF sigma0.5% // 蒙特卡洛设置跑蒙特卡洛仿真时记得开mismatch选项新手常犯的错就是只看典型值结果流片回来线性度崩了。10bit 50MHz SAR ADC适合新手入门学习 Cadence仿真指导和SMIC 40nm工艺库轻松搭建完整系统 电路包括栅压自举开关、CDAC、比较器、SAR逻辑等还带测试电路 支持设计更高速度的TI ADC联系即发链接 特点适合初学者附带详细教程轻松掌握各个模块原理比较器用了三级动态锁存结构关键在auto-zeroing相位控制。这里有个细节——在复位相位偷偷加了0.1ps的延时实测能规避比较器亚稳态。在VerilogA模型里是这样实现的(timer(0.1p)) begin latch_out (inp inn) ? vdd : 0; end别小看这0.1ps跑瞬态仿真时用gear2算法才能准确捕捉这个时序魔术。SAR逻辑最带劲的是用状态机控制CDAC代码里藏了个防误触发机制——每个D触发器后面都加了延时链校准。建议新手仿真时打开Virtuoso的waveform窗口把clk、compout、sarctrl这些信号拖到一起看瞬间明白状态机怎么跳的。测试电路部分要给五星好评自带码型生成器和眼图分析脚本。用Ocean跑批处理记得改这个参数simulatorOpts list( spectre lq log_$i.log escchars aps processtypical )跑完直接调用Python脚本画INL/DNL曲线比手动处理数据快十条街。实测这个ADC的DNL做到±0.5LSB新手能调成这样属实不易。需要更高速度的兄弟注意了项目作者留了个TI-ADC的扩展接口。在顶层schematic里有个标着TI_Link的port按readme里的方法改时钟相位就能玩多通道交织。想飙到200MHz以上私信老哥有神秘链接附带24G SerDes的参考设计...

更多文章