PCB 设计中信号完整性仿真:如何用 HyperLynx 快速定位过冲问题
HyperLynx 定位过冲的优势不在"算得准"(这点 Ansys 全家桶更细),而在从板子导入到看到波形只要十分钟,迭代快。下面这套流程在 LineSim(预布局)+ BoardSim(后仿)两段都通用,盯的是 DDR3/4、USB3、HDMI 这类单端/差分高速轨。
一、模型先挂对,否则过冲全是假的
HyperLynx 认 IBIS 最稳,器件厂商给的 .ibs 直接拖进 Assign Models:
• 发送端选 Buffer 的 Fast-Strong/Slow-Weak 两端极值(过冲最恶劣一般在 Fast-Strong + 低温),别只跑 Typ
• 接收端挂 EBD/EBD_R 这类含封装参数的模型,别裸挂 [Pin]
• 没 IBIS 的用 DML(Mentor 的 .dml)或让厂商补,HSpice 模型也能转但不如 IBIS 稳
⚠ 板子导入时层叠必须在 Stackup Editor 里核一遍——Dk/Df、铜厚、PP 厚度错一位,特性阻抗 Z0 差 10 Ω,过冲幅值直接失真。
二、LineSim 预布局:先抓"根源型"过冲
还没画板就用 LineSim 拉拓扑,比投板后再救便宜。典型操作:
1. Net → Add TX/RX/Stub,拓扑按实际走:TX → 串阻 → 过孔 → 微带 → RX
2. Coupling 里把相邻 aggressor 加上(开关噪声也会叠加成过冲)
3. 跑 Single Net Simulate,看 Waveform 里 Vpeak 是否超过 RX IBIS 的 [Voltage Reference] 阈值(一般 DDR3 单端过冲 ≤ 0.3×Vdd = 0.405 V)
过冲常见的三个根因,LineSim 里能快速对号:
现象 根因 修正
上升沿尖峰 + 振铃 驱动太强 / 无串阻 TX 近处加 22–33 Ω 串阻(DDR 地址常用)
下降沿 undershoot 到负电压 参考层不连续 / 回流路径长 换层处补 GND via 伴行
振铃周期固定 末端不匹配 / stub 太长 并端 50 Ω 或剪 stub(< 150 mil)
BoardSim 后仿里可以用 Quick Rule Check → Overshoot/Undershoot,工具会直接标红超标的 net,点进去看是哪一端的 buffer 爆的——TX 爆多半是驱动+串阻,RX 爆多半是匹配+参考层。
三、BoardSim 后仿:用 Eye + TDR 两个视图交叉定位
板子画完导 .hyp(Allegro)或 .brd/.pcb 进 BoardSim,Extract → Setup 选 Coupled 模式(含近端远端串扰),频率上限拉到 3×奈奎斯特(USB3 5 Gbps 拉到 7.5 GHz)。
两个视图配合看:
• Waveform(Eye Diagram):看眼高眼宽 + 过冲幅值。单端过冲 > 厂家 spec(如 HDMI 单端 ≤ 0.5 V over Vcc)就标红
• TDR 剖面:菜单切 TDR 模式,沿走线扫阻抗,过冲大的那段对应 TDR 上的"凹陷/凸起"——常见是:
• 过孔无反焊盘 → 局部 Z 跌到 30–40 Ω,反射成过冲
• BGA 扇出颈缩太细 → Z 飙到 70 Ω 以上
• 参考层跨分割 → TDR 上看到一段缓坡抖动
差分对过冲要看 P/N 各自的 Common Mode,很多 HDMI/PCIe 过冲其实是共模分量被放大,单看差模波形发现不了。
四、批量扫参与代码化
HyperLynx 支持 VBScript 批跑,改匹配阻值 / 驱动强度不用每次点 GUI:
' HyperLynx Waveform 导出 + 参数扫(简化示例)
Set hl = CreateObject("HyperLynx.Application")
hl.OpenProject "board.hyp"
hl.SetNet "USB3_TX_P"
hl.SetTxModel "Driver_FastStrong"
hl.SetSeriesR 27 ' 串阻 27Ω
hl.RunSimulation
hl.ExportWaveform "usb3_tx_27ohm.wfm"
hl.SetSeriesR 33
hl.RunSimulation
hl.ExportWaveform "usb3_tx_33ohm.wfm"
扫完对比两组 Waveform 的 Vpeak,阻值拐点一目了然。BoardSim 里也能 Batch Simulate 勾选一组 net,跑完直接出 Overshoot 排序表,比单 net 点快 10 倍。
五、修正闭环
定位完改板三件事优先级:
1. TX 近端串阻——见效最快,DDR 地址/控制组基本必加
2. 换层 GND via 伴行——过孔返回路径,尤其差分对
3. 反焊盘 / 参考层修补——TDR 看到 Z 跳变的才动,别全网改
改完重新 Extract(BoardSim 里 Re-extract Selected Nets),Waveform 里 Vpeak 掉下来、Eye 张开度变大,过冲就算收住。
HyperLynx 抓过冲的真谛:IBIS 挂极值、LineSim 先定性(驱动/匹配/回流)、BoardSim 后仿用眼图+TDR 交叉定位、批扫串阻找拐点。这套跑下来,DDR3/USB3/HDMI 这类轨的过冲一般两轮板内就能压到 spec 的 70% 以下,不用一上来就请 Ansys 出山。





