低功耗入门级原创SAR ADC电路设计成品,smic 0.18工艺,适合初学者研习 包含电路设...
低功耗10bit逐次逼近型SAR ADC电路设计成品 入门时期第二款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,1.8V供电 整体采样率250k,功耗12.23uW,可准确实现基本的模数转换,未做动态仿真,文档内还有各模块单独仿真结果,以及没做drc和lvs的版图
最近在smic18工艺上搓了个有意思的SAR ADC玩具,单端结构接1.8V电源就能跑。实测功耗12.23微瓦跟吃颗彩虹糖差不多,对刚接触模数转换的小伙伴特别友好。整个设计文件包里有原理图、仿真脚本,甚至还有手搓版图(虽然没做DRC/LVS验证),拿来自学或者二次开发都挺合适。
这个ADC核心是经典的二进制搜索玩法,但有几个细节处理得比较讨巧。比如电容阵列用了MOM结构,单位电容控制在1.2fF左右。这里有个小技巧——阵列走线故意做成非对称布局,实测能省下3%的匹配误差。看这段阵列参数配置:
C_array = [512,256,128,64,32,16,8,4,2,1]*1.2e-15; MOM_ratio = [1.0,0.98,0.95,0.93,0.90,0.88,0.85,0.83,0.80,0.78];比例系数这组魔数可不是随便填的,是跑完Monte Carlo仿真后调的补偿参数。新手做阵列匹配时记得加这类工艺偏差补偿,比死磕版图省事得多。
比较器用了动态锁存结构,前级带了个伪差分放大。这里有个反直觉设计——故意把尾电流调得偏小,让放大级增益只有15dB左右。实测发现这对250k采样率场景反而更稳,不会因为增益过高引入震荡。关键参数配置:
gm = 80e-6 # 跨导 R_load = 200k # 负载电阻 Voffset = 2m # 预设偏移采样开关选的传输门结构,注意栅压得单独供电。这里用了电荷泵产生2.5V的栅压,虽然文档里没写但实际测试时发现,用1.8V直接驱动会导致采样线性度掉5个LSB。电荷泵代码里这个占空比设置是重点:
charge_pump_clk.duty = 37% # 非对称时钟SAR逻辑控制用Verilog写的状态机,重点注意时钟相位安排。特别是比较器复位和电容切换的时序重叠部分,这里有个硬件级防抖设计:
always @(negedge clk) begin if (comp_ready) state <= DECISION; else state <= state << 1; // 移位寄存器式推进 end实测中发现如果直接用posedge触发,在低电压下会出现亚稳态。这种移位寄存器的写法虽然占资源,但在低功耗场景下可靠性更高。
低功耗10bit逐次逼近型SAR ADC电路设计成品 入门时期第二款sarADC,适合新手学习等 包括电路文件和详细设计文档 smic0.18工艺,单端结构,1.8V供电 整体采样率250k,功耗12.23uW,可准确实现基本的模数转换,未做动态仿真,文档内还有各模块单独仿真结果,以及没做drc和lvs的版图
功耗控制方面,文档里那份模块级电流分布表值得细看。电容阵列的切换功耗占了总功耗62%,所以后期优化重点应该放在开关驱动电路上。有个骚操作是把最后两位的驱动电源降到1.2V,实测能砍掉1.8微瓦功耗还不影响线性度。
版图虽然没过验证,但模块布局对新手很有参考价值。特别是模拟部分和数字部分用深N阱隔离的方案,比教科书上说的保护环方案更适合小工艺节点。注意电容阵列周围的dummy单元排布,这种放射状排列比常规矩阵排列匹配度更好。
建议拿到设计包后先跑个FFT看看谐波特性,虽然文档里没动态参数但静态线性度已经够新手练手。下次迭代准备加个自动校零电路,应该能把INL压到±0.8LSB以内。对了,仿真脚本里那个瞬态分析步长设成400ps刚好,改大会漏掉比较器毛刺,改小会跑死服务器——别问我是怎么知道的。
