模拟ic设计基础电路入门模块套餐,有LDO 电压比较器,带隙基准(低压) 电荷泵(带二阶曲率补偿),全差分运放,轨到轨运放,DAC,TDC DLL大部分有版图,适合入门学习
module ldo (vin, vout, fb); input vin, fb; output vout; electrical vin, vout, fb; parameter real vref = 1.2; analog begin V(vout) <+ V(vin) - (vref - V(fb)) * 1e3; // 误差放大系数粗暴设为1000 end endmodule这代码里的误差放大器被简化成直接乘系数,实际版图里得考虑运放增益和相位补偿。注意PMOS调整管的宽长比直接决定最大输出电流,新手常犯的错误是漏级电压没留够裕度导致提前进入线性区。
低压带隙基准是个有意思的矛盾体——既要低电压又要高精度。传统结构在1V以下直接崩,这时得玩点花活:
M1 3 2 0 0 nmos W=2u L=0.5u M2 4 2 0 0 nmos W=2u L=0.5u Q1 5 3 0 substrate_npn Q2 6 4 0 substrate_npn area=8 R1 5 7 3k PTAT电流从R1上产生...这个结构用衬底PNP替代垂直管,虽然β值低但能在0.8V下工作。二阶补偿靠的是Q2的面积倍增,版图布局时必须保证热耦合——把两个BJT背靠背放成哑铃状是基本操作。
电荷泵的开关时序像在跳踢踏舞,特别要注意电荷注入效应。加个补偿电容的代码片段:
sw1 (phi1, top) switch resistor=1e6 sw2 (phi2, bottom) switch resistor=1e6 Cfly 10p top bottom Ccomp 2p bottom 0 // 二阶补偿关键版图里飞电容要搞成叉指结构,金属层选用顶层厚金属降低寄生。曾经有个坑是忘记给开关管加dummy栅,导致时钟馈通电压差出30mV。
模拟ic设计基础电路入门模块套餐,有LDO 电压比较器,带隙基准(低压) 电荷泵(带二阶曲率补偿),全差分运放,轨到轨运放,DAC,TDC DLL大部分有版图,适合入门学习
全差分运放的共模反馈(CMFB)是灵魂所在,新手容易在这里翻车。看个简化的CMFB电路:
Rcm1 out+ cmfb 10k Rcm2 out- cmfb 10k Mcmfb cmfb_cntrl cmfb 0 0 nmos L=0.18u版图布局必须保证对称性,连走线拐弯次数都要一致。有个野路子是在敏感节点周围铺满接地dummy管,实测能降低10%的失调。
DAC玩电流舵结构时,单位电流源版图得像拼乐高一样严格匹配。动态元素匹配(DEM)的代码实现可以很暴力:
always @(posedge clk) begin therm_code = shuffle(therm_code); // 随机扰动温度计码 end实际做版图会在电流源矩阵中心放个旋转对称的dummy环,像护城河一样围着核心阵列。
最后说说DLL里的压控延迟线,关键在调节线性度。曾经在0.13um工艺下试过这种骚操作:
Xdelay_unit in out vctrl delay_cell .model delay_cell dll_delay( + vctrl_coeff = 0.3e-9 // 每伏特延迟变化量 + nonlinear = 0.02e-12 // 二阶非线性系数 )版图布局要把控制电压走线屏蔽得像防弹衣,任何耦合噪声都会让抖动指标崩盘。有个玄学技巧是在延迟链旁边并排放等长的dummy线,据说能改善10%的线性度。
这些模块的版图有个共同禁忌:绝对不要在重要电路上方走时钟线!曾经有个LDO的版图在调整管上面穿了条时钟线,结果负载调整率直接恶化三倍。入门阶段建议多用保形布局——哪个管子原理图上挨着,版图上也尽量物理靠近。