ARTICLE DETAIL

资讯详情

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

Cadence Sigrity全流程:从PowerDC直流压降到Broadband SPICE模型提取

Cadence Sigrity全流程:从PowerDC直流压降到Broadband SPICE模型提取 画板子的人大概都遇到过这种场景布局布线收尾DRC清零Gerber导出去之前领导随口一句“板上电源压降评估过没有”如果项目里再带个DDR、PCIe或者SerDes接口下一句话大概率是“信号质量呢仿真眼图什么水平”这时候你要只会说“应该没问题”心里多少是虚的。用Cadence Sigrity可以把这条链路补上PowerDC做直流压降和电流密度分析Broadband SPICE把高速通道的频域特性转成电路仿真能用的SPICE模型两套东西前后一接电源完整性和信号完整性最核心的问题就都有了量化答案。这篇文章我就按自己的实际操作经验来写面向的是会用Allegro画板、但对Sigrity仿真模块还不太熟的PCB工程师。如果你搜过“Sigrity怎么仿真TDR”“PowerDC怎么用”这类关键词多半搜到的是零散步骤这次我把全流程串起来讲包括BRD导入、VRM/负载设置、压降结果判读、S参数提取、模型转换与验证这几个环节每一步写清楚操作逻辑和踩过坑的地方。1. 全流程的价值为什么从PowerDC到Broadband SPICE是一条完整的链路1.1 两类工具的定位差异与互补关系很多工程师对Sigrity的第一印象是“仿真工具和Allegro是一家”但真要上手第一步就容易被模块名字搞懵。PowerDC、PowerSI、OptimizePI、Clarity、Broadband SPICE……每个名字解决的是不同维度的问题。PowerDC属于电源完整性PI里的直流分析工具主要回答三个问题从VRM到IC引脚整条电源路径的直流压降IR Drop是多少铜皮、过孔、走线上电流密度是否超标哪里是电流通道上的瓶颈点热量集中在什么位置。Broadband SPICE则完全在另一个方向——信号完整性SI里的模型提取工具。它的输入是S参数结合实际通道提取或者测量获得输出是一个能被SPICE类仿真器认可的等效电路模型。简单说它把高速互连的频域行为“翻译”成时域瞬态仿真可以用的模型。你可能已经看出来了PowerDC管的是“电压能不能送到位”Broadband SPICE管的是“信号能不能传得好”。前者是后者的前提——电源纹波太大、DC压降太多信号即使仿真出来效果不错实际跑起来也照样翻车。1.2 什么项目的板子需要这套完整流程我的判断标准很简单不要盲目上全套仿真流程跑DDR3/DDR4及以上的板卡DDR电源网络多VDD/VDDQ/VTT各路的DC压降余量都要确认至少做PowerDC数据线、地址线要考虑走线长度、过孔stub对信号的影响Broadband SPICE适合给这几组关键信号建模型。有PCIe、USB3.x、SATA、千兆/万兆以太网这类串行通道哪怕只是两层板的简单应用S参数提取和模型转换也是必要的不然你没法回答“这个走线在5GHz处插损多少”。大电流电源模块比如30A以上的DC-DC输出PowerDC的电流密度图能直接看出铜皮是否足够、过孔阵列是否满足载流需求。低速、低功耗、单层/双层板如果板上最高信号不到50MHz电源电流不到1A跑仿真收益很低老老实实按经验设计就行。我见过不少项目画板时只跑了一遍DRC就发出去打样回来上电发现芯片供电电压被拉到低于规格下限拆掉全部电容才找到瓶颈是电源层某处过孔开太少。这种问题用PowerDC十分钟就能找出来真不值得靠废板来学费。1.3 我踩过的“只跑一半”的坑早期我做仿真也犯过“偷懒只做一半”的毛病。比如有次给一块FPGA板做电源验证PowerDC结果全绿IR Drop最大不到25mV我直接觉得万事大吉。结果高速接口在实测时眼图质量很差后来排查发现是差分线之间参考地平面不连续导致的过孔回流路径恶化。反过来另一次我认真跑了S参数甚至用其他工具把S参数塞进瞬态仿真直接报收敛错误折腾了半天才意识到问题出在S参数模型本身没有做无源性修正。S参数本质是频域测量/仿真结果直接用在时域仿真里经常因为非因果、非无源而出错。这正是Broadband SPICE这种提取工具要干的活。所以关键在于PowerDC和Broadband SPICE不是二选一而是一头一尾把一条完整链路串起来。没有电源健康做保证信号仿真做得再漂亮都是空中楼阁没有模型转换环节S参数再准也没法直接进电路时序仿真。2. PowerDC实干笔记从BRD文件导入到电流密度图2.1 导入BRD前的工程准备和常见坑PowerDC可以直接读Allegro的BRD文件也可以读SPBSigrity项目文件或者ODB、IPC-2581这类中性格式。我的习惯是直接用Allegro的BRD省去中间格式转换丢信息的麻烦。导入之前板子最好满足这几个条件不然导进去也是白折腾叠层信息完整每一层的介质材料、介电常数、厚度都要在Allegro的Cross Section里设置好这直接决定后续计算电阻和阻抗的基准网络分配正常不能有大量故意留下的短接线头或者Dangling线虽然PowerDC能处理一部分但会让结果判定变得麻烦DRC至少没红还有严重间距错误时导入仿真得到的结果没有工程意义。导入后第一个习惯动作是展开左边的工程树检查Layers和Net这两类条目是否和原始设计一致。经常遇到的情况是叠层厚度全部变成默认值或者某个电源网络因为命名单词带特殊字符被拆分。我一般花五分钟核对一遍胜过后面的仿真的结果全错。另外一个很多人忽略的点先做单网络仿真不要一上来全板全网络跑。PowerDC支持全板分析但网络很多时收敛慢、判读难对新手特别不友好。先单选一个大电源网络练手比如DDR的VDD把所有其他网络屏蔽掉仿真速度和结果可读性都会好很多。2.2 VRM、负载模型与探针的放置方法PowerDC仿真的基本要素是“源”和“负载”。源就是VRM或者外接电源插座的输出端负载是各颗芯片的电源引脚抽电流的位置。在PowerDC工程里添加VRM时需要设置两个参数输出电压和输出电阻源内阻。比如一个DDR4的VDD电源输出1.2V源内阻通常设置10mΩ左右。VRM所在位置我会放在该电源网络进入PCB的起点比如电源模块输出电压经过电感之后进入平面的那个过孔簇或者板边电源插座附近这样仿真结果更接近真实路径。负载设置则要看芯片的电流需求。比如一颗DDR4颗粒运行时平均电流为350mA你在芯片对应的电源引脚网络处加一个350mA的电流源负载即可。如果有多个同类器件供电按实际估算分配电流。具体数值参考芯片数据手册里的电源电流曲线取平均值即可没必要过度纠结。探针Probe也非常关键。很多人把电压探针放在电源输出端或者IC电源引脚的正下方但IR Drop要看的正是“芯片电源引脚处的电压与VRM输出端的差值”。我会在VRM输出端放一个参考探针在各个关键IC的电源引脚附近放测量探针这样一张表就能看到每条电源路径从源头到末端的压降分布。2.3 仿真参数与求解设置设置好VRM和负载后直接跑DC分析之前我习惯检查两处设置一是求解精度。PowerDC默认的收敛设置通常够用但如果你发现电流密度图上有异常尖锐的峰值点可以适当增加网格细化次数否则个别小过孔处的电流极值会被高估。二是温度设定。DC压降和铜的电阻率直接相关铜的电阻率随温度升高而增大。室温25℃和60℃下的仿真结果可以差20%以上。如果板子工作在机箱内我建议温度按60℃设置必要时后面再跑电热耦合。跑完后第一眼看的就是电流密度分布图和VRM到各负载的压降报告。Sigrity会在结果窗口里直接列出每个探针位置的电压和计算得到的IR Drop。我这个项目的经验是DDR4 VDD的DC压降含连接器/插座到板内的路径控制在3%以内比较稳也就是36mV左右。如果超过这个数后面的信号仿真做得再漂亮芯片也可能因为供电不足出现随机错误这才是电源完整性问题的本质。3. 压降不达标怎么查三个真实瓶颈定位思路3.1 电流密度图和压降图怎么配合看仿真做出来不是拿个报告交差关键是要能定位问题。PowerDC最有价值的输出是两张图一张是电流密度分布图另一张是电压/压降三维云图。电流密度图上你会看到电流从哪里流出经过哪个过孔阵列在哪里汇聚又在哪里散开。整条路径上如果有某段颜色发亮发红说明电流密度异常集中那个地方就是潜在的瓶颈。常见情况是一段窄铜皮、一簇数量不够的过孔、或者电源层上被其他网络挖出一个凹槽导致电流绕路。电压云图则直接体现IR Drop的空间分布。比如从VRM出来电压是1.2V到某个DDR颗粒下方变成1.155V那就说明这条路径的直流电阻过大。两图配合看先看压降图确定哪个负载端压降超标再看电流密度图逆推电流路径上哪个环节电阻偏高。3.2 过孔载流瓶颈的实际排查有一个项目里DDR VDD用的是一整块电源平面按理说平面电阻很小压降不应该大。但仿真出来某个角落压降硬是多了40mV。切到电流密度图一看问题出在一个关键的导通孔区域主平面通过9个过孔从内层连到顶层的一小块铜皮再接到DDR颗粒的电源引脚。顶层铜皮面积又窄9个过孔的载流能力不够导致电流从过孔涌出来之后没法迅速铺开。这里就要说一个经验值常规10mil孔径的过孔单孔能承受的连续直流电流大约是1~1.5A和孔径、镀铜厚度、所在平面散热条件有关工程上用到1A以内比较稳妥。如果是0.5mm孔径的较大过孔大约能到2~3A。如果那一路要过4A电流9个10mil孔理论上够但实际由于过孔位置太偏、平面铺铜受限电流局部拥挤单个孔实际走到的电流远大于平均值。这种问题怎么修优先加过孔。把那9个孔扩成16个同时把顶层和电源平面连接的铜皮加宽电流路径立刻顺畅。重仿真后压降从55mV掉到30mV以内效果立竿见影。3.3 铜皮优先级、禁止铺铜区和线宽的作用还有一类瓶颈比较隐蔽不是过孔不够而是铺铜形状被“挖”坏了。你在Allegro里画过的禁止铺铜区Keepout/Route Keepout和铜皮优先级Shape Priority在PowerDC里完全参与计算。也就是说铺铜不够不只是美观问题它直接决定电流怎么流。举个例子内层电源平面上有一块GND网络的大铜皮优先级更高VDD网络在铺铜时被某块禁止区硬生生“啃”出一个细脖子正常情况下你不仔细看都注意不到。但仿真一跑那个细脖子周围电流密度明显异常。我现在的习惯是在Allegro里给电源平面铺铜时尽量让关键大电流网络的铜皮形状连续规则避免一切窄颈。宽度判断标准是承载10A电流的铜皮1oz铜厚下最好宽度不低于100~120mil。如果实在绕不开就额外并一股走线或者在瓶颈处打一排过孔来辅助电流通过。另外Allegro铜皮优先级设置直接影响电源平面的“覆盖”行为。两个不同网络的Shape如果重叠区没有按规则避让要么报错要么仿真出来的网络拓扑和你预期不一样。规范的做法是每个电源网络在平面层划分清晰的边界Shape之间留出至少10~15mil的间距不使用“压着边缘”的走线方式这样才能保证PowerDC中提取到的载流路径和实际一致。4. Broadband SPICE到底在提取什么S参数转模型的前因后果4.1 为什么不能直接把S参数丢进SPICE瞬态仿真PowerDC解决的是电源直流问题要解决高速信号的质量问题就得拿互连的S参数做分析。很多工程师会用PowerSI提取走线的S参数拿到S参数文件后以为“任务完成了”然后直接在ADS或SPICE里瞬态仿真结果遇到不收敛、波形震荡等一堆问题。原因在于S参数是频域模型只描述特定频点下的响应在频域做完插值和外推后直接做拉普拉斯反变换等效到时域原本一些无源、因果的特性很容易被破坏。尤其是带插入损耗波纹很大的长走线、含有过孔stub的链路直接使用时会出现时域波形“提前响应”或者能量“凭空增加”的违背物理规律的状况。Broadband SPICE模块的核心作用有两个一是把频域S参数数据用有理函数逼近构造出一个SPICE可用的等效电路常以极点-留数形式表达二是做非物理的**无源性Passivity和因果性Causality**修正让模型在时域仿真中表现稳定。4.2 Broadband SPICE模型的形式与用途提取出的SPICE模型实际就是一个由电阻、电容、电感、受控源等基本元件组成的子电路。网络软件层面会把它打包成一个带多端口的原理图符号你可以像调普通器件一样把它放到电路里。这类模型在时域仿真中的典型用途包括通道仿真DDR数据线、地址线带上驱动器、接收器模型做时序分析串行链路仿真PCIe、SerDes通道配合收发机模型看眼图TDR仿真查看阻抗连续性这也是很多人搜“Sigrity怎么仿真TDR”想做的事——其实TDR不一定非要用独立工具用Broadband SPICE模型放进瞬态仿真也能测出反射特征。4.3 端口设置与参考地选择模型品质好不好首先取决于S参数本身质量端口设置在PowerSI里就要认真做好。对于差分线我习惯把两个走线各设置一个单端端口之后再在Broadband SPICE或者后处理中组成差模S参数。不要一上来就设混合模式端口那样虽然出结果快但一旦某个单端参考地有问题很难定位。参考地的选择也影响极大。端口所在的参考层必须是完整的回流参考平面如果参考地平面不连续提取出来的S参数会反映出高插损、低回损的假象。一个常见问题是差分线跨过分割平面很多工程师没注意仿真出S参数很差还找不到原因实际上是把平面分割问题一起算进去了。此外扫频范围要设对。比如PCIe Gen3的信号频率大约8GT/s建议扫频做到信号基频的3~5倍也就是到20~25GHzDDR4-2400的数据线扫到12~15GHz一般够用但若走线特别长或者stub明显建议再往上留点余量。点数方面线性扫描500~1000个点就够太多会导致后续模型提取计算量偏大太少则高频细节缺失。5. 提取参数与收敛问题模型阶数、无源性检查和波形验证5.1 扫频范围与模型阶数怎么选拿到S参数后进入Broadband SPICE界面第一件要做的就是**设置模型阶数Order**或者允许程序自适应选择阶数。对大多数互连模型20~40阶完全够用。阶数越高拟合越细腻但带来的副作用是仿真时计算更费时而且容易出现不稳定的“寄生极点”所以不要盲目拉高阶。程序里一般会让你选择“带通/宽带”带宽类型。如果是普通高速数字信号选从直流或者低频比如10kHz开始扫到最大指定频率如果是带限射频系统可以只提取工作频带内的模型。不过为了保留DC响应我通常会把起始频率设得很低这样后面接驱动模型做瞬态仿真时直流偏置不会跑偏。5.2 无源性、因果性检查与常见异常处理提取完成后Broadband SPICE会给出无源性和因果性的校验结果。下面这句话值得记住无源性校验不通过时域仿真大概率出怪问题。无源性违规通常表现为模型在某个频点吸收负能量通俗说就是模型“自己产生能量”这在物理上不存在。处理办法一般有两个方向增加阶数重新拟合让逼近更精确调整S参数的频率范围去掉某些测量/仿真中的异常点。如果两者都试了还不行我会回到PowerSI里检查S参数的提取设置往往问题出在端口参考地不一致或者参考面建模错误。还有个非常常见的问题是收敛失败。你在SPICE里跑瞬态仿真时报“Time step too small”或者“singular matrix”十有八九是模型里某些极点离虚轴太近导致时域仿真求解器强制缩小步长才稳定。排查思路是把Broadband SPICE生成的模型单独放到最简偏置电路里跑一遍瞬态确认模型自己没问题再去处理外围电路。5.3 在SPICE环境里验证模型生成模型后不要直接丢进大系统抄作业先在SPICE里做一个最小验证。我通常分三步第一步搭一个简单的回路一个50Ω脉冲源驱动模型端口末端接50Ω负载跑瞬态看波形是否有异常过冲、振铃或者直流电平偏移。第二步把模型的S参数曲线重新导入回PowerSI或者用网分数据和我原来的S参数对比一下查看插损和回损曲线是否吻合重点看工作频段内的差异差异不超过0.2~0.5dB就算合格。第三步再用TDR激励看模型端口的阻抗曲线确认峰值位置和真实走线结构一致。这些验证做完说明Broadband SPICE模型已经可信了再丢进DDR总线或者SerDes链路仿真里才会收获稳定的结果。6. 一个贯穿的Mini案例DDR电源与高速通道联合验证6.1 案例背景与仿真目标说一个我最近经手的板卡案例方便把上述流程串起来。板子是一块4层板DDR4颗粒加一颗SoC电源平面主要在内层L3关键信号走线在顶层L1。仿真目标有两个一是确认DDR VDD电源的DC压降在规范内二是给一条从SoC到DDR颗粒的DQ数据线提取宽带SPICE模型用于后续时序裕量分析。电源VDD要求1.2V ± 3%也就是压降不能超36mV。那条DQ走线长度约1800mil实际参考层在L2最窄处线宽5mil单端阻抗目标50Ω±10%。6.2 PowerDC定位电源瓶颈到修复的过程在Allegro里先把BRD导出到Sigrity导入PowerDC后新建一个DC仿真工程只把这颗DDR4颗粒的VDD网络加进分析范围。VRM设置在电源入口附近的位置输出1.2V负载在颗粒引脚处加了一个350mA直流电流源。第一次仿真结果出来压降报告显示颗粒电源引脚实测电压只有1.158V也就是IR Drop达到42mV超出了36mV的目标。电流密度图显示主要瓶颈在两处一处是L2→L3电源平面换层连接区的过孔阵列电流拥挤明显另一处是靠近颗粒区域的顶层铜皮局部被禁止铺铜区“咬”出一个宽度只有35mil左右的细颈部。修复方案很简单一是把换层过孔从单排8个加到双排14个二是把这个细颈部对应的禁止铺铜区往里缩使铜皮宽度从35mil加宽到80mil。重仿真后颗粒引脚电压恢复到1.178VIR Drop约22mV余量充足。整个过程不超过半个小时比在实验室拿万用表量方便太多。6.3 Broadband SPICE提取差分通道模型电源问题解决后给那条DQ线建模型。先在PowerSI里打开同一份BRD把这个单端信号设为端口1参考地设为最近的GND过孔区域扫频10kHz到15GHz1000个点线性扫描。提取S11看回损在工作频段内低于-15dB基本没什么问题。然后在Broadband SPICE模块中加载这个S参数。模型阶数我选了30阶程序完成拟合后无源性检查显示全频段Pass。这时生成SPICE模型文件在Cadence Capture/PSpice或者任何你常用的SPICE工具里做最小验证50Ω源端接模型再接50Ω负载跑一个上升沿1ns的阶跃响应波形干净无异常振铃。之后把这个模型放进完整的DDR写时序仿真链路里配合IBIS模型查看眼图这一版结果明显比之前直接放S参数要稳定得多没有出现时域不收敛和波形提前跳变的问题。6.4 这类全流程仿真可以怎么扩展现在再回过来看那些热搜词里的问题很多其实都能在Sigrity这个体系里找到扩展方向“Sigrity怎么仿真TDR”——不需要单独模块把Broadband SPICE模型放进瞬态仿真加一个快沿阶跃源观察反射即可“如何使用flotherm对PCB热仿真”——PowerDC自带电热耦合计算可以先把功率分布算出来再导出到热仿真软件做系统级散热分析两个流程衔接非常顺“cadence瞬态仿真不收敛”——很大概率就是时域模型没有做无源性/因果性处理交出模型前用前面说的方法做单项验证能省下好多排查时间“cadence铜皮优先级”“cadence禁止铺铜区”——这些Allegro里的铺铜规则会直接决定PowerDC里看到的电流通道形状画图时多想一步仿真结果就更可信一步。回到标题本身从PowerDC到Broadband SPICE表面上是一个“电源”加一个“信号”两件事实际是一条完整的验证链路。电源是信号的基础信号是电源的终点。只会跑PowerDC板子能上电但不一定能跑稳只会提S参数模型仿真通过但不一定能兼容时域分析。把这条链路在自己手头的板子上完整跑通一次后续再做新项目很多“该不该仿真”的疑虑都能自己拿主意了。最后分享我个人的一个小习惯每块量产的板子在打样前我都会留出一晚上把关键电源网络的PowerDC和分析通道的Broadband SPICE模型跑一遍把结果截图存档到项目文件夹。这些截图不仅是为了给自己信心后来几次客户审核和内部评审都直接派上了用场——拿数据说话永远比口头保证有说服力。这套流程第一次跑通之后就会形成肌肉记忆真正花掉的时间远比你想象中少但换来的确认感是实实在在的。
返回列表