主要内容

自定义数据路径构建块

这个例子展示了如何自定义透传块在Simulin金宝appk®中使用MATLAB®函数块或其他Simulink库块。您将看到如何通过IBIS-AMI参数控制接收机增益或衰减阶段的实现,本示例提供了修改PassThrough块以实现SerDes系统的自定义函数的指南。

直通块功能和使用

默认情况下,PassThrough块,顾名思义,是将输入脉冲或波形不加修改地传递到输出的块。该模块可作为SerDes Designer App中的楼层规划工具,导出到Simulink后进行定制。金宝app在PassThrough块的掩码下是引用serdes的MATLAB系统块。透传System object™, which when called by Simulink forwards the input to the output. The MATLAB System block can be updated to reference other SerDes System objects or can be replaced with other Simulink blocks as this example outlines. For an example of customizing with System objects, see在SerDes工具箱直通块中实现自定义CTLE

在SerDes Designer App中创建SerDes系统

启动并行转换器设计在接收器的模拟模型后面放置一个PassThrough块。将PassThrough块的名称改为PTCustomExample。

将SerDes系统导出到Simulink。金宝app

增加AMI参数到控制增益

双击Rx块查看Rx子系统并打开SerDes IBIS-AMI Manager对话框。

AMI-Rx选项卡中,选择CustomExample节点。点击添加参数按钮,并设置变量:

  • 参数名称ExampleGain

  • 描述接收机增益设置

  • 格式范围

  • Typ0.8

  • 最小值0

  • 马克斯1

当前值,使用,类型是否保持默认值0,,浮动,分别。

确认设置并单击好吧

您将看到画布上自动生成的参数,如下所示。

切换PassThrough到MATLAB函数块

您可以创建MATLAB函数块并添加代码来使用ExampleGain属性的修饰符信号。为了演示该工作流,本示例将展示如何实现增益(使用乘法),但任何MATLAB函数可以为您的系统实现。

函数out = fcn(in,ExampleGain)= gainSignal;

然后,您可以删除PassThrough块,并连接MATLAB输入信号块在,ExampleGain和输出信号如图所示:

记得回到Rx子系统,双击Init并单击按钮刷新Init.您可以通过打开IBIS AMI管理器并更改的Current值来查看参数ExampleGain的值的影响ExampleGain0.8

运行模拟并观察结果。

的当前值ExampleGain1.0并重新运行模拟以确认ExampleGain参数正在修改Receiver信号。

这些步骤向您展示了如何实现名为AMI的参数ExampleGain使用一个MATLAB函数块。您还可以使用内置块自定义PassThrough块,如“将PassThrough更改为增益块或其他内置块”一节所述。

将PassThrough更改为增益块或其他内置块

为模型配置自定义PassThrough块的另一种方法是使用内置块。例如,可以在PassThrough块中添加一个Gain块。而不是创建一个MATLAB函数块,在参数后面的“CustomExample”块的掩码下查找ExampleGain是根据上面“添加AMI参数到控制增益”一节的步骤创建的:

删除参数ExampleGain.您应该看到画布现在看起来像默认的并行转换器。透传系统对象:

接下来,删除指向的MATLAB系统块并行转换器。透传系统对象:

从Simulink > MathOperators库金宝app中添加一个增益块,并在输入和输出端口之间连接增益块:

注意:虽然本例使用增益块来说明工作流,但您可以使用任何内置块(以及MATLAB功能)。

将增益块的块参数连接到新增的AMI参数

常量被表示为Simulink参数。金宝app双击增益块打开块参数对话框。集获得价值CustomExampleParameter。ExampleGain

更新在统计分析期间运行的代码

要使增益应用于统计分析期间的脉冲响应,双击Rx子系统内部的Init块。单击刷新Init按钮将新的AMI参数添加到Init代码中。单击显示初始化按钮,打开MATLAB编辑器窗口,查找自定义用户代码区包围% %开始%结束评论。与自定义PassThrough块关联的代码封装在本节中。

实现增益

自定义用户代码区,编辑自定义代码,对包含脉冲响应的局部变量执行增益操作。要做到这一点,请替换以下代码:

CustomExampleParameter.ExampleGain;

:

LocalImpulse = LocalImpulse * CustomExampleParameter.ExampleGain;

自定义用户代码区应出现如下:

保存更改。

注意:如果未修改Init代码,则统计模拟的结果不会反映增益操作,而只显示在时域(GetWave)模拟的结果中。

运行带有增益设置的模拟

打开SerDes IBIS-AMI管理器对话框,单击AMI-Rx选项卡。选择ExampleGain *节点,并设置当前值0.8

运行仿真并从时域(GetWave)和统计(Init)结果观察波形的振幅。

改变增益设置并观察变化

打开SerDes IBIS-AMI管理器对话框,单击AMI-Rx选项卡。选择ExampleGain *节点,并设置当前值0.4

再次运行模拟,观察来自时域(GetWave)和来自统计(Init)的波形的振幅如何变化。

这些步骤向您展示了如何实现名为AMI的参数ExampleGain使用内置块自定义PassThrough块。您还可以使用MATLAB如“将PassThrough转换为MATLAB函数块”一节所述。

另请参阅

||

相关的话题