首页 / 资讯中心 / 文章详情

模拟IC设计经验法则:从版图匹配到流片测试的工程实践

模拟IC设计经验法则:从版图匹配到流片测试的工程实践 ★ FEATURED ARTICLE
1. 模拟IC设计里那些“说不清但离不开”的经验法则模拟IC设计这个行当有个很有意思的现象你翻遍教科书能查到的是小信号模型、零极点分析、噪声公式但真正让一个电路从“仿真能跑”变成“流片能用”的往往是那些没人写进教材、只在老工程师嘴里代代相传的经验法则。我刚入行那会儿最困惑的就是——明明每个晶体管都偏置在饱和区增益也够相位裕度也够为什么流片回来就是不对劲后来跟着一位做了二十多年模拟的老前辈跑了几次测试才慢慢明白模拟设计里有一半的功夫藏在那些“大概”“通常”“最好不要”的经验判断里。这篇文章想聊的就是这些经验法则。它们不是精确的数学推导而是大量流片数据、失效分析和反复迭代之后沉淀下来的工程直觉。对于刚入门的模拟IC设计者来说掌握这些法则能让你少走很多弯路对于已经有一定经验的人这些法则可以作为设计review时的检查清单。我会从版图匹配、偏置与裕度、噪声与寄生、仿真与实测的鸿沟这几个维度展开每个法则都会说清楚它背后的物理原因和适用边界——因为经验法则最怕的就是不分场景地生搬硬套。注意以下所有经验法则都基于常见工艺节点0.18μm到28nm和常规应用场景放大器、比较器、基准源、LDO等总结先进工艺或特殊应用如射频、高压需要另行判断。2. 匹配与版图那些仿真看不出来但硅片上真实存在的偏差2.1 为什么匹配是模拟设计的第一性原理数字电路里两个反相器差个10%的驱动能力顶多影响点时序功能不会错。模拟电路里一对差分对的输入管失配10%输入失调电压可能直接吃掉你一半的动态范围。更麻烦的是这种失配在仿真里完全看不到——除非你跑蒙特卡洛而且还得有foundry提供的失配模型。匹配的本质是让两个本该相同的器件在硅片上尽可能一致。但硅片不是理想的掺杂浓度有梯度、氧化层厚度有起伏、应力分布不均匀这些都会导致器件参数出现随机偏差和系统偏差。经验法则的核心就是用版图手段把系统偏差压到最小用面积手段把随机偏差压到可接受范围。2.2 共质心与交叉耦合什么时候用什么时候别硬套共质心common-centroid布局是匹配的经典手段把两个晶体管拆成偶数份交叉排列让它们的几何中心重合。这样一阶的线性梯度就被抵消了。但这里有个常见的误区不是所有匹配都值得用共质心。我见过一个设计偏置电流镜的镜像管用了共质心结果走线复杂度暴增寄生电容大了不少反而影响了建立时间。后来分析发现那个电流镜的匹配要求其实不高1%的电流误差完全能接受用简单的同方向相邻布局就够了。共质心真正该用的地方是差分对的输入管、电流镜中决定增益精度的镜像管、基准源里的核心配对管。具体操作上共质心通常配合交叉耦合cross-coupled使用。比如差分对拆成四份A/B/B/A的排列方式走线用对称的蛇形走线。这里有个细节金属走线本身的电阻和寄生电容也要匹配否则你器件匹配做得再好走线不对称照样引入失调。我习惯在版图完成后用提取工具跑一下寄生参数对比两条路径的RC差异超过5%就得调整。2.3 dummy管不是装饰品边界效应的真实影响dummy管虚拟管的作用是让核心器件的周边环境一致。很多人知道要加dummy但加的方式很随意——随便放几个管子尺寸也不讲究。实际上dummy管的设计有几个经验参数dummy管的尺寸最好和核心管一致至少沟道长度要一致dummy管到核心管的间距要和核心管之间的间距一致dummy管必须接固定电位通常是接地或接电源不能浮空如果核心管是差分对dummy管要放在阵列两端而不是只放一侧为什么这么讲究因为光刻过程中的邻近效应proximity effect和蚀刻负载效应etching loading effect会让边界器件的实际尺寸和中间器件产生偏差。这个偏差在0.18μm工艺里可能只有1%-2%但在更先进的节点里能到5%以上。对于要求高匹配的电路这个偏差直接体现在失调电压上。2.4 匹配的经验公式与面积取舍随机失配遵循Pelgrom定律失配的标准差与器件面积的平方根成反比。公式是[ \sigma(\Delta V_{th}) \frac{A_{VT}}{\sqrt{WL}} ]其中A_VT是工艺相关的匹配常数通常在1-5 mV·μm之间。这个公式告诉你一个残酷的事实要把失配降低一半面积得翻四倍。实际设计中怎么取舍我的经验是先根据系统指标反推可接受的失调电压再算需要的面积。比如一个差分对要求输入失调小于2mV3σA_VT3mV·μm那么[ 3\sigma 3 \times \frac{3}{\sqrt{WL}} 2mV ]算出来WL 20.25 μm²。如果L取1μmW就得大于20μm。这个尺寸在0.18μm工艺里不算离谱但如果要求失调小于0.5mV面积就得翻16倍可能就不现实了。这时候就得考虑修调trimming或者自动调零auto-zeroing技术。提示Pelgrom公式里的A_VT值一定要用foundry提供的实际数据不同工艺、不同器件类型NMOS/PMOS差异很大。手算只能做初步估算最终必须跑蒙特卡洛验证。3. 偏置与裕度让电路在PVT角落里都能活下来3.1 为什么你的电路在TT corner跑得好好的到SS就挂了TTtypical-typical仿真通过只是起点不是终点。模拟设计最怕的就是PVT工艺、电压、温度角落。我见过太多设计在TT下增益70dB、相位裕度60度到了SS corner慢管、低电压、高温增益掉到50dB相位裕度只剩30度电路直接振荡。经验法则第一条偏置电流源不能只靠一个理想电流源。很多新手在仿真时用一个理想电流源给电路偏置TT下一切正常但实际电路中偏置电流本身就会随PVT变化。正确的做法是用带反馈的偏置电路比如β-multiplier或者带启动电路的电流镜让偏置电流对电源电压和温度不那么敏感。第二条给偏置电路留足够的裕度。比如你设计一个电流镜镜像比例是1:1但实际流片后可能因为Vth失配变成1:1.1。如果你后面的电路对偏置电流精度要求很高就得考虑用共源共栅cascode结构提高输出阻抗或者加修调。3.2 相位裕度的“60度法则”还成立吗相位裕度60度是教科书上的经典值对应大约10%的过冲和较快的建立时间。但在实际设计中这个值需要根据应用调整应用场景推荐相位裕度原因通用放大器60-70度兼顾速度和稳定性开关电容电路70-80度建立时间要求严格过冲要小LDO50-60度负载变化大需要快速响应比较器45-55度速度优先允许一定过冲我个人的习惯是在TT下留10度裕度确保SS和FF角落都不低于45度。如果TT下只有60度SS下很可能掉到40度以下那就危险了。还有一个容易被忽略的点相位裕度是在特定负载条件下测的。很多电路在空载时稳定带载就振荡。所以仿真时要扫描负载范围从空载到最大负载都要看。我通常会在输出端加一个开关仿真时切换不同负载电容观察阶跃响应。3.3 共源共栅的偏置电压多高才够共源共栅结构能提高增益和输出阻抗但代价是输出摆幅减小。偏置电压设多高是个经典问题。经验法则是共源共栅管的过驱动电压Vov至少留100-150mV确保它在所有角落都工作在饱和区。具体计算假设NMOS共源共栅阈值电压Vth0.5V你希望它饱和Vds Vov。如果Vov150mV那么Vds至少150mV。再加上下面管子的Vds输出摆幅至少损失300mV。如果电源电压只有1.8V这个损失就很可观了。我的做法是先确定输出摆幅要求反推可用的Vds预算再分配给各个管子。如果摆幅实在不够就考虑用折叠共源共栅folded-cascode或者不用cascode改用增益提升技术。3.4 温度补偿不是所有电路都需要温度对模拟电路的影响很大Vth随温度降低约-2mV/°C迁移率随温度降低电阻随温度变化。但并不是所有电路都需要温度补偿。需要温度补偿的典型场景基准电压源带隙基准精密偏置电流源高精度比较器的参考电平不需要温度补偿的场景高速放大器速度优先数字辅助的模拟电路后面有校准温度变化不大的应用如室内设备带隙基准的温度补偿是经典话题但这里有个经验法则一阶补偿只能做到几十ppm/°C要更好就得用曲率补偿。曲率补偿的方法很多但每种都会增加复杂度和功耗。我的经验是如果系统要求优于20ppm/°C再考虑曲率补偿否则一阶补偿加修调就够了。4. 噪声与寄生那些让你半夜睡不着觉的隐形杀手4.1 噪声预算从系统指标倒推电路指标噪声是模拟设计的终极限制之一。很多新手拿到指标要求“输入等效噪声小于10nV/√Hz”然后就开始调管子尺寸调了半天发现怎么都达不到。问题出在没有做噪声预算。正确的做法是先分析噪声来源把总预算分配给各个模块。比如一个接收链路总输入等效噪声10nV/√Hz前端LNA贡献6nV/√Hz混频器贡献4nV/√Hz后面的基带贡献3nV/√Hz。平方和开根号√(36169)√61≈7.8nV/√Hz满足要求。然后针对每个模块再分析噪声来源热噪声、闪烁噪声、散粒噪声。热噪声是白噪声跟电流和电阻有关闪烁噪声是1/f噪声跟器件面积和工艺有关。经验法则是输入管的闪烁噪声通常是低频应用的主要限制增大面积能降低闪烁噪声但会增加寄生电容。4.2 寄生电容仿真里的“理想”和实际差多远仿真时你看到的寄生电容是提取工具给的但提取工具的精度有限。特别是高频应用金属走线的电感效应、衬底耦合、交叉耦合电容这些在仿真里往往被低估。我的经验是在关键节点上手动加10%-20%的寄生电容余量。比如一个放大器的输出节点提取工具说寄生电容是100fF我会在仿真里加120fF看看相位裕度还够不够。如果加了余量后裕度不够说明设计本身就不够稳健。还有一个容易被忽略的寄生焊盘和ESD保护电路的电容。一个普通的ESD保护二极管可能有几百fF的电容如果输入信号频率很高这个电容会直接吃掉带宽。所以高频电路的输入焊盘要特别设计用小的ESD器件或者电感峰化技术。4.3 电源和地的噪声耦合你的电路可能被自己干扰电源噪声是模拟电路的常见问题。数字电路开关时会在电源上产生尖峰如果模拟电路和数字电路共用电源这些尖峰就会耦合进来。经验法则是模拟和数字电源分开至少用不同的焊盘和走线。但即使分开了衬底耦合仍然存在。数字电路的开关噪声会通过衬底传到模拟电路。解决办法有在数字和模拟之间加保护环guard ring用深N阱deep N-well隔离模拟电路用差分结构抑制共模干扰关键模块加局部稳压我做过一个项目ADC的采样保持电路总是被数字部分的时钟馈通干扰后来在采样开关旁边加了保护环并且把时钟走线远离模拟区域问题才解决。这个经验告诉我版图规划阶段就要考虑噪声隔离不要等测试出问题了再改。4.4 噪声仿真AC仿真不够要跑瞬态很多新手用AC仿真看输出噪声觉得够了。但AC噪声仿真假设电路是线性的实际电路中噪声可能被非线性效应放大或搬移。比如开关电容电路噪声在采样和保持阶段的行为完全不同必须用瞬态噪声仿真transient noise才能看到真实情况。我的做法是先用AC噪声仿真做快速评估然后在关键角落跑瞬态噪声。瞬态噪声仿真很慢但能发现一些AC仿真看不到的问题比如时钟馈通、电荷注入、采样噪声混叠。5. 从仿真到流片那些只有踩过坑才知道的事5.1 仿真收敛不等于电路工作仿真器收敛只是数学上找到了解不代表电路在实际中能工作。我见过一个电路DC仿真收敛但实际流片后根本不启动。原因是电路有两个简并工作点仿真器收敛到了错误的那一个。避免这个问题的方法跑DC仿真时用扫描sweep而不是单点加启动电路start-up circuit确保电路从上电开始就进入正确状态用瞬态仿真验证上电过程启动电路的设计也有经验法则启动电路要在电路正常启动后自动关闭否则会持续消耗电流或者引入噪声。常见做法是用一个弱上拉或下拉当电路启动后反馈环路会把启动管关掉。5.2 蒙特卡洛跑多少样本才够蒙特卡洛仿真是评估失配和工艺波动的标准方法。但跑多少样本跑少了结果不可信跑多了仿真时间受不了。经验法则是至少跑200个样本最好500个。200个样本能给出3σ的估计但置信区间比较宽。500个样本能给出更可靠的3σ估计。如果仿真时间实在不够可以先用少量样本比如50个做快速评估发现有问题再增加样本。还有一个技巧分开跑全局波动和局部失配。全局波动global variation是所有器件一起变局部失配local mismatch是每个器件独立变。分开跑能帮你定位问题如果是全局波动导致的问题可能需要调整偏置如果是局部失配可能需要增大面积。5.3 测试你以为测的是电路其实测的是PCB流片回来测试很多时候测到的性能比仿真差很多。不一定是电路的问题可能是PCB的问题。经验法则测试板的设计和芯片设计一样重要。常见的PCB问题电源去耦不够电源噪声大地平面不完整地弹ground bounce信号走线太长寄生电容电感大连接器接触电阻大我的做法是测试板用多层板电源和地各一层关键信号走短线去耦电容靠近芯片引脚。测试时先用示波器看电源纹波如果纹波大先解决电源问题再看信号。5.4 失效分析从症状反推原因流片回来不工作怎么排查我的经验是先看电源电流。如果电流异常大可能是短路或闩锁如果电流异常小可能是电路没启动。然后看关键节点电压和仿真对比。如果某个节点电压偏离预期顺着信号链往前查。常见失效模式和原因症状可能原因排查方法输出饱和偏置不对、管子不在饱和区测偏置节点电压振荡相位裕度不够、寄生反馈看振荡频率对比仿真增益低管子工作区不对、负载效应测DC工作点噪声大偏置电流不足、衬底耦合测电源和衬底噪声温漂大补偿不够、匹配差变温测试失效分析最忌讳的是“猜”。一定要用数据说话测到异常节点对比仿真找到差异再分析原因。6. 经验法则的边界什么时候该打破规则说了这么多经验法则最后想聊聊它们的边界。经验法则之所以是“经验”是因为它们来自特定工艺、特定应用、特定条件下的总结。换了场景可能就不适用了。比如“共质心布局”在先进工艺里可能不是最优选择因为先进工艺的匹配已经很好共质心带来的走线复杂度反而可能引入更多寄生。再比如“相位裕度60度”在超低功耗电路里可能得降到45度甚至更低因为功耗和速度的取舍不同。我的态度是经验法则是起点不是终点。新手可以照着做确保不犯大错有经验的设计者应该理解每条法则背后的物理原因然后根据具体场景判断是否适用。最怕的是把经验法则当成教条不问为什么就照搬。还有一个心得多和测试工程师聊天。设计工程师容易沉浸在仿真里测试工程师看到的才是真实的世界。他们反馈的问题往往能帮你发现仿真模型的不足进而修正你的经验法则。模拟IC设计是一门实践性极强的学科经验法则的价值在于它们经过了硅片的验证。但硅片也在进化工艺在变应用在变经验法则也需要不断更新。保持学习保持怀疑保持对物理的敬畏这可能是最重要的经验法则。
阅读完成 · 觉得有帮助?
咨询建站