ARTICLE DETAIL

资讯详情

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

Cadence Sigrity PowerSI高速PCB阻抗与串扰仿真指南

Cadence Sigrity PowerSI高速PCB阻抗与串扰仿真指南 高速板子做久了最怕的不是画不出来而是画完之后心里没底。一条标称 50 Ω 的走线压合出来到底是 47 还是 54相邻两根线的边到边只留了 4 mil串扰会不会把眼图高度吃掉三分之一这些问题靠手算公式和“老师傅经验值”能猜个七八成但真要签字、真要投板、真要跟叠层厂对赌就得让场解算器跑一遍。Cadence Sigrity 套件里的 PowerSI 就是干这活的工具它把 PCB 的几何、叠层、材料参数一起丢进频域求解器吐出来的是 S 参数、阻抗曲线、耦合量级还有你能直接拿去和实测 TDR 对着看的波形。这篇东西写给两类人——一类是刚接手 Sigrity、知道要跑阻抗和耦合但不知道从哪下手的朋友另一类是跑过几次、结果总是和实测差一截、想弄清楚到底哪一步填错了的同行。下面全部是我自己在实际项目里踩出来、验证过的流程和参数不写教科书式的介绍只讲能直接抄作业的部分。1. 先搞清楚 PowerSI 在整条链路里的位置1.1 为什么阻抗和耦合要放在同一个流程里做很多人第一次用 Sigrity习惯把“查阻抗”和“查串扰”当成两件事查阻抗就打开 2D 场解算器看一眼截面查串扰就另外建一个三线模型跑一下。这么做不是不行但会丢掉两个信息。第一截面算出来的 50.2 Ω 只是“无限长均匀线”的特征阻抗而板上真正会出问题的地方是过孔、焊盘、跨分割、蛇形绕线这些不连续点只有把整段走线的 S 参数提出来用 TDR 的方式看过去才知道不连续点把阻抗顶高了多少。第二耦合的强弱高度依赖参考平面的完整性——同一个间距参考平面是整块铜皮还是被分割成两块串扰能差一倍以上。这两个问题共用同一套几何模型和同一套端口定义分成两次建模纯属浪费而且两次建模的假设不一致时你都不知道该信哪个结果。所以我的做法一直是一次建模一次求解输出 S 参数以后按需切不同视角。阻抗看 S11 的 TDR 变换耦合看 S31/S41插入损耗看 S21模式转换看 Scd21。同一份数据反复用既省时间也保证所有结论来自同一个模型不会出现“阻抗说没问题、串扰说有问题、但两边用的介质厚度不一样”这种尴尬。1.2 从叠层到波形完整链路拆开看把整条分析链路拆开大概是这么几层最底层是几何与叠层包括线宽线距、铜厚、介质厚度、Dk/Df、铜箔粗糙度往上一层是端口与参考决定你测的是哪两点之间的阻抗参考导体是谁再往上是求解设置包括求解模式、扫频范围、扫频点数、网格密度再往上是后处理TDR 变换、串扰提取、眼图评估最后一层是与实测的对齐包括 TDR 仪器上升时间、探头寄生、去嵌处理。这五层里前两层错了后面三层怎么调都救不回来。我见过太多人把时间花在反复调网格和扫频点上结果发现叠层表里的介质厚度填的是压合后的总厚度而场解算器要的是单侧介质厚度差了整整一倍阻抗自然全歪。先保证前两层是对的再去纠结后三层的精度这是最基本的顺序但也是最容易搞反的顺序。1.3 什么样的活该上 PowerSI什么样的活别硬上说句实在话PowerSI 不是万能锤。如果你只是想快速验证一下某个叠层在某个线宽下的特征阻抗打开 2D 场解算器Sigrity 里的 2D Extractor 或者 PowerSI 自带的截面求解几十秒就能出结果没必要上三维全波。如果你要评估的是整条链路的眼图包括驱动器、封装、连接器、接收端那更适合在 System SI 或者 Topology Explorer 里搭拓扑PowerSI 只负责把 PCB 那一段的 S 参数交出去。PowerSI 真正的甜区是板级走线的频域特性提取一段几厘米长的走线、一对差分线、一组相邻的并行总线要拿到它们的阻抗剖面和耦合量级。这个尺度上二维混合求解加三维局部求解的组合效率最高精度也够用在端口定义正确的前提下和实测的偏差通常能压在 5% 以内。至于整板几十个网络的批量扫描PowerSI 也能做只是要提前规划好端口分组和区域裁剪不然跑一晚上都出不来结果。2. 建模之前的准备工作决定了后面能不能省事2.1 叠层表怎么填才不会被现实打脸叠层表是整个仿真的地基。PowerSI 读进来的叠层有两种来源一种是从 Allegro 的 brd 文件直接带过来另一种是你手动在 Stackup 编辑器里建。从 brd 带过来的叠层看着省事但坑在于——很多公司的 brd 里介质厚度填的是芯板和半固化片的标准厚度而压合之后的实际厚度会因为流胶、铜箔厚度变化而缩水 3% 到 8%。如果你用标准厚度去算阻抗一般会偏高。我的处理方式是先按 brd 里的标称值跑一遍拿到结果后拿叠层厂给的“压合后单侧介质厚度”再跑一遍看两个结果的差值。差值小于 2 Ω 的就用标称值差值超过 3 Ω 的一定要按实际压合厚度重新算并且把这个结论反馈给硬件设计让他们在阻抗条上标注清楚。我遇到过一块板标称介质厚度 3.8 mil实际压合后只有 3.55 mil单端阻抗从 52 Ω 掉到 48 Ω直接跌出了 ±10% 的窗口最后是靠着加宽 0.3 mil 线宽救回来的。还有一个细节绿油阻焊层一定要建。表层的微带线如果忽略绿油Dk 会被低估算出来的阻抗能高出 2 到 3 Ω。PowerSI 的叠层编辑器里可以给阻焊单独定义厚度和 Dk一般取 3.3 到 4.0厚度 0.6 到 1.2 mil填上去以后 TDR 曲线会更贴近实测。提示叠层表里的单位一定要统一。PowerSI 默认可能是 mil也可能是 um导入 brd 时按文件设置走。我习惯在开始任何操作前先点开叠层编辑器扫一眼每一层的数值量级确认单位没串。2.2 材料参数Dk、Df 和铜箔粗糙度怎么取值Dk介电常数和 Df损耗因子这两个参数直接决定阻抗和插损。常见板材在 1 GHz 下的典型值我整理成一张表方便你对照板材类型Dk 1GHzDf 1GHz典型应用普通 FR-44.2 ~ 4.50.018 ~ 0.025低速数字、电源中损耗 FR-44.0 ~ 4.30.010 ~ 0.015千兆以太网、DDR3/4低损耗材料3.5 ~ 3.80.004 ~ 0.008PCIe Gen4/5、25G超低损耗材料3.2 ~ 3.50.002 ~ 0.004112G SerDes、光模块这里有几个坑。第一Dk 是随频率变化的板材厂给的往往是 1 GHz 的单一值而你的信号可能从几百兆一直用到十几吉赫兹。PowerSI 支持宽频带 Debye 模型可以输入多个频点的 Dk/Df 让求解器插值比单一常数准得多。第二不要迷信板材厂的数据手册那通常是拿标准测试方法比如带状线谐振法测出来的和你实际的走线结构有偏差。有条件的话用板上做阻抗测试条的实测值反推 Dk会比手册值可信。铜箔粗糙度这一项很多人直接忽略但在 10 GHz 以上影响非常明显。粗糙的铜箔会让电流路径变长等效电阻增加插损变大同时也会让有效 Dk 略微上升。PowerSI 里可以选 Hammerstad 或者 Huray 模型需要输入铜箔的粗糙度参数Rq 或者 RMS 值。普通的反转铜箔 Rq 大概在 0.3 到 0.5 umHVLP 铜箔能低到 0.1 um 左右。做 10 GHz 以下的仿真粗糙度可以先用默认值做 25 GHz 以上的通道这一项必须认真填不然插损会低估 10% 到 20%。2.3 端口和参考平面最容易翻车的一步如果只能挑一个环节反复强调我选端口。端口决定了“你在测什么”测错了后面全白搭。PowerSI 里的端口类型主要有这么几种水平端口Horizontal Port沿着走线方向放在线的两端适合测整段走线的传输特性。竖直端口Vertical Port从走线垂直打到一个参考平面通常是地平面适合测某个局部点的对地阻抗。同轴端口Coaxial Port模拟探针或者连接器的馈入方式端口会自带一段竖直的馈线需要做去嵌。差分端口一对端口组合成差分对需要指定正负端和参考。测走线阻抗时最省事的做法是两端各放一个水平端口远端端接 50 Ω然后看 S11 的 TDR。这样测出来的阻抗剖面沿线的变化一目了然。但要注意水平端口本身在末端会有一个“开路”的边界如果远端不做端接TDR 会在末端看到一个无穷大的阻抗台阶那是开路反射不是走线的问题。关于参考平面有一个特别容易忽略的点如果走线下方的地平面被分割了或者走线跨越了分割缝端口的参考导体必须分别指定。PowerSI 在建端口的时候会让你选择参考导体默认可能选了整块地平面但如果走线在分割处换参考就会算错。我在一个项目里遇到过这种情况——走线从一块地平面上方穿过分割缝到另一块地仿真出来的阻抗在缝的位置突然升高了 15 Ω一开始以为是几何建模错了后来发现是参考导体没分开指定改完之后曲线才正常。注意端口附近的几何要干净。如果端口正好落在一个焊盘、一个过孔或者一段渐变线上测出来的阻抗会包含这些不连续点的贡献不代表走线本身的特征阻抗。我的习惯是把端口放在走线中间一段均匀区域的两端离过孔和焊盘至少留 3 倍线宽的距离。3. 走线阻抗分析的完整实操3.1 用经验公式先做一轮“纸上验算”在打开软件之前先用经验公式算一遍这一步不是多此一举而是给后面的结果准备一把尺子。表层的微带线可以用这个常用近似式Z0 ≈ 87 / √(εr 1.41) × ln[5.98H / (0.8W T)]其中 H 是单侧介质厚度milW 是线宽milT 是铜厚milεr 是介电常数。适用条件是 0.1 W/H 2.0εr 在 1 到 15 之间。举个具体的例子一块普通 FR-4 板H 4 milT 1.4 mil1 oz 铜εr 4.3。代入算一下——εr 1.41 5.71开方后是 2.3987/2.39 36.45.98 × 4 23.92假设线宽取 6 mil那 0.8 × 6 1.4 6.223.92/6.2 3.86取自然对数得 1.35最后 36.4 × 1.35 ≈ 49.1 Ω。也就是说在这个叠层下6 mil 左右的表层线宽能落在 50 Ω 附近。考虑到绿油会让阻抗再降 2 Ω 左右实际线宽可能要收到 5.8 mil 上下。内层的带状线换成另一条式子Z0 ≈ 60 / √εr × ln[4B / (0.67πW(0.8 T/W))]B 是上下两个参考平面之间的总介质厚度。同一条式子代进去你会发现同样介质厚度下带状线 50 Ω 对应的线宽比表层微带细得多——因为带状线上下都有参考平面单位长度的电容差不多是微带的两倍线宽不收窄阻抗就压不下来。这个结论一开始会让人不太适应但方向是对的。需要说明的是这两个式子都是经验拟合式本身有 2% 到 5% 的误差而且不考虑绿油、不考虑粗糙度、不考虑梯形截面。**它的用途是给个量级让你拿到场解算器结果时知道该不该怀疑。**如果你算出来 49 Ω仿真出来 48.5 Ω说明模型建对了如果算出来 49 Ω仿真出来 68 Ω那一定是哪里填错了别急着往下走。3.2 单端阻抗的扫描设置与 TDR 曲线判读具体操作流程我按顺序列一下这是我在 PowerSI 里最常用的一套载入设计直接把 brd 拖进来或者导入 ODB、SPD 格式。载入后先确认叠层和材料是否完整。选择网络在 Net 面板里把要做分析的那几条走线勾上其余网络临时隐藏减小几何规模。设置求解模式PowerSI 的分析类型里选 S 参数或者阻抗、耦合不同版本菜单位置略有差别。求解模式优先选 Broadband宽频带它会在低频用准静态方法、高频用全波方法兼顾速度和精度。如果只是看几吉赫兹以内的阻抗纯 2D 模式也够快很多。设置频率范围做 TDR 的话频带宽度由你想要的上升时间决定关系是BW ≈ 0.35 / Tr。想要 35 ps 的上升时间大概对应 10 GHz 带宽扫频就要覆盖到 10 GHz想要 100 ps3.5 GHz 就够。上限再往上留 50% 到 100% 的余量比较稳妥。设置端口按前面说的走线两端各放一个水平端口参考导体选正下方的地平面。勾选 TDR 输出在求解设置里打开 TDR设置上升时间和你要对比的实测仪器一致、参考阻抗一般 50 Ω、幅度常见 200 mV 或 1 V对阻抗结果本身没影响只影响波形幅度。跑仿真等结果。结果出来以后怎么判读这才是关键。一条健康的单端走线 TDR 曲线应该长这样起点有一个小幅的尖峰或者凹陷端口寄生引起正常的然后是一段平坦的平台整个平台的波动应该控制在 ±2 Ω 以内尾端在远端端接处落回 50 Ω 附近。如果平台不够平出现周期性的波纹那多半是网格太粗或者端口反射和远端反射叠加如果起点尖峰特别高超过 5 Ω说明端口寄生电感太大需要考虑去嵌或者换端口形式如果尾端一路往上翘检查远端是否真的端接了 50 Ω以及 DC 点外推有没有打开。3.3 差分阻抗和偶模/奇模的判读差分线的阻抗分析比单端复杂一点因为差分对内两根线之间有耦合阻抗会被拉低。近似关系是Zdiff ≈ 2 × Z0 × (1 - k)其中 Z0 是单根线对地的特征阻抗k 是两根线之间的耦合系数0 到 1 之间。从这个式子能直接看出来间距越小、并行长度越长耦合越强k 越大差分阻抗越低。这就是为什么同样是 100 Ω 差分紧耦合设计的线宽要比松耦合设计更细。实际操作里差分阻抗有两种设置方式一种是松耦合独立端口法给每根线各放一个对地端口然后手动组合成差分对另一种是差分端口法直接指定正负端让求解器算混模 S 参数。我一般用第二种因为能直接输出 Sdd11差分 TDR 也一并出来了省事。判读差分 TDR 时要注意一个细节差分阻抗的曲线会比单端曲线抖得更厉害因为差模反射里叠了共模分量。如果看到曲线上下抖动明显先看单端阻抗是不是也有问题如果单端是干净的那多半是两根线的不对称引起的比如一根线长度多了几十 mil或者一根线上多过了一个过孔。差分线最怕不对称长度失配会直接转化成共模噪声和眼图抖动这个比阻抗偏差本身更致命。顺带说一句验收标准。常见的单端阻抗要求是 50 Ω ± 10%也就是 45 到 55 Ω差分是 100 Ω ± 10% 或 85 Ω ± 10%具体看协议。USB 2.0 的差分是 90 Ω ± 15%PCIe 常见 85 Ω ± 10%。这些窗口说的是成品阻抗不是线宽公差。线宽一般给 ±10%但阻抗公差要靠叠层厂的工艺能力来保证通常能做到 ±8% 到 ±10%要求更严就得提前和厂里沟通。4. 耦合检查串扰、NEXT/FEXT 和 S 参数的关系4.1 端口配对和耦合路径的识别耦合检查的第一件事是搞清楚谁干扰谁、从哪里耦合过去。走线之间的耦合有三条主要路径同层相邻走线之间的边缘耦合最常见、上下层走线之间的垂直耦合、以及通过参考平面上的回流路径形成的间接耦合跨分割时特别明显。建模的时候至少要建三条线中间一条作为受扰线victim两边各一条作为干扰线aggressor。这样才能同时看到左右两侧的耦合贡献。如果只建两根线你得到的是单侧耦合的结果实际板上另一侧的串扰没算进去会低估。端口配对是这样的干扰线近端靠源端→ 端口 1干扰线远端靠负载端→ 端口 2受扰线近端 → 端口 3受扰线远端 → 端口 4S31 就是近端串扰NEXTS41 就是远端串扰FEXT这两个数字可以直接从 S 参数结果里读出来。要说明的是这样读出来的串扰是频域量单位是 dB代表的是该频率下正弦波的耦合比。真正的时域串扰还要叠加信号的频谱所以最终评估要么做眼图要么用带激励的瞬态仿真。提示干扰线和受扰线的近端/远端要定义清楚。如果两条走线的驱动方向相反近端对每根线来说是不同的物理位置S31 和 S41 的含义会跟着变。我的习惯是先在模型上标出驱动端再用箭头标出信号流向避免算完才发现接反了。4.2 从 S 参数里读出串扰的量级拿到 S 参数以后怎么判断串扰是大是小先说几个经验数字注意这些只是量级参考实际的耦合强弱和介质厚度、参考平面完整性关系极大边到边间距近端串扰大致量级说明 1 倍线宽5% ~ 10%-26 ~ -20 dB高密度区域的常态需要重点评估 3 倍线宽1% ~ 3%-40 ~ -30 dB大多数数字信号可以接受≥ 5 倍线宽 1% -40 dB基本可以忽略这几个数字和流传很广的3W 规则是对得上的中心间距做到 3 倍线宽也就是边到边约 2 倍线宽时串扰能压到 1 W 情形的五分之一左右。但不要把这个规则当成铁律它假设的是同一层、完整参考平面、介质厚度一致的理想情况。一旦参考平面被分割或者走线跨越了分割缝回流路径变长串扰可以翻好几倍。还有两个特别值得说的物理现象近端串扰会饱和。NEXT 随着耦合长度增加会先上升升到某个长度以后就不再增加了这个长度叫饱和长度l_sat ≈ (Tr × v) / 2其中 Tr 是信号上升时间v 是信号在介质中的传播速度FR-4 里大概是 15 cm/ns也就是 6 mil/ps 左右。举个例子Tr 100 psv 6 mil/ps那饱和长度就是 300 mil。这意味着如果你的耦合长度已经超过 300 mil再把线拉开一点点距离对 NEXT 的改善有限不如去缩短并行长度或者加大间距。远端串扰在带状线里几乎为零。FEXT 的大小和奇模、偶模的传播速度差成正比。带状线的介质是完全均匀的奇模和偶模速度一致所以 FEXT 理论上趋于零而微带线上面是空气、下面是介质奇偶模速度不一致FEXT 会明显得多而且随着耦合长度线性累加不会饱和。所以在表层走长距离并行线FEXT 是最需要担心的。4.3 串扰预算怎么分验收怎么定串扰最后一定要落到能不能接受这个判断上。我的做法是先做串扰预算再看仿真结果而不是反过来。假设你的接收端总噪声预算是眼高的 20%里面还要分给反射、电源噪声、码间干扰、串扰。串扰能分到的通常是 5% 到 10% 的眼高。如果眼高是 600 mV那串扰的绝对预算就是 30 到 60 mV。这时候仿真出来的 NEXT 如果对应 80 mV 的耦合电压就是超标的得回去改间距或者加地线隔离。具体到 PowerSI 的结果我是这样用的先把 S31、S41 在关心的频段上画出来看峰值在哪个频率。把峰值和预算对照粗筛一遍哪些网络组合超标。对超标的网络导出宽频带 S 参数到 System SI 里加上实际的驱动器和接收器模型跑带激励的眼图看真实的噪声贡献。如果眼图裕量不够依次尝试加大间距 → 缩短并行长度 → 中间插入地线并且地线要每隔一段打过孔到参考平面否则地线本身会变成一根天线→ 调整叠层让敏感信号走到内层。加地线隔离这件事有讲究。单纯在两条线中间画一根地线如果地线上不打回流过孔或者过孔间距大于信号最高频率对应波长的十分之一隔离效果几乎为零有时候甚至比不加还差。地线要想起作用必须每隔 200 到 400 mil 打一个过孔接到参考平面让它成为真正的回流路径而不是一段浮空的铜。5. 常见问题与排查技巧实录5.1 TDR 曲线抖动、台阶和尾端上翘这是问得最多的一类问题。我把遇到过的典型现象和原因列成一张速查表现象可能原因排查动作起点有尖峰5 Ω 以上端口寄生电感竖直馈线太长改用水平端口或开启端口去嵌把端口往均匀段内移阻抗平台周期性波动网格太粗端口反射与远端反射叠加加密网格把走线两端各延长一段再放端口整体偏低 10% 以上介质厚度填成总厚度Dk 偏高未考虑绿油核对叠层表单位改用压合后单侧厚度补上阻焊层尾端持续上翘远端未端接 50 ΩDC 点外推关闭检查远端端口设置打开 DC 外推某一段突然升高 10 到 20 Ω跨分割参考平面有开槽线宽突变检查该位置的平面完整性看截面是否有几何突变曲线整体噪声大、毛刺多几何有细小碎片铜皮不连续清理无关几何检查是否有孤岛铜其中整体偏低 10%这一条我要单独说。**叠层表里最常填错的不是线宽是介质厚度。**很多叠层图给的是芯板 半固化片 铜厚的总厚度而场解算器要的是导线到参考平面之间的净介质厚度。如果直接把总厚度填进去算出来的电容偏小阻抗会偏高反过来如果填的是两侧厚度之和电容偏大阻抗偏低。我一般会拿叠层图逐层核对一遍把每一层的净介质厚度单独标出来写在纸上再填。5.2 TDR 波形和实测对不上的几类原因仿真和实测对不上先别急着怀疑工具按下面这个顺序查**第一上升时间对不对。**TDR 的分辨率由上升时间决定空间分辨率大致是 (Tr × v)/2。你仿真时设的是 35 ps实测仪器是 40 ps那两条曲线本来就该长得不一样。要对比就统一上升时间用实测仪器的规格去设置仿真参数。**第二探头的寄生参数有没有算进去。**真实的 TDR 探头和测试过孔会引入电感和电容测出来的波形起点会有一个更明显的尖峰。仿真的端口寄生比实测小所以仿真曲线通常比实测干净。要做严格对比得把探头的等效模型也加到端口上。**第三参考阻抗对不对。**有些仪器默认 50 Ω有些可以设成别的值。如果仪器的参考阻抗设成了 52 Ω测出来的平台会整体偏移。**第四测试点的选择和仿真端口位置是否一致。**这个最容易出问题。实测量的是一个测试过孔仿真端口放在走线中间两者差了一段走线加一个过孔曲线当然对不上。记住把仿真端口放在和实测点物理位置一致的地方或者反过来把实测点选在走线的均匀段上。5.3 求解失败和跑得太慢怎么救网格相关的报错八成是几何问题。常见的几种几何自相交铜皮和走线重叠、过孔和焊盘穿透导致网格划分失败。解决办法是把重叠的几何合并或者用布尔运算做一下差集。微小的碎片铜皮板厂工程化处理时残留的小铜块面积只有几平方微米网格划分时会生成退化的单元。这类碎片直接删掉。平面上的细小缝隙分割平面之间的缝如果只有零点几 mil求解器会尝试在这些地方加密网格白白浪费时间也会导致收敛困难。把缝隙简化成理想的分割边界。跑得太慢的话几个实用的优化方向把不相关的网络和区域裁掉只保留关心的部分这一步的效果最明显能把求解时间砍掉一半以上能上 2D 模式就上 2D扫频点不要一味往多了设用自适应扫频让求解器自己在曲线变化剧烈的地方加密把求解频率上限控制住别习惯性地设到 40 GHz实际需要多少就设多少。提示跑大板子之前先拿一小段走线做一个快速验证确认端口、叠层、材料都没问题再去跑整板。我吃过这个亏——跑了一晚上的整板模型早上起来发现端口参考导体选错了全部重来。6. 效率与落地几点实际项目里攒下的经验6.1 扫频、网格和求解参数的够用原则参数设置上最大的误区是越高越准。实际项目里精度够用、时间可控才是正解。我的一般配置是扫频上限按 0.35/Tr 算出 knee 频率再往上留 50% 余量扫频点数用自适应初始给 200 到 500 个点网格用自适应网格最大迭代次数默认 5 到 8 次就够了再往上精度提升很有限。有个很实用的自检方法**把网格密度提高一档再跑一遍对比两次的 S 参数曲线如果两条曲线在整个频段内几乎重合差异小于 0.5 dB说明网格已经收敛了不用再加密。**这个方法比看求解器的收敛报告更直观。另外宽频带求解在低频段接近 DC的结果需要特别留意。TDR 曲线最后落回的那个阻抗值靠的是 DC 附近的低频点。如果求解频率下限设得太高比如从 10 MHz 开始低频信息缺失TDR 的尾端会失真。下限建议设到 10 kHz 到 100 kHz 级别同时打开 DC 点外推让求解器把 S 参数往 DC 方向合理延伸。6.2 批量检查的脚本化思路一块板上有几十上百条需要检查的走线手工一条条建端口、跑仿真显然不现实。PowerSI 支持批处理模式和脚本接口思路是把重复动作抽象成参数化的流程。大致的结构是这样的下面这段是结构示意不是可以直接跑的脚本具体命令名以你手上的版本文档为准# 结构示意批量阻抗检查的流程骨架 set net_list [list TX0_P TX0_N CLK_DDR DQS0_P] set tr_ps 35 set fmax [expr 0.35 / ($tr_ps * 1e-12) / 1e9] ;# 按上升时间算扫频上限 foreach net $net_list { select_net $net create_port -type horizontal -end start -ref GND create_port -type horizontal -end end -ref GND set_sim -mode broadband -fmin 1e4 -fmax [expr $fmax * 1e9] -adaptive 1 set_tdr -trise $tr_ps -zref 50 run_simulation export_result ${net}_z.tdr clear_ports }这么做的价值在于一致性所有走线用同一套叠层、同一套端口规则、同一套扫频设置结果之间可以直接横向比较不会出现这条线用了 35 ps、那条线用了 100 ps结果没法比的情况。而且报告可以自动生成把每条线的平台阻抗、最大值、最小值、波动范围列成表格一眼就能看出哪几条超标。实际落地时还有几个细节要注意端口命名要带网络名方便回溯每次跑完要清理临时文件和端口不然内存会越吃越多结果导出成统一的格式比如 CSV方便后面用脚本做统计和画图。6.3 仿真和实测的闭环才是真正的价值仿真结果再漂亮如果不去和实测对一次你永远不知道自己的模型有多可信。我的习惯是每做一个新叠层或者新板材就做一次闭环验证在板上找一条专门做的阻抗测试条仿一遍实测一遍把两条 TDR 曲线画在同一张图上对比。对比的时候看三个指标平台的阻抗值差多少、曲线形状像不像、不连续点的位置对不对。如果平台差在 2 Ω 以内、形状基本重合那这套叠层和材料参数就可以固定下来后面所有走线都用这套参数去算。如果差了 5 Ω 以上就得回头查 Dk、介质厚度、绿油这几项哪个不对逐个调整再对。**这个闭环做一次后面能省无数次返工。**我见过团队因为懒得做这一步连着三个项目都在阻抗上翻车每次都在投板后才发现改一版板子就是两周的交期和一笔打样费。相比之下花半天时间跑一次仿真加一次实测的对比成本几乎可以忽略。顺带提一个扩展方向把验证过的宽带 S 参数导成 SPICE 模型Sigrity 里有 Broadband SPICE 之类的转换功能塞进系统级的瞬态仿真里这样不光能看阻抗和串扰还能看整条链路的眼图、抖动和误码率。这一步做完PowerSI 的产出就从单条走线的体检报告升级成了整个通道的性能预测对高速接口的设计评审会有很大的帮助。我个人在实际操作中的体会是PowerSI 这类工具真正难的地方从来不在软件本身而在你对自己那块板的物理结构有多了解。线宽线距、叠层顺序、介质厚度、铜箔类型、绿油厚度这些东西如果心里没数软件跑得再快也只是给你一个看起来很专业的错误答案。反过来只要前面这些基础数据摸清楚了参数用默认值都能得到八九不离十的结果。所以每次开新项目我都会先花时间把叠层图和板厂的工艺能力确认一遍再打开软件——这一步看着慢其实是整个流程里最快的一步。
返回列表