agentee

仿真

眼图、PDN 和 S 参数

将比特流推过信道并读取眼图,检查电源轨阻抗是否符合目标,并运行 TDR、混合模式和串扰分析。

三个仿真读取 FDTD 运行的 S 参数,用于比绘图更具体的内容:通道仿真将比特流通过链路并绘制眼图,PDN 仿真将电源轨的端口转换为其相对于目标的阻抗,agentee sparam 在时域分析任何结果。每个都需要先对电路板进行 FDTD 运行;参见 射频仿真 了解如何设置并保持低成本。

信道与眼图

name = "usb-eye"
kind = "channel"
board = "usb-link"
pair = ["J1+", "J1-", "J2+", "J2-"]
bit_rate = "5Gbps"
rise = "40ps"
swing = "0.8V"
prbs = 7
ctle = { dc_gain = -6.0, zero = "1GHz", poles = ["5GHz", "10GHz"] }
dfe_taps = 2

board 命名承载链路的 S 参数的仿真。through = [FROM, TO] 是单端路径;pair = [IN+, IN-, OUT+, OUT-] 是差分路径,从 Sdd21 读取。脉冲响应来自路径,如果有 CTLE 则乘以 CTLE,带有高斯边缘,眼图是在 64 个相位每单位间隔上叠加 PRBS,并在前 dfe_taps 个后光标上进行理想判决反馈。

agentee sim usb-eye
agentee show sim:usb-eye

读数包括最佳相位处的眼图高度、眼图宽度、最差峰值失真、奈奎斯特频率处的损耗和光标计数。比 S 参数覆盖范围更快的边缘会被减慢到数据支持的水平,并附有注释。

来自 IBIS 的真实驱动器

tx = { file = "models/sn74lvc1g04.ibs", model = "LVC1G04_OUT_33", component = "LVC1G04_DBV", pin = "4" }
rx = { file = "models/sn74lvc1g04.ibs", model = "LVC1G04_IN_33", component = "LVC1G04_DBV", pin = "2" }

驱动器从其下拉和上拉表、其芯片电容和封装变为戴维南源;其斜坡设定边缘,其电压范围设定摆幅,除非给出 rise 或 swing。接收器用其封装和芯片电容加载远端,眼图在其芯片处读取。IBIS 目前适用于单端路径。

电源分配网络

name = "vcc-pdn"
kind = "pdn"
board = "rail"
sinks = ["U1_VCC"]
target = { voltage = "5V", ripple = 1.0, transient = "50mA" }

[[decaps]]
port = "C3"
ref = "C3"
file = "models/grm155r61a105ke15.s2p"
mount = "series"

[[decaps]]
port = "C4"
c = "1uF"
esl = "0.4nH"
esr = "15mohm"

[[vrm]]
port = "VRM"
r = "2mohm"
l = "20nH"

[frequency]
start = "100kHz"
stop = "1GHz"
points = 200

电路板的 FDTD 仿真在每个电源引脚、每个去耦电容焊盘和稳压器上放置端口。每个端口必须被驱动,并且必须是汇、去耦电容或 VRM。由于电源轨远低于 50 欧姆,从 50 欧姆转换 S11 会损失精度,因此给这些端口一个低 impedance,0.5 到 1 欧姆。

目标可以是阻抗,也可以是电压、纹波百分比和瞬态电流。查看器在对数-对数图上绘制每个负载的 |Z| 与目标值,读数给出峰值阻抗与目标值的对比以及最大的反谐振点,也就是需要添加或更换去耦电容的位置。去耦电容可以是 S 参数测量文件,也可以是带有 ESL 和 ESR 的理想电容 C。

S 参数分析

agentee sparam lna-rf --tdr IN --rise 50ps
agentee sparam link --pair 1,2,3,4
agentee sparam link --xtalk 1,3
  • --tdr PORT 给出从单个端口出发的阻抗随时间的变化:将数据重采样到均匀网格,外推到直流,施加高斯边沿并积分。当边沿快于数据所能支持的程度时,它会发出警告。查看器会为每个驱动端口显示相同的 TDR。
  • --pair IN+,IN-,OUT+,OUT- 给出混合模式 Sdd21、Sdd11、Scc21、Scd21 和 Sdc21。
  • --xtalk FROM,TO 给出以 dB 为单位的耦合系数以及阶跃信号的串扰。

当所有端口都被驱动时,每次运行都会报告无源性(S 矩阵在频带内的最大奇异值)和互易性(Sij 与 Sji 之间的最大差异)。无源性大于 1 意味着运行未收敛或网格太粗。

PCB 布局中的接口可以读取已完成的仿真结果,并在链接未满足其数值要求时使检查失败:

[[interfaces]]
name = "usb-ss"
preset = "usb3-gen1"
nets = ["SS_TX*", "SS_RX*"]

[[interfaces.measure]]
sim = "usb-link"
pair = ["TX1_FX+", "TX1_FX-", "TX1_J+", "TX1_J-"]
up_to = "2.5GHz"
max_loss = 1.5
min_return_loss = 10.0
max_mode_conversion = -30.0

[[interfaces.measure]]
sim = "usb-eye"
min_eye_height = "70mV"
min_eye_width = "0.47UI"

缺失或过期的结果同样算作错误,因此仿真尚未看到的布局更改会使检查失败,直到重新运行仿真。这正是目的所在:你签核的眼图,就是你即将下单的铜箔的眼图。接口参考列出了所有限值。

改进此指南 · 面向智能体的 Markdown