DDR5控制器发射机/接收机IBIS-AMI模型
这个例子展示了如何使用SerDes Toolbox™中的库块创建通用的DDR5发射器和接收器IBIS-AMI模型,并已通过Intel®的验证。由于DDR5 DQ信号是双向的,本示例为控制器创建Tx和Rx模型。生成的模型符合IBIS-AMI规范。
在SerDes Designer App中设置DDR5控制器Tx/Rx IBIS-AMI模型
本示例的第一部分使用SerDes Designer应用程序中DDR5所需的块设置和探索目标发射机和接收器体系结构。然后,SerDes系统导出到Simulink®,用于进一步定制和IBIS-AMI模型生成。
在MATLAB®命令窗口中输入以下命令来打开ddr5_controller
模型:
> > serdesDesigner(“ddr5_controller”)
控制器有一个使用4 tap前馈均衡(FFE)的DDR5发射器(Tx)。该控制器还有一个DDR5接收器(Rx),使用8个预定义设置的连续时间线性均衡器(CTLE)和一个内置时钟数据恢复的4点决策反馈均衡器(DFE)。
配置设置
符号时间被设置为
208.3
Ps,因为目标开工率是4.8
ddr5 - 4800 Gbps。系统被设置为
100年e-18
.信号被设置为
单端
.每个符号样本而且调制都保持默认值,分别为
16
而且NRZ
(不返回零),分别。
发射机模型设置
Tx FFE块设置为一个预tap,一个主tap,和两个后tap,包括四个tap的重量。这是通过数组[0 1 0 0]完成的,其中主tap由数组中最大的值指定。当模型导出到Simulink时,点击范围将在后面的示例中添加。
Tx类比模型的建立是这样的电压是
1.1
V,上升时间是One hundred.
ps,R(输出电阻)50 o
号,C(电容)0.65
最终模型中使用的实际模拟模型将在本例的后面生成。
通道模型设置
单端阻抗被设置为
40
欧姆。目标频率被设置为
2.4
也就是4.8 GHz的奈奎斯特频率频道损失被设置为
5
dB在Nyquist,这是典型的DDR通道。
接收器模型设置
Rx类比模型是这样建立的R(输入电阻)
40
欧姆,C(电容)0.65
最终模型中使用的实际模拟模型将在本例的后面生成。CTLE块被设置为
8
配置。的规范被设置为直流增益和交流增益
.直流增益被设置为[0 -1 -2 -3 -4 -5 -6 -7]
dB。峰值频率设置为2.4
GHz。所有其他参数保持默认值。DFECDR块设置为四个DFE丝锥,包括四个首次利用权重设置为0。的最低限度的利用价值被设置为
[-0.2 -0.1 -0.1 -0.1]
V和最大的利用价值被设置为[0.2 0.1 0.1 0.1]
V。注意:DFECDR提供了“2X水龙头”的选项。选中此选项,使脉冲响应值与JEDEC使用的约定匹配。取消选中此选项可直接从图中使用脉冲响应值。
-
情节统计结果
使用SerDes设计器添加图按钮以可视化DDR5控制器设置的结果。
添加BER图添加图观察结果。
添加脉冲响应图添加图放大到脉冲区域,观察结果。
导出SerDes系统到Simulink
点击保存然后点击出口按钮将配置导出到Simulink,以便进一步定制和生成AMI模型可执行文件。
在Simulink中建立DDR5控制器Tx/Rx IBIS-AMI模型
本例的第二部分采用SerDes Designer应用程序导出的SerDes系统,并根据需要在Simulink中对其进行定制。
回顾Simulink模型设置
导入到Simulink中的SerDes系统由配置、刺激、Tx、模拟通道和Rx块组成。SerDes Designer应用程序中的所有设置都已转移到Simulink模型中。保存模型并检查每个块设置。
双击Configuration块打开块参数对话框。的参数值符号时间,每个符号样本,系统,调制,而且信号都是从SerDes Designer应用程序中继承下来的。
双击刺激块以打开块参数对话框。您可以设置伪随机位序列(伪随机二进制序列)的顺序和要模拟的符号的数量。这个块不是从SerDes Designer应用程序转过来的。
双击Tx块查看Tx子系统内部。子系统从SerDes Designer应用程序中继承了FFE块。还引入了Init块来建模AMI模型的统计部分。
双击模拟通道块打开块参数对话框。的参数值目标频率,损失,阻抗和Tx / Rx模拟模型参数从SerDes Designer应用程序中继承过来。
双击Rx块查看Rx子系统内部。子系统有从SerDes Designer应用程序继承来的CTLE和DFECDR块。还引入了Init块来建模AMI模型的统计部分。
运行模型
运行模型模拟SerDes系统。
生成了两个图。第一个是实时时域(gewave)眼图,随着模型的运行而更新。
在模拟完成之后,第二个图包含统计(Init)和时域(gewave)结果的视图,以及为每个结果报告的Eye指标。
检查Tx FFE块
在Tx子系统内部,双击FFE块打开FFE块参数对话框。
的利用权重都是从SerDes Designer应用程序中继承下来的。
回顾Rx CTLE块
在Rx子系统中,双击CTLE块以打开CTLE块参数对话框。
直流增益,交流获得,峰值频率都是从SerDes Designer应用程序中继承下来的。
CTLE模式被设置为
适应
,这意味着CTLE系统对象中内置的优化算法在运行时选择最优的CTLE配置。
更新Rx DFECDR块
在Rx子系统内部,双击DFECDR块,打开“DFECDR块参数”对话框。
的首次利用权重,最小DFE档位值,而且最大的利用价值RMS设置是从SerDes Designer应用程序中继承过来的自适应增益而且自适应步长将
3 e-06
而且1 e-06
,分别为基于DDR5 Controller期望的合理值。扩大IBIS-AMI参数显示IBIS-AMI模型中要包含的参数列表。
取消选择相抵消而且引用偏移量从AMI文件中删除这些参数,有效地将这些参数硬编码为它们的当前值。
生成DDR5控制器IBIS-AMI模型
本例的最后一部分采用定制的Simulink模型,修改DDR5控制器的AMI参数,然后生成符合IBIS-AMI的DDR5控制器模型可执行文件、IBIS和AMI文件。
打开配置块的块参数对话框,并单击打开SerDes IBIS-AMI管理器按钮。在宜必思选项卡中的SerDes IBIS- ami管理器对话框中,模拟模型值被转换为任何工业标准模拟器都可以使用的标准IBIS参数。
更新发射器(Tx) AMI参数
打开AMI-Tx选项卡中的SerDes IBIS-AMI管理器对话框。保留参数列在前面,后面是遵循典型AMI文件格式的特定于模型的参数。
设置预加重丝锥
突出TapWeight 1
单击编辑……以启动“添加/编辑参数”对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.2
,马克斯=0.2
.点击好吧保存更改.
设置主要利用
突出TapWeight 0.
单击编辑……按钮启动“添加/编辑参数”对话框。
确保格式被设置为范围并设置Typ=
1
,最小值=0.6
,马克斯=1
.点击好吧.
设置第一个强调后轻按
突出TapWeight1.
选择编辑……按钮,启动添加/编辑参数对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.2
,马克斯=0.2
.点击好吧.
设置第二个强调后轻按
突出TapWeight2.
选择编辑……按钮,启动添加/编辑参数对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.1
,马克斯=0.1
.点击好吧.
添加Tx抖动参数
若要为Tx模型添加抖动参数,请单击保留参数…按钮打开Tx添加/删除抖动和噪声对话框,选择Tx_Dj而且Tx_Rj框,然后单击好吧将这些参数添加到Tx AMI文件的“保留参数”部分。可以调整以下抖动值,以满足特定控制器的DDR5掩码要求。
设置Tx确定抖动值
选择Tx_Dj,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变类型来
用户界面
.改变格式来
价值
.设置当前值来
0.0500
点击好吧以保存更改。
设置“发送随机抖动值”
选择Tx_Rj,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变类型来
用户界面
.改变格式来
价值
.设置当前值来
0.0025
点击好吧以保存更改。
Update Receiver (Rx) AMI参数
打开AMI-Rx选项卡中的SerDes IBIS-AMI管理器对话框。保留参数列在前面,后面是遵循典型AMI文件格式的特定于模型的参数。
设置“第一DFE丝锥重量”
突出TapWeight 1。
单击编辑……按钮启动“添加/编辑参数”对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.2
,马克斯=0.05
.点击好吧.
设置第二DFE轻按权重
突出TapWeight 2.
单击编辑……按钮启动“添加/编辑参数”对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.075
,马克斯=0.075
.点击好吧.
设置第三DFE轻按权重
突出TapWeight 3.
单击编辑……按钮启动“添加/编辑参数”对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.06
,马克斯=0.06
.点击好吧.
设置第四DFE轻按权重
突出TapWeight 4.
单击编辑……按钮启动“添加/编辑参数”对话框。
确保格式被设置为范围并设置Typ=
0
,最小值=-0.045
,马克斯=0.045
.点击好吧.
添加Rx抖动和噪声参数
若要为Rx模型添加抖动参数,请单击保留参数…按钮打开Rx添加/删除抖动和噪声对话框,选择Rx_Receiver_Sensitivity,Rx_Dj、Rx_Noise Rx_UniformNoise而且Rx_Rj框,然后单击好吧将这些参数添加到Rx AMI文件的“保留参数”部分。以下抖动和噪声值可以调整,以满足特定控制器的DDR5掩码要求。
设置Rx随机抖动值
选择Rx_Rj,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变类型来
用户界面
.改变格式来
价值
.设置当前值来
0.00375
点击好吧以保存更改。
设置Rx确定抖动值
选择Rx_Dj,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变类型来
用户界面
.改变格式来
价值
.设置当前值来
0.0125
点击好吧以保存更改。
设置“Rx接收机灵敏度值”
选择Rx_Receiver_Sensitivity,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变格式来
价值
.设置当前值来
0.040
点击好吧以保存更改。
设置Rx高斯噪声值
选择Rx_Noise,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变格式来
价值
.设置当前值来
0.0015
点击好吧以保存更改。
设置Rx均匀噪声值
选择Rx_UniformNoise,然后按编辑……按钮弹出“添加/编辑AMI参数”对话框。
改变格式来
价值
.设置当前值来
0.0025
点击好吧以保存更改。
出口的模型
打开出口选项卡中的SerDes IBIS-AMI管理器对话框。
更新Tx模型名称来
ddr5_controller_tx
更新Rx模型名称来
ddr5_controller_rx
请注意,Tx和Rx角百分比被设置为
10
.这将使模拟模型角值的最小/最大比例增加+/-10%。验证二元模型对于Tx和Rx AMI模型设置都是选中的。这将创建支持统计(Init)分析和时域(gewave)模拟的模型可执行程序。
设置Tx模型位忽略到4,因为在Tx FFE中有四个水龙头。
设置Rx模型位忽略来
250000(10000就够了吗? gk)
以便在时域模拟过程中有足够的时间让Rx DFE丝锥沉降。确认Tx和Rx都已设置为导出,并且已选择要生成的所有文件(宜必思文件,AMI文件(年代)而且DLL文件(年代)).
设置宜必思文件名来
temp_ddr5_controller.ibs
目录使示例文件ddr5_controller.ibs
不覆盖。单击出口按钮在Target目录中生成模型。
更新DDR5模拟模型
为了适应不同的拓扑结构、加载配置、数据速率和传输,DDR5需要可变的输出驱动器强度和输入模上终止(ODT)。虽然使用了相同的算法AMI模型,但是需要多个模拟模型来覆盖所有这些用例。这些模拟模型的生成超出了本示例的范围,因此在当前示例目录中可以获得包含以下模拟模型的完整IBS文件:
POD11_IO_ZO50_ODTOFF: 50欧姆输出阻抗,无输入ODT。
POD11_IN_ODT40_C:输入40欧姆ODT。
POD11_IN_ODT60_C:输入60欧姆ODT。
为了生成这个完整的IBIS文件,需要对ddr5_controller进行以下更改。Ibs使用文本编辑器:
创建了一个引脚,其signal_name为DQ1_controller, model_name为dq。
将驱动程序Model_type更改为I/O,并将其命名为POD11_IO_Z050_ODTOFF。
增加两个接收器模型,分别命名为POD11_IN_ODT40_C和POD11_IN_ODT60_C。
以上模型均增加VI曲线和算法模型部分。
添加了引用上面提到的模型的模型选择器部分。
注意:总是建议检查.ibs文件中的vinl、vinh、c_comp和其他变量的值是否与设备数据表值匹配。
测试生成的IBIS-AMI模型
DDR5发射器和接收器IBIS-AMI模型现在已经完成,可以在任何工业标准AMI模型模拟器中进行测试。
参考文献
IBIS 7.0规范,https://ibis.org/ver7.0/ver7_0.pdf.
另请参阅
固定资产|CTLE|自动增益控制|DFECDR|并行转换器设计