使用Circuit组件验证生成IBIS模型的正确性(DSPF vs IBIS)

本文始于2024年01月,以2021R2 Circuit工具演示分别搭建DSPF netlist原始文件相关的验证电路和第3节课中生成的IBIS模型相关的验证电路,并给予特定激励对比两个电路输出波形的一致性,从而来判断IBIS模型的正确性。文章中先从原始功能验证电路开始,随后分别验证IBIS模型的输入和输出功能。


1. 相关文件准备

1.1 将第2节课中的TEST IO DSPF文件、Device hspice模型文件以及第3节课中生成的KX001.ibs文件放到同一文件夹下。

注意:因为这里验证的是KX001.ibs模型中的一个子模型“PAD_18_S_PK0”中对应的type数据,所以这里需要手动在IO dspf网表中加上“.INC ./TT_toplevel.l” 语句。

2. 相关电路搭建和验证

 在Circuit中创建相关验证电路并按如下命名:

(1)IO DSPF netlist功能验证电路,命名为:0_dspf_function

(2)IBIS模型作为Receiver时的验证电路,命名为:1R_ibis_receiver_verify

(3)IO dspf作为Receiver时的验证电路,命名为:1R_dspf_receiver_verify

(4)IBIS模型作为Driver时的验证电路,命名为:2D_ibis_driver_verify

(5)IO dspf作为Driver时的验证电路,命名为:2D_dspf_driver_verify

注:“R”代表receiver;“D”代表driver。

2.1 创建IO dspf 功能验证电路0_dspf_function并验证其功能符合真值表,如下图; 这里我们随机选择下图真值表中的紫色框部分进行验证。

① 打开Ansys Electronics Desktop软件,按如下图示新建Circuit电路命名为0_dspf_function,同时将项目名改为IBIS。

② 新建对应IO dspf netlist模型器件,并结合上图真值表中节点电位和第2节课中的3.3.3小节仿真设置各节点对应的电位。

③ 放置相关探针和连接好电路图,并设置瞬态仿真如下;

根据验证需要调整 1、2 框中节点电位,观察PAD输出电压是否和真值表中的PAD值对应。

④ 仿真验证结果

(1)验证PAD输出为高电平:

(2)验证PAD输出为高阻

2.2 创建IBIS模型作为Receiver时的验证电路,命名为:1R_ibis_receiver_verify

① 添加激励,并将调入的IBIS模型属性按如下图片设置。

② 添加瞬态仿真

③ 仿真结果

2.3 创建IO dspf作为Receiver时的验证电路,命名为:1R_dspf_receiver_verify

注意:这里因为dspf网表中没有包含封装pin的RLC寄生参数,所以创建电路时应手动加上对应pin的RLC寄生参数,而2.2 因是ibis模型所以它本身就已经包含了pin的RLC寄生参数了。

① 对应创建后的电路图下;

② 添加瞬态仿真

③ 仿真结果

2.4 对比1R_ibis_receiver_verify和1R_dspf_receiver_verify仿真结果

局部细节部分对比:

从对比两个输入仿真波形图可以看出,IBIS模型和dspf netlist仿真得出的波形高度吻合。

下面按上述同样的方法验证作为输出时IBIS和dspf模型仿真波形的对比。

2.5 按同样方式创建IBIS模型作为Driver时的验证电路,命名为:2D_ibis_driver_verify,用10pf电容作为负载。

① 对应电路图如下;

② 添加瞬态仿真

③ 仿真结果

2.6 按同样方式创建IO dspf模型作为Driver时的验证电路,命名为:2D_dspf_driver_verify

① 对应激励参数和电路图

1 驱动强度和边沿特性控制;

2 激励输入;

3 封装RLC寄生参数;

② 添加瞬态仿真;

③ 仿真结果

2.7 对比2D_ibis_driver_verify和2D_dspf_driver_verify仿真结果

局部细节对比

从对比两个输出仿真波形图可以看出,IBIS模型和dspf netlist仿真得出的波形同样高度吻合。

至此IBIS模型验证结束。

-END-

发表评论