ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

从零搭建LDO仿真环境:基于Cadence Virtuoso IC 618的实操指南

从零搭建LDO仿真环境:基于Cadence Virtuoso IC 618的实操指南 1. 为什么LDO仿真值得从零搭一遍LDO这三个字母做模拟IC的人没有不知道的。低压差线性稳压器几乎每颗芯片里都能找到它的影子从电源管理单元到射频前端供电从传感器偏置到锁相环的干净电源轨LDO承担的是“把脏电变干净”的活儿。但真正自己动手从零搭一套LDO仿真环境的人其实没想象中那么多。很多人是接手前人留下的testbench跑跑看波形调调参数能出结果就行。可一旦遇到收敛问题、仿真结果和预期对不上、或者要换工艺节点重新验证就抓瞎了。我这次用Cadence Virtuoso IC 618从头搭一个LDO的仿真环境目的很明确把整个流程走通把每个环节的坑都踩一遍然后整理成一份能直接抄作业的记录。IC 618这个版本在业界用了很多年稳定、资料多虽然现在有更新的版本但很多公司的产线还在用它尤其是做电源类模拟电路IC 618的仿真引擎和模型兼容性都经过充分验证。LDO的仿真环境搭建涉及原理图设计、仿真激励配置、DC/AC/瞬态/噪声等多种分析类型的设置还要处理收敛性、模型调用、结果后处理这些琐碎但致命的问题。这篇文章适合谁看如果你是刚进实验室的研究生导师扔给你一个LDO的题目让你先跑通仿真或者你是刚转模拟方向的工程师之前做数字或者版图现在要补仿真的课再或者你已经在做LDO设计但每次搭环境都要重新翻笔记、查设置那这篇内容应该能帮你省不少时间。我会把每一步的操作意图、参数选择的理由、以及我实际踩过的坑都写清楚不是那种“点这里点那里”的流水账而是让你理解为什么这么做。2. 仿真环境搭建前的整体设计与思路拆解2.1 为什么选IC 618而不是更新版本Cadence Virtuoso的版本迭代很快IC 617、IC 618、IC 231、IC 251每个版本在界面和仿真引擎上都有变化。我选IC 618原因有几个。第一IC 618的Spectre仿真器在模拟电路尤其是电源类电路的收敛性上表现很稳很多老工程师反馈IC 618跑LDO的瞬态和AC分析收敛成功率比某些新版本还高。第二IC 618的PDK兼容性好大部分成熟工艺的模型库都是针对IC 61x系列验证过的换到新版本有时候会遇到模型解析报错。第三资料多遇到问题搜一下大概率能找到别人踩过的坑。当然如果你公司强制用新版本那另说但仿真流程和设置逻辑是相通的。2.2 LDO仿真环境的核心模块拆解一个完整的LDO仿真环境不是只画个原理图就完事了。我把它拆成四个核心模块原理图设计、仿真激励配置、分析类型设置、结果后处理。原理图设计包括功率管、误差放大器、反馈网络、补偿网络、偏置电路这些子模块的连接和参数标注。仿真激励配置要处理输入电压源、负载电流源、使能信号、参考电压这些激励的建立时间和边沿。分析类型设置是重头戏DC分析看工作点AC分析看环路增益和相位裕度瞬态分析看负载阶跃响应和启动过程噪声分析看输出噪声谱密度。结果后处理则是从波形里提取关键指标比如压差、静态电流、负载调整率、线性调整率、PSRR这些。2.3 从零搭建的步骤规划与依赖关系我习惯把搭建过程分成三个阶段。第一阶段是“能跑起来”就是原理图连好、模型挂对、最基本的DC分析能出工作点这个阶段不追求结果好看只求仿真器不报错。第二阶段是“跑得准”把AC、瞬态、噪声这些分析都加上激励设置合理仿真精度和速度平衡好结果和手算或者理论预期对得上。第三阶段是“跑得快”优化仿真设置比如收敛参数、步长控制、多线程配置让每次仿真不用等太久。这三个阶段有依赖关系第一阶段没过就别急着上第二阶段否则报错信息会把你淹没。3. 核心细节解析与实操要点3.1 原理图设计中的关键细节LDO的原理图看起来简单但细节很多。功率管的选择要考虑压差和电流能力PMOS还是NMOS取决于应用场景PMOS在低压差时更有优势但PSRR会差一些。误差放大器的增益和带宽直接影响环路性能两级还是单级米勒补偿还是其他补偿方式这些在原理图阶段就要想清楚。反馈电阻的比值决定输出电压但电阻的绝对值会影响静态电流和噪声通常取几十到几百千欧量级。补偿电容和电阻的取值需要根据环路带宽和相位裕度来算我一般先用理想元件跑AC确定大致范围后再换成实际模型。注意原理图里所有器件的模型名称必须和PDK里的完全一致大小写都不能错。我遇到过因为模型名里多了一个下划线导致仿真报“model not found”的情况查了半天才发现是复制粘贴时带了空格。3.2 仿真激励配置的实操要点输入电压源不能只给一个DC值要设置合理的上升时间。我一般用pulse源上升时间设成1微秒到10微秒模拟实际的上电过程。负载电流源用pwl或者pulse做负载阶跃时上升时间设成1微秒以内才能看出环路的动态响应。使能信号要和输入电压配合好通常使能先拉高等输入电压稳定后再释放。参考电压如果是理想源直接给DC值就行如果是带隙参考要加上启动电路和噪声模型。3.3 分析类型设置的核心参数DC分析要勾选“Save DC Operating Point”这样后续AC分析才能基于正确的工作点。AC分析要设置扫描范围一般从1Hz到100MHz每十倍频程取20到50个点。瞬态分析的时间步长很关键太小了仿真慢太大了波形失真我一般设成最小时间常数的十分之一左右。噪声分析要指定输出节点和输入源频率范围通常从10Hz到10MHz。PSRR分析可以用AC分析加差分激励来实现具体做法是在输入电压上叠加一个小信号然后看输出端的响应。分析类型关键参数典型设置注意事项DCSave Operating Point勾选不勾选AC分析会报错AC扫描范围1Hz-100MHz点数太少会漏掉峰值瞬态最大步长最小时间常数/10太大导致波形失真噪声输出节点VOUT输入源选VINPSRR激励方式ACDC注意相位参考3.4 结果后处理的关键指标提取从波形里提取指标我一般用Calculator或者Skill脚本。压差是输入电压降到输出电压差0.3V时的输入电压值静态电流是空载时输入电流的平均值负载调整率是负载电流从0到满载时输出电压的变化量除以输出电压。PSRR是在特定频率下输入到输出的增益的倒数用dB表示。这些指标的计算公式要提前想清楚不然跑完仿真看着波形也不知道对不对。4. 实操过程与核心环节实现4.1 从空白库开始建立工程打开Virtuoso IC 618先建一个库名字随便取比如LDO_SIM。然后建一个cell view选schematic。这时候要挂载PDK在CIW窗口里找到“Tools”菜单下的“Technology File Manager”把工艺库的techfile加载进来。如果PDK是已经编译好的直接在库属性里关联就行。这一步不做后面调器件模型会找不到。4.2 搭建LDO核心原理图先放功率管从PDK里选一个PMOS宽长比根据电流能力来定。假设输出电流100mA过驱动电压0.2V迁移率200氧化层电容2.5fF/um²算下来宽长比大概在几千的量级。实际取值要考虑版图面积和寄生我一般先取一个合理值后面再优化。误差放大器用理想运放先代替等环路跑通了再换成实际电路。反馈电阻用理想电阻比值根据输出电压和参考电压算比如VREF0.6VVOUT1.2V那上电阻和下电阻的比值就是1:1。补偿网络先不加等AC分析看到相位裕度不够再加。4.3 配置仿真激励和分析在原理图里放一个vdc源作为VIN设成3.3V。放一个ipulse源作为负载初始电流1mA阶跃到100mA上升时间1微秒。放一个vpulse源作为使能0V到3.3V上升时间1微秒。然后打开ADE L窗口选“Setup”菜单下的“Simulator”选spectre。在“Analyses”里选DC勾选“Save DC Operating Point”。再选AC扫描范围1Hz到100MHz点数50。再选瞬态停止时间1毫秒最大步长1微秒。最后选噪声输出节点VOUT输入源VIN频率范围10Hz到10MHz。4.4 运行仿真与初步结果检查点“Netlist and Run”等仿真跑完。先看DC工作点确认所有管子都在饱和区误差放大器的输入差分对管电流匹配。再看AC波形看环路增益的直流值是不是够高一般要60dB以上相位裕度是不是大于45度最好60度以上。再看瞬态波形看启动过程有没有过冲负载阶跃时输出电压的跌落和恢复时间。最后看噪声波形看低频噪声密度和积分噪声。提示第一次跑瞬态如果报“timestep too small”先把最大步长调大一点或者把收敛参数里的“reltol”从1e-3改成1e-2先让仿真跑起来再逐步收紧。4.5 参数调优与迭代如果相位裕度不够先加大补偿电容但补偿电容太大会降低带宽。我一般先调补偿电阻让零点位置合适再调补偿电容。如果负载阶跃响应过冲太大可能是误差放大器的压摆率不够要加大偏置电流。如果PSRR在低频不够好可能是环路增益不够要加大误差放大器的增益。每次调完参数重新跑AC和瞬态看指标变化。这个过程可能要迭代十几轮耐心点。5. 常见问题与排查技巧实录5.1 仿真不收敛的排查思路仿真不收敛是新手最常遇到的问题。报错信息通常是“DC convergence failed”或者“timestep too small”。我的排查顺序是先检查电源和地有没有接错再检查有没有悬空节点再检查模型有没有加载对再检查初始条件有没有设。如果都正常试试在ADE里把“Convergence”选项卡里的“reltol”和“abstol”放宽或者加一个“nodeset”给关键节点设初始电压。还不行的话把仿真分成几步先只跑DC再跑AC再跑瞬态定位是哪一步出的问题。5.2 波形异常的原因分析波形异常有很多种。输出电压一直是0可能是使能信号没给对或者功率管没打开。输出电压等于输入电压可能是功率管一直导通反馈环路没起作用。AC波形相位从0度开始可能是AC激励加错了地方。瞬态波形有振荡可能是相位裕度不够或者补偿网络参数不对。噪声波形在某个频率有尖峰可能是某个器件的工作点不对或者模型里有异常。5.3 模型调用错误的解决方法模型调用错误通常报“model not found”或者“parameter error”。先确认PDK的模型库路径有没有加到“Setup”菜单下的“Model Libraries”里。再确认器件属性里的模型名和库里的完全一致。如果用的是子电路模型要确认子电路的定义有没有被正确包含。有时候PDK的模型库有多个section比如tt、ff、ss要确认仿真用的section和预期一致。问题现象可能原因排查方法解决措施DC不收敛悬空节点检查原理图连接加大电阻到地瞬态步长太小电路振荡看波形是否振荡调补偿参数模型找不到路径错误检查Model Libraries重新加载PDK相位裕度低补偿不足看AC相位曲线加补偿电容噪声尖峰工作点异常看DC工作点调偏置电流5.4 仿真速度优化的经验仿真速度慢先看是不是步长设得太小或者点数设得太多。瞬态分析的最大步长可以适当放宽只要不影响波形精度。AC分析的点数可以减到20个每十倍频程。如果电路很大可以用多线程仿真在ADE里设置“mt”选项。另外把不用的输出节点保存关掉只保存关键节点能省不少时间。我一般先跑一个快速版本看趋势确认没问题再跑高精度版本。5.5 避坑指南我踩过的那些坑第一个坑原理图里用了理想运放AC分析结果很好换成实际运放后相位裕度掉了很多原因是实际运放有寄生电容和输出电阻。第二个坑瞬态分析的初始条件没设仿真从零状态开始启动过程出现很大的过冲后来加了“ic”语句设了初始电压。第三个坑噪声分析忘了勾选“Save Noise”结果跑完没有噪声数据。第四个坑PSRR分析时输入激励的相位参考设错了导致结果符号反了。第五个坑PDK的模型库有多个corner仿真时用了默认的结果和预期差很多后来手动指定了tt corner。注意每次换工艺角或者换温度都要重新检查DC工作点因为管子的阈值电压和迁移率会变工作点可能偏离饱和区。6. 仿真结果验证与指标对标6.1 关键指标的提取与计算跑完仿真从波形里提取指标。压差用DC分析扫描输入电压从0到3.3V看输出电压什么时候降到设定值的95%。静态电流用DC分析看输入电流。负载调整率用瞬态分析看负载阶跃前后的输出电压差。线性调整率用DC分析扫描输入电压看输出电压变化。PSRR用AC分析看输入到输出的增益。噪声用噪声分析看输出噪声谱密度。这些指标要和设计目标对标比如压差小于200mV静态电流小于50微安负载调整率小于1%PSRR在1kHz大于60dB。6.2 与理论计算的对比验证理论计算是验证仿真结果的重要手段。比如环路增益的直流值可以用手算误差放大器的增益乘以功率管的跨导乘以负载电阻。相位裕度可以用零极点的位置来估算。压差可以用功率管的导通电阻乘以负载电流来算。如果仿真结果和理论计算差很多先检查仿真设置再检查理论计算的假设是否合理。我一般会做一个简单的Excel表格把理论值和仿真值列在一起方便对比。6.3 不同工艺角下的仿真验证LDO的鲁棒性很重要要在不同工艺角下验证。通常跑tt、ff、ss三个角温度跑-40、25、125三个点。ff角下管子速度快相位裕度可能变差ss角下管子速度慢压差可能变大。每个角都要检查DC工作点、AC相位裕度、瞬态响应。如果某个角下指标不达标要调整设计参数比如加大补偿电容或者加大功率管宽度。这个过程很耗时但必须做不然流片回来可能就废了。7. 从仿真到版图的前瞻考虑7.1 仿真阶段就要考虑的版图效应仿真时用的是理想连线版图里会有寄生电阻和电容。功率管的金属连线电阻会影响压差误差放大器的输入对管走线不对称会影响失调。所以在仿真阶段就要预留余量比如压差设计目标比规格书要求再小50mV相位裕度设计目标比最低要求再高10度。另外关键节点的寄生电容要估算一下加到仿真模型里看影响。7.2 后仿真与前仿真的差异预期后仿真会引入寄生参数通常环路增益会下降相位裕度会变差压差会变大。我一般预期后仿真的相位裕度比前仿真低5到10度压差大10%到20%。如果后仿真指标掉得太厉害要回去优化版图比如加宽金属连线或者调整器件布局。后仿真的时间比前仿真长很多所以前仿真阶段要把设计做扎实减少后仿真的迭代次数。7.3 仿真环境的可复用性设计搭好的仿真环境要能复用。我一般把ADE的设置保存成state下次直接加载。原理图里的器件参数用变量表示比如W_P、R1、C1这样换工艺或者换规格时只改变量值就行。仿真脚本用Skill或者Ocean写可以批量跑不同工艺角和温度。这样下次做类似项目直接改改参数就能用省很多时间。8. 一些实操心得与建议LDO仿真环境搭建这件事说难不难说简单也不简单。我的体会是前期的原理图检查和仿真设置比后期调参数更重要。我见过太多人原理图连错了就开始跑仿真结果报一堆错然后花几个小时排查其实一开始花十分钟检查连接就能避免。另外仿真设置里的收敛参数不要随便改先理解每个参数的含义再根据实际情况调整。还有每次仿真前想清楚要看什么指标不要跑完再看波形那样效率很低。关于工具的使用IC 618的ADE L虽然界面老但功能很全。我建议把常用的分析类型和输出设置保存成模板下次直接调用。Calculator里的函数要熟悉比如“ymax”、“ymin”、“average”、“rms”这些提取指标很方便。Skill脚本值得花时间学批量处理仿真结果能省很多重复劳动。最后分享一个小技巧跑瞬态分析时如果电路启动很慢可以先跑一个短时间的瞬态看启动过程再跑长时间的瞬态看稳态。这样能快速定位启动问题。还有AC分析前一定要先跑DC确认工作点正确不然AC结果没有意义。这些细节看起来小但实际做的时候能帮你省不少时间。
返回列表