尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

模拟IC设计实战:从LDO内部原理到版图匹配与工艺角仿真

模拟IC设计实战:从LDO内部原理到版图匹配与工艺角仿真 1. 模拟IC设计到底在做什么从一颗电源芯片的内部说起很多人第一次听到“模拟IC设计”脑子里浮现的画面是画电路图、跑仿真、点鼠标等结果。但真正进入这个行当之后你会发现它更像是一门在物理定律夹缝里做取舍的手艺。数字IC设计可以靠工具自动综合、自动布局布线你写RTL工具帮你搞定大部分事情模拟IC设计不行从架构选择、晶体管尺寸、偏置点、版图匹配到封装寄生每一步都得人来判断工具只是辅助。我拿一颗最常见的LDO低压差线性稳压器来举例。它的功能听起来很简单输入一个稍高的电压输出一个稳定、干净、带载能力足够的电压。但你要把它做到量产级别里面涉及的东西非常多。误差放大器用什么结构是套筒式共源共栅还是折叠式共源共栅这取决于你需要的增益、输出摆幅和功耗预算。功率管选PMOS还是NMOSPMOS的压差特性好但载流子迁移率低同样电流下面积要大不少。基准电压怎么产生带隙基准的曲率补偿做到什么程度温度系数能不能压到20ppm/°C以内这些问题没有标准答案只有针对特定工艺、特定应用场景的最优解。模拟IC设计的核心难点在于你面对的是一个连续量的世界。数字电路只看0和1有噪声容限兜底只要在采样时刻电平正确就行。模拟电路里每一个节点的电压、每一支路的电流都是连续变化的噪声、失配、温漂、电源波动、寄生电容电阻全都会直接影响最终性能。你在仿真里看到增益80dB、相位裕度65度流片回来可能因为工艺角偏移变成增益72dB、相位裕度58度环路就开始振了。所以模拟IC设计工程师的日常很大程度上是在和“不确定性”打交道。工艺厂给你的PDKProcess Design Kit里有typical、fast、slow等不同工艺角模型有Monte Carlo统计模型有各种寄生提取规则。你要做的是在这些模型的基础上设计出一个在全部工艺角、全部温度范围、全部电源电压范围内都能正常工作的电路。这不是靠一次仿真就能搞定的需要反复迭代、扫参数、做灵敏度分析。从技能栈来看模拟IC设计需要你同时具备几方面的能力。电路理论是基础小信号分析、频率响应、反馈理论、噪声分析这些必须烂熟于心。半导体器件物理也很关键你得知道MOSFET在亚阈值区、线性区、饱和区分别是什么行为短沟道效应怎么影响输出阻抗衬偏效应怎么改变阈值电压。工艺知识同样不可或缺不同工艺节点的器件特性差异很大比如180nm BCD工艺和40nm CMOS工艺能做的事情、需要注意的坑完全不一样。最后是工具能力Cadence Virtuoso、Spectre、Calibre这些是吃饭的家伙版图设计、DRC/LVS验证、寄生提取都得熟练。对于刚入行的朋友我的建议是不要一上来就追求做复杂的系统。先从最基本的单元电路开始电流镜、差分对、共源放大器、两级运放。把每一个单元的偏置逻辑、小信号特性、噪声贡献、失配影响都吃透。你如果能手算一个五管OTA的增益、带宽、相位裕度并且和仿真结果对得上那说明你真正理解了。这比跑一百个仿真但不知道自己在看什么要有价值得多。2. 从原理图到GDS模拟IC设计流程里那些容易踩的坑2.1 架构选型阶段的取舍逻辑模拟IC设计的第一步不是画电路而是定架构。这个阶段决定了后面所有工作的上限。我见过不少新手拿到需求就开始画运放结果发现系统架构选错了后面怎么调都达不到指标。架构选型的核心是指标分解。比如你要做一个16位精度的ADC驱动电路系统要求信噪比不低于90dB那你就得反推驱动放大器的噪声贡献必须控制在多少以内建立时间需要多快失真要求是什么量级这些子指标再分配到具体电路模块上才能确定每个模块的增益、带宽、噪声预算。以开关电容电路为例很多人忽略电荷注入和时钟馈通的影响。在采样阶段MOS开关关断时会向采样电容注入电荷这个电荷量与沟道电荷成正比而沟道电荷又和过驱动电压、器件面积相关。如果你在架构阶段没有预留足够的余量后面靠版图技巧去补往往事倍功半。正确的做法是在架构设计时就考虑用dummy开关、底极板采样、互补开关等技术来抑制这些非理想效应。另一个常见问题是偏置电路的设计被低估。很多人在仿真时用一个理想电流源给核心电路供电结果实际电路里偏置电流随温度和电源电压变化导致整体性能大幅退化。我的经验是偏置电路必须和核心电路一起设计、一起仿真而且要特别关注它在不同工艺角下的表现。一个简单的常数gm偏置结构在slow角下可能电流偏小导致带宽不足在fast角下又可能电流过大导致功耗超标。2.2 仿真验证中那些“仿真通过但流片失败”的陷阱仿真通过不等于流片成功这是模拟IC设计里最痛的领悟。我总结了几个最常见的“仿真陷阱”第一模型不完整。很多PDK的模型在典型工作区很准但在极端条件下比如深线性区、亚阈值区精度下降。如果你设计的电路有一部分管子工作在亚阈值区仿真结果和实测可能差很多。解决办法是尽量让关键管子工作在饱和区如果必须用亚阈值区要留足够的裕量。第二寄生提取不充分。原理图仿真用的是理想连线版图提取之后会多出各种寄生电容电阻。对于高频电路或者高精度电路后仿和前仿的差异可能非常大。我一般要求关键模块必须做后仿而且后仿的寄生提取要包含耦合电容。有些工艺厂提供的提取规则默认不提取某些层的耦合电容你需要手动确认。第三蒙特卡洛仿真跑得不够。失配是模拟电路的天敌。两个标称相同的管子实际做出来阈值电压可能差几毫伏电流可能差百分之几。对于电流镜、差分对、电阻匹配等关键结构必须跑蒙特卡洛仿真看良率能不能达到要求。我通常要求关键指标在蒙特卡洛仿真下的良率不低于99.7%也就是3-sigma。第四温度范围覆盖不全。消费级芯片通常要求-40°C到85°C车规级要求-40°C到125°C甚至更高。有些电路在常温下表现很好到了低温或高温就出问题。比如带隙基准的曲率补偿如果没做好高温下温度系数会急剧恶化。仿真时一定要扫全温度范围而且要看温度扫描曲线是否平滑有没有异常拐点。2.3 版图阶段匹配、隔离与寄生控制版图是模拟IC设计中“艺术性”最强的环节。同样的原理图不同人画出来的版图性能可能差一个数量级。匹配是版图设计的核心课题。差分对的两个管子必须完全对称这不仅是尺寸相同的问题还涉及摆放方向、周围环境、走线长度。我通常采用交叉指状结构interdigitation把两个管子拆成多个finger交替排列并且加dummy管保证边缘环境一致。电流镜的匹配同样重要共质心布局common-centroid是常用手段能有效抵消线性梯度的影响。隔离是另一个容易被忽视的问题。数字电路和模拟电路放在同一颗芯片上时数字开关噪声会通过衬底耦合到模拟电路。解决办法包括加保护环guard ring、深N阱隔离、独立的电源地网络等。对于高精度模拟电路我甚至会建议把敏感模块放在独立的深N阱里用单独的LDO供电。寄生控制贯穿整个版图过程。走线电阻会影响偏置精度走线电容会影响频率响应走线之间的耦合会引入串扰。对于关键信号线要尽量短、尽量宽必要时用屏蔽线包围。对于高频信号要考虑传输线效应控制特征阻抗。对于大电流路径要计算电迁移余量确保电流密度不超过工艺限制。这里分享一个实操中的小技巧在画版图之前先画一个版图规划图floorplan把每个模块的位置、大小、接口大致标出来。这能帮你提前发现很多问题比如某个模块离焊盘太远导致走线寄生过大或者两个敏感模块靠得太近导致耦合。规划图不需要很精确但要有全局观。3. 工艺与PDK模拟IC设计师必须读懂的“底层规则”3.1 BCD工艺为什么成了电源芯片的首选如果你做电源管理芯片大概率会接触到BCD工艺。BCD是Bipolar-CMOS-DMOS的缩写它把双极型晶体管、CMOS和DMOS功率器件集成在同一颗芯片上。双极型器件用于高精度模拟电路CMOS用于逻辑控制和低压模拟DMOS用于功率输出。这种组合让BCD工艺在电源管理领域几乎成了标配。做BCD工艺需要注意什么首先是器件选型。BCD工艺里通常有多种耐压等级的DMOS比如5V、12V、40V、80V甚至更高。不同耐压的器件导通电阻、开关速度、面积都不一样。你要根据应用场景选择最合适的。比如做一个48V输入的DC-DC功率管可能需要选80V耐压的DMOS但驱动电路可以用12V的器件这样面积和性能都能优化。其次是隔离问题。BCD工艺里高压器件和低压器件共存隔离做不好会导致闩锁效应或者击穿。工艺厂通常会提供隔离方案比如深N阱隔离、SOI隔离等但你需要理解每种隔离的优缺点。深N阱隔离成本低但隔离效果有限SOI隔离效果好但成本高。选择哪种取决于你的应用对可靠性和成本的要求。还有一个容易被忽视的点是寄生双极效应。在BCD工艺中DMOS的结构天然会形成寄生双极晶体管在某些条件下会导通导致漏电甚至失效。版图设计时要注意加足够的衬底接触和保护环确保寄生双极不会意外开启。3.2 PDK里那些文档不会明说的细节PDK是工艺厂提供给设计者的“工具箱”里面包含器件模型、版图符号、验证规则等。但PDK文档通常只告诉你“怎么用”不会告诉你“为什么”和“什么时候会出问题”。比如器件的电压系数。PDK模型里通常会标注器件的额定电压但实际使用中超过额定电压不一定马上坏但会加速老化。我一般建议关键器件的实际工作电压不超过额定值的80%留足够的余量。特别是功率管在开关瞬间会有电压尖峰如果余量不够长期可靠性会出问题。再比如电阻和电容的匹配特性。PDK里会给出电阻和电容的匹配精度但这是在一定面积下的统计值。如果你用的电阻面积很小匹配精度会差很多。我通常要求关键匹配电阻的面积不小于某个阈值具体数值要看工艺和精度要求。一般来说匹配精度和面积的平方根成反比面积增大4倍匹配精度提高1倍。还有器件的温度特性。PDK模型里会包含温度参数但不同器件的温度行为差异很大。比如多晶硅电阻的温度系数可能是负的而扩散电阻可能是正的。如果你用电阻分压来产生基准电压不同电阻的温度系数不匹配会导致基准电压随温度漂移。解决办法是用同类型电阻并且做比例匹配这样温度系数可以相互抵消。3.3 从工艺角到蒙特卡洛如何评估设计的鲁棒性工艺角仿真和蒙特卡洛仿真是评估设计鲁棒性的两大手段但很多人用得不正确。工艺角仿真是看设计在极端工艺条件下的表现。通常包括TTtypical、FFfast-fast、SSslow-slow、FSfast-slow、SFslow-fast等组合。对于模拟电路我建议至少跑TT、FF、SS三个角如果时间允许加上FS和SF。温度方面至少跑-40°C、27°C、125°C三个点。电源电压方面跑标称值的±10%。但工艺角仿真有个局限它假设所有器件同时偏快或同时偏慢实际芯片上不同器件的偏差是随机的。所以蒙特卡洛仿真必不可少。蒙特卡洛仿真会随机生成器件的参数偏差跑几百次甚至上千次统计关键指标的分布。我通常关注几个指标失调电压的均值和标准差、增益的分布、带宽的分布、功耗的分布。如果某个指标的良率低于99.7%就需要优化设计。蒙特卡洛仿真有个坑仿真次数不够。跑100次蒙特卡洛统计结果可能不准。我一般至少跑200次关键指标跑500次以上。另外蒙特卡洛仿真要考虑器件之间的相关性有些PDK的蒙特卡洛模型会包含全局偏差和局部偏差要确认你用的模型是否正确。4. 版图实战电流镜匹配、隔离环与寄生提取的硬核细节4.1 电流镜匹配从理论到版图的完整链路电流镜是模拟电路里最基础的单元之一但要做到高精度匹配并不容易。理论上两个相同尺寸的MOS管在相同栅源电压下漏电流应该相同。但实际上阈值电压的失配、迁移率的失配、几何尺寸的失配都会导致电流失配。阈值电压失配的公式是σ(ΔVth) Avt / sqrt(W*L)其中Avt是工艺相关的常数W和L是器件的宽度和长度。从这个公式可以看出增大器件面积可以减小阈值电压失配。但面积增大会带来寄生电容增大、速度变慢的问题。所以需要在精度和速度之间做取舍。版图设计时电流镜的匹配技巧包括交叉指状布局把两个管子拆成多个finger交替排列比如ABAB或ABBA。这样能抵消线性梯度的影响。加dummy管在电流镜两侧加dummy管保证边缘管子的环境和中问管子一致。共质心布局对于要求更高的匹配可以采用共质心结构把两个管子分成四份按对角线排列。这种结构能抵消一阶和二阶梯度。统一走线方向两个管子的栅极走线、漏极走线要尽量对称避免走线电阻和电容引入额外失配。我做过一个项目电流镜的匹配精度要求是0.1%。最初用简单的ABAB布局蒙特卡洛仿真显示良率只有95%。后来改成共质心布局并且增大了器件面积良率提升到99.9%以上。这个过程中版图迭代了三次每次都要重新提取寄生、重新后仿。4.2 隔离环设计数字噪声如何不串到模拟电路混合信号芯片里数字电路和模拟电路共存数字开关噪声会通过衬底耦合到模拟电路。隔离环是抑制这种耦合的常用手段。隔离环的本质是在敏感电路周围形成一道“屏障”把衬底噪声挡住。常见的隔离环结构包括P保护环接地的P扩散区包围敏感电路。它能吸收衬底中的少子但对多数子噪声效果有限。N保护环接电源的N扩散区形成反向PN结能阻挡电子噪声。深N阱隔离把敏感电路放在深N阱里深N阱接干净电源形成独立的衬底区域。双保护环同时用P和N保护环效果更好但面积更大。隔离环的设计有几个要点。第一隔离环要尽量宽通常至少2-3微米太窄了效果不好。第二隔离环要完整包围不能有缺口否则噪声会从缺口处泄漏。第三隔离环要接干净的电源地如果接被污染的电源地反而会引入噪声。第四隔离环和敏感电路之间要留足够的间距通常至少5-10微米避免隔离环本身的噪声耦合到电路。我遇到过一个案例一个高精度ADC的参考电压源受到数字时钟的干扰输出频谱上出现了明显的杂散。排查后发现参考电压源的隔离环有一个缺口数字噪声从缺口处耦合进来。补上缺口后杂散降低了20dB以上。4.3 寄生提取与后仿前仿后仿差异大的排查思路前仿和后仿差异大是模拟IC设计里最常见的问题之一。差异可能来自寄生电容、寄生电阻、耦合电容、衬底网络等。排查时要有系统性的思路。第一步确认寄生提取的范围。有些提取规则默认只提取某些层的寄生比如只提取金属层的电容不提取多晶硅层的。你需要确认提取规则是否覆盖了所有关键层。另外耦合电容是否提取衬底网络是否提取这些都会影响后仿结果。第二步对比前仿后仿的直流工作点。如果直流工作点差异大说明寄生电阻的影响显著。重点看偏置电路的电流是否变化关键节点的电压是否偏移。如果偏置电流变了可能是电源地走线的寄生电阻导致的。第三步对比交流特性。如果直流工作点一致但交流特性差异大说明寄生电容的影响显著。重点看关键节点的极点频率是否变化相位裕度是否下降。如果相位裕度下降很多可能是输出节点的寄生电容增大导致的。第四步定位具体寄生。如果发现某个节点寄生特别大可以在版图上定位这个节点看是不是走线太长、太细或者和其他信号线靠得太近。解决办法包括加宽走线、缩短走线、增加屏蔽、调整布局等。我通常要求关键模块的后仿和前仿差异控制在10%以内。如果超过这个范围就要仔细排查。有时候差异来自提取规则设置不当有时候来自版图设计不合理需要具体问题具体分析。5. 工具链与学习路径从学生到工程师的实战建议5.1 Cadence Virtuoso之外还有哪些值得关注的工具Cadence Virtuoso是模拟IC设计的主流工具但并不是唯一的选择。根据你的应用场景和预算还有一些其他工具值得关注。Synopsys Custom Compiler是Cadence的主要竞争对手功能类似在某些方面有独特优势。比如它的版图编辑器和原理图编辑器集成度更高协同设计更方便。不过市场占有率不如Virtuoso找工作的话还是Virtuoso更通用。KLayout是一个开源的版图查看和编辑工具虽然不能替代Virtuoso做完整设计但用来查看GDS、做简单的版图操作非常方便。它的脚本功能很强大可以用Python写自动化脚本。我经常用KLayout做版图数据的快速检查和转换。XSchem是一个开源的原理图编辑器配合ngspice可以做电路仿真。虽然功能不如商业工具全面但用来学习电路原理、做简单的仿真验证足够了。对于学生和爱好者来说这是一个零成本入门的方案。Magic VLSI是一个老牌的版图工具开源免费。它的提取功能很强可以做寄生提取和LVS验证。虽然界面比较老旧但功能扎实很多学术项目还在用。对于初学者我的建议是先用开源工具入门理解基本原理和流程然后再过渡到商业工具。商业工具的学习成本主要在操作层面原理是相通的。5.2 模拟IC设计师的成长路线从单元电路到系统集成模拟IC设计师的成长通常分为几个阶段第一阶段单元电路。这个阶段你要掌握基本单元的设计和仿真包括电流镜、差分对、单级放大器、两级运放、带隙基准、比较器等。重点是理解每个单元的偏置逻辑、小信号特性、噪声特性、失配特性。你要能手算关键指标并且和仿真结果对得上。第二阶段模块电路。这个阶段你要设计完整的模块比如LDO、DC-DC、PLL、ADC、DAC等。重点是理解模块级的指标分解、架构选择、系统仿真。你要能根据系统需求确定模块指标并且优化模块性能。第三阶段系统集成。这个阶段你要负责整个芯片的模拟部分包括架构设计、模块划分、接口定义、系统验证。重点是理解系统级的权衡比如功耗、面积、性能、成本的平衡。你要能协调多个模块的设计确保整体性能达标。第四阶段产品化。这个阶段你要关注量产问题包括良率、可靠性、测试、封装等。重点是理解工艺波动、封装寄生、测试环境对性能的影响。你要能设计出在量产条件下稳定工作的芯片。每个阶段都需要大量的实践和积累。我建议初学者从第一阶段开始踏踏实实做几个单元电路把每个细节都搞清楚。不要急于做系统基础不牢后面会走很多弯路。5.3 那些年我踩过的坑与总结出的经验最后分享几个我在实际项目中踩过的坑和总结出的经验。坑一忽略启动电路。很多模拟电路有多个简并工作点比如带隙基准、恒流源等。如果启动电路设计不当电路可能停在错误的工作点。我遇到过一个带隙基准仿真时工作正常但流片后有5%的芯片输出为零。排查后发现是启动电路在某个工艺角下失效。解决办法是加可靠的启动电路并且做全工艺角仿真。坑二低估封装寄生。封装引线的电感、电阻、电容会影响电路性能特别是高频电路和大电流电路。我做过一个DC-DC芯片本身效率很高但封装后效率下降了5%。原因是键合线的电阻导致导通损耗增大。解决办法是优化封装设计用更粗的键合线或者改用倒装焊。坑三测试环境与实际情况不符。实验室测试用的电源、负载、PCB和实际应用环境差异很大。我遇到过一个LDO实验室测试一切正常但客户反馈有振荡。排查后发现客户的负载电容ESR很小导致环路不稳定。解决办法是在设计时考虑更宽的负载电容范围或者加片内补偿。坑四文档和沟通不到位。模拟IC设计往往需要和版图工程师、测试工程师、系统工程师紧密配合。如果文档不清楚、沟通不到位很容易出问题。我建议每个设计都要有完整的文档包括设计规格、仿真报告、版图注意事项、测试计划等。沟通时要用数据和图表说话避免模糊描述。这些经验看起来简单但都是在实际项目中付出代价换来的。模拟IC设计是一个需要长期积累的领域没有捷径可走。但只要你保持好奇心愿意深入细节不断总结就一定能在这个领域做出有价值的东西。
返回列表