主要内容

定制数据路径构建块

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

直通块的功能和使用

默认情况下,PassThrough块,顾名思义,是将输入脉冲或波形不加修改地传递给输出的块。此块可在SerDes Designer App中作为楼层规划工具使用,导出到Simulink后再进行定制。在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。

增加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 = ExampleGain*in;= gainSignal;

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

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

运行模拟并观察结果。

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

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

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

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

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

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

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

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

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

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

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

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

实现增益

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

CustomExampleParameter.ExampleGain;

:

LocalImpulse = LocalImpulse * CustomExampleParameter.ExampleGain;

自定义用户代码区应该如下所示:

保存更改。

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

运行增益设置模拟

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

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

改变增益设置并观察变化

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

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

这些步骤向您展示了如何实现AMI参数ExampleGain使用内置块自定义PassThrough块。方法也可以实现AMI参数MATLAB如“将PassThrough更改为MATLAB函数块”小节所述。

另请参阅

||

相关的话题

Baidu
map