仿真
眼图、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 = 2board 命名承载链路的 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"缺失或过期的结果同样算作错误,因此仿真尚未看到的布局更改会使检查失败,直到重新运行仿真。这正是目的所在:你签核的眼图,就是你即将下单的铜箔的眼图。接口参考列出了所有限值。