主要内容

自定义数据路径构建块

此示例显示如何自定义透传在Simulink金宝app中使用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设计应用程序中创建SerDes系统

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

导出SerDes系统到Simulink。金宝app

增加AMI参数控制增益

双击Rx块以查看Rx子系统内部,并打开SerDes IBIS-AMI管理器对话框。

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

  • 参数名称ExampleGain

  • 描述接收机增益设置

  • 格式范围

  • Typ0.8

  • 最小值0

  • 马克斯1

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

确认设置并单击好吧

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

将PassThrough改为MATLAB函数块

您可以创建MATLAB函数块和添加代码使用ExampleGain属性的修饰符信号。为了说明工作流程,这个示例将展示如何实现增益(使用乘法)MATLAB函数可以为您的系统实现。

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

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

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

运行模拟并观察结果。

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

这些步骤向您展示了如何实现AMI参数ExampleGain使用一个MATLAB系统中的功能块。您还可以使用内置块来定制直通块,如“将直通更改为增益块或其他内置块”一节所述。

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

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

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

的MATLAB系统块并行转换器。透传系统对象:

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

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

将增益块的块参数连接到已添加的AMI参数

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

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

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

实现增益

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

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使用内置块自定义直通块。方法还可以实现AMI参数MATLAB函数块,如“将直通更改为MATLAB函数块”部分所述。

另请参阅

||

相关的话题