这个例子展示了如何自定义透传块在Simulin金宝appk®中实现一个具有用户定义的AMI参数的CTLE系统对象™。您可以使用这个示例作为修改利用系统对象的PassThrough块的指南。有关PassThrough块的用途以及在其中使用其他Simulink库块的示例的更多信息,请参见金宝app自定义数据路径构建块.
在MATLAB®,类型serdesDesigner
启动并行转换器设计在接收器的模拟模型后面放置一个PassThrough块。将PassThrough块的名称改为PT
来MyCTLE
.
将SerDes系统导出到Simulink。金宝app
的自定义副本CTLE从SerDes工具箱™。首先修改PassThrough块的内容来引用一个新的系统对象,然后实现和连接它的参数。这解决了模型的时域(GetWave)函数。然后更新Init代码以反映统计分析中时域(GetWave)的功能。这个示例将引导您使用并行转换器。CTLE
系统对象。
在Rx子系统内部,查看PassThrough块的掩码MyCTLE
.选择PassThrough块,按Ctrl + U打开MATLAB系统的块参数对话框,并更改系统对象名称从并行转换器。透传
来并行转换器。CTLE
.
点击好吧保存更改,您将看到块从Pass Through更改为一个CTLE:
注意:您也可以使用自己的自定义System对象。例如,如果你想创建一个自定义的CTLE,并在自适应算法中进行更改:
打开的源代码并行转换器。CTLE
.
在目录中保存源代码的本地副本。
在代码中进行所需的更改。
然后在MATLAB系统中参考定制代码。
正确地将CTLE链接到系统范围的参数SymbolTime和SampleInterval,您需要设置CTLE以使用这些参数作为变量,而不是硬编码的值。否则,模拟中可能包含不正确或意外的值,并导致无效数据。双击现在指向CTLE系统对象的PassThrough块,打开块参数对话框窗口。在“高级”选项卡中设置符号时间(年代)来SymbolTime
和取样间隔(s)来SampleInterval
.点击好吧保存更改。
打开“SerDes IBIS-AMI Manager”对话框。下Model_Specific
参数AMI-Rx选项卡中,选择MyCTLE节点,并添加两个新参数,CTLEMode和CTLEConfigSelect.
添加CTLEMode参数,单击添加参数按钮,并设置变量:
参数名称来CTLEMode
当前值来0
描述来CTLE模式:0 = off, 1 = fixed, 2 = adapt
类型来整数
格式来范围
Typ来1
最小值来0
马克斯来2
.
按Ok保存更改。你会看到参数自动添加到画布:
添加CTLEConfigSelect参数,选择MyCTLE节点,单击添加参数按钮,并设置变量:
参数名称来CTLEConfigSelect
当前值来0
描述来CTLE配置选择的范围从0到8
使用来InOut
类型来整数
格式来范围
Typ来0
最小值来0
马克斯8。
按Ok保存更改。同样,您将看到参数自动添加到画布中。
连接块MyCTLEParameter。CTLEMode
到模式输入和MyCTLESignal。CTLEConfigSelectread
到ConfigSelectPassThrough块的输入。连接ConfigSelect的PassThrough块的输出MyCTLESignal。CTLEConfigSelectwrite
块。
有关更多信息,请参见管理AMI参数.
您可以双击这些块来确认连接性。例如,双击块MyCTLESignal。CTLEConfigSelectread
确认数据存储的连通性Read:
这就完成了时域(GetWave)模拟的设置。
双击Rx块中的Init子系统,打开块参数对话框。将AMI参数连接为MyCTLE
块,点击刷新Init按钮。由于您使用了一个系统对象,因此这种连接性是自动生成的。要验证这一点,请单击显示初始化按钮打开Init子系统的MATLAB代码。控件包围的自定义用户代码区域中,应该可以找到与CTLE AMI参数连接相关的代码% %开始
和%结束
语句。
运行仿真。
要评估CTLE对输出波形的影响,请打开SerDes IBIS-AMI管理器对话框。在AMI-Rx选项卡,设置当前值的CTLEMode *参数1
采用固定模式操作,并设置当前值的CTLEConfigSelect *参数4
.重新运行模拟。