主要内容

管理AMI参数

此示例演示如何为使用SerDes工具箱构建的IBIS-AMI模型添加、删除、修改、重命名和隐藏AMI参数。这些AMI参数可用于现有数据路径块、用户创建的MATLAB功能块或优化控制回路,并可传递到SerDes工具箱创建的AMI模型可执行文件(DLL)或从中返回。

示例设置

这个例子将在Pass-through数据路径块旁边添加一个新的InOut参数'Count'。这个参数将计算通过AMI_Init的次数(应该是1),然后将结果传递给AMI_GetWave,在那里它将继续计算总的次数。虽然这对AMI模型开发可能不是特别有用的功能,但它将用于演示如何在模型生成期间添加和使用新的AMI参数。

检查模型

此示例以简单的接收器模型开头,仅使用传递块。

Open_System('serdes_add_param.slx'

该Simu金宝applink SerDes系统由Configuration、Stimulus、Tx、Analog Channel和Rx模块组成。

  • Tx子系统具有FFE数据路径块来建模AMI模型的时域部分,以及Init块来建模统计部分。本例中不使用Tx子系统。

  • 模拟通道块有目标频率、损耗、阻抗和Tx/Rx模拟模型参数的参数值。

  • RX子系统具有传递DataPath块和Init块来模拟AMI模型的统计部分。

运行模型

在编辑之前,运行模型以验证基本配置是否按预期工作。生成了两个图。第一个是实时时域(GetWave)眼图,在模型运行时更新。

第二个图包含统计(Init)和时域(GetWave)模拟结果的视图。

如何添加一个新的参数

打开“配置”块的“块参数”对话框,然后单击打开Serdes Ibis-Ami Manager按钮,并选择Ami-Rx.选项卡。

1.突出显示PTDataPath块并按添加参数...

2.改变参数名称致:

3.验证当前值被设定为0(这将是我们计数的起点)。

4.在描述, 类型:迭代计数的起始值

有四个可能的值用法

  • 在里面:这些参数是必需的输入到AMI可执行文件。

  • 出去:这些参数从AMI_Init和/或AMI_GetWave函数输出,并返回到EDA工具。

  • 进出:这些参数是需要输入到AMI可执行文件,也可以从AMI_Init和/或AMI_GetWave返回值到EDA工具。

  • 信息:这些参数是用户和/或仿真工具的信息,模型不使用这些参数。

5.设置用法致:进出

有六个可能的参数类型

  • 浮动:浮点数。

  • 整数:没有小数或小数部分的整数。

  • 用户界面:单位间隔(数据速率频率的倒数)。

  • 轻敲:用于Tx FFE和Rx DFE延迟线的浮点数。

  • 布尔基:True和False值,不带引号。

  • 字符串:用引号括起来的ASCII字符序列。

6.设置类型致:整数

有三个可能的参数格式

  • 价值:单个数据值。

  • 列表:一组离散值,用户可从中选择一个值。

  • 范围:用户可以选择最小值和最大值之间的任何值的连续范围。

7.设置总体安排致:价值

8.点击好啊要创建新参数,您将看到新块自动放置在画布上。

从初始化函数访问新形参

通过MATLAB函数块的impulse seequalization访问Initialize函数(用于统计分析)中的新参数。本例增加了一个InOut参数。在AMI_Init中使用新的InOut参数'Count':

1.在Rx子系统中,双击Init块以打开掩码。

2.按下按钮刷新Init按钮将新的AMI参数传播到初始化子系统。

3.点击好啊合上面具。

4.点击on the Init block again and type删除到行首要在Init掩码下查看,然后双击初始化块以打开初始化功能。

禁止等效化MATLAB功能块是自动生成的函数,其提供SERDES系统块(IBIS-AMI INIT)的脉冲响应处理。

注意,新的Count参数已被自动添加为这个MATLAB函数的输出,作为数据存储写块。不需要数据存储读,因为输入参数是作为PTSignal Simulink.Parameter传入的。金宝app

5.双击禁止稳定化MATLAB功能块在MATLAB中打开函数。函数块中的'%% BEGIN:'和'% END:'行表示可输入自定义用户代码的部分。当执行Refresh Init时,本节中的数据不会被覆盖:

%%开始:自定义用户代码区域(按下“刷新初始化”按钮时保留)
%结束:自定义用户代码区域(按下“刷新init”按钮时保留)

什么时候刷新Init,它将我们的新参数添加到自定义用户代码区域,以便它可以在需要时使用:

%%开始:自定义用户代码区域(按下“刷新初始化”按钮时保留)ptcount = ptparameter.count;%用户从Serdes Ibis-Ami Manager中添加了AMI参数%结束:自定义用户代码区域(按下“刷新init”按钮时保留)

6.要添加自定义代码,向下滚动到自定义用户代码部分,然后输入PTCount=PTCount+1;自定义用户代码部分应该如下所示:

%%开始:自定义用户代码区域(按下“刷新初始化”按钮时保留)ptcount = ptparameter.count;%用户从Serdes Ibis-Ami Manager中添加了AMI参数PTCount=PTCount+1;%计算遍历该函数的每次迭代次数。%结束:自定义用户代码区域(按下“刷新init”按钮时保留)

7.保存更新后的MATLAB函数,然后运行Simulink项目来测试新代码。使用模拟数据检查器,验证金宝appInit之后的Count值现在是否为“1”。

注意,Count的最终值被写入PTSignal数据存储,因此现在在AMI_GetWave中可用。

初始化中使用如何影响参数

根据使用的选择,参数显示在自定义用户代码区域的脉冲均等MATLAB函数块的不同方式:

信息参数

信息参数是用户或模拟工具的信息,不会传递给模型或由模型使用,因此它们不会在初始化代码中显示。

在参数中

参数中有Simulink。参数对象显金宝app示为常量,可根据需要使用。例如,添加到VGA块的名为“InParam”的In参数将显示如下:

VGAParameter.InParam;%用户从Serdes Ibis-Ami Manager中添加了AMI参数

输出参数

out参数是simulink.sign金宝appal对象,其显示为具有初始值的IBIS-AMI管理器中定义的初始值。例如,名为“outparam”的Out参数,该参数被添加到VGA块,其当前值为“2”将显示如下:

VGAOutParam = 2;%用户从Serdes Ibis-Ami Manager中添加了AMI参数

输出参数使用数据存储写入块来存储从Init传递到EDA工具的值(通过AMI_参数_out字符串)以及在GetWave中使用的值(如果需要)。在上述示例中,名为“OutParam”的数据存储写入块自动添加到初始化函数中:

输入输出参数

InOut参数使用Simulink.Parameter对金宝app象和Simulink.Signal对象。例如,将添加到VGA块的“InoutParam”的InOut参数将显示如下:

vgainoutparam = vgaparameter.inoutparam;%用户从Serdes Ibis-Ami Manager中添加了AMI参数

输入值通过Simulink.Parameter引用VGAParameter.InO金宝apputParam访问,而输出值使用数据存储写入块存储值。在上面的示例中,名为“InOutParam”的数据存储写入块自动添加到初始化函数中,用于将值从Init传递到EDA工具(通过AMI_参数_Out字符串)并在GetWave中使用(如果需要):

从GetWave函数访问新参数

新参数将自动创建为类型为常量、数据存储读或数据存储写的块,并添加到数据路径块的画布中。本例增加了一个InOut参数。在GetWave中使用新的InOut参数'Count':

1.在Rx子系统中,单击Pass-Through数据路径块并键入删除到行首在通过掩码下看。

2.添加一个Si金宝appmulink/Math Operations总和块到画布。

3.添加Simul金宝appink/源常数块到画布并将值设置为1

4.连接每个元素,这样Pass Through块现在看起来像下面这样:

7.保存,然后运行Simulink项目来测金宝app试新代码。

通过在Sum块的输出端口添加Value Labels,可以看到GetWave之后Count的值是3.2e+04(每个符号的样本*符号的数量)。在生成AMI模型可执行文件之后,Count的值将在AMI模拟器的Parameters out字符串中可用。

用法如何影响GetWave中的参数

从GetWave函数以不同的方式访问新参数,这取决于所选择的Usage。

信息参数

信息参数为用户或仿真工具提供信息,模型不能使用。

在参数中

在参数是Simulink。金宝app通过添加常量块使用的参数对象。例如,一个名为“InParam”的In参数被添加到Rx VGA块中,可以被任何Rx块通过添加一个常量块访问,就像这样:

有关更多信息,请参阅自定义SerDes工具箱数据路径控制信号

输出参数

out参数是simulink.sign金宝appal对象,它使用数据存储写块存储要将GetWave的值存储到EDA工具(通过AMI_Parameters_out字符串)或其他RX块。例如,可以将添加到Rx VGA块的“outparam”的OUT参数写入如下所示的数据存储写块:

输入输出参数

InOut参数使用Simulink.Parameter对金宝app象和Simulink.Signal对象。可以使用常量块或数据存储读取块访问输入值,而输出值使用数据存储写入块存储用于将GetWave输出到EDA工具(通过AMI_参数_输出字符串)或其他Rx块的值。例如,如果将名为“InOutParam”的InOut参数添加到Rx VGA块,则任何Rx块都可以通过添加如下常量块来访问初始输入值:

或者,可以使用如下数据存储读取块访问更新的输入值:

输出值可通过数据存储写入块写入,如下所示:

如何重命名参数

可以修改或隐藏SERDES工具箱内置系统对象的参数,但无法重命名。

用户生成的AMI参数重命名如下。

更新AMI参数

1.打开“配置”块的“块参数”对话框,然后单击打开Serdes Ibis-Ami Manager按钮

2.去ami-tx.Ami-Rx.参数所在的选项卡。

3.突出显示要重命名的参数并按编辑……

4.在“参数名称”字段中,根据需要更改名称。

5.点击好啊,然后您将在画布上看到自动重命名的新参数。

更新init.

1.推入使用参数的Tx或Rx子系统块。

2.双击Init块以打开遮罩。

3.按下刷新Init按钮将AMI参数名称更改传播到初始化子系统。

4.点击好啊合上面具。

5.再次单击Init块并输入删除到行首要在Init掩码下查看,然后双击初始化块以打开初始化功能。

6.双击禁止稳定化MATLAB功能块在MATLAB中打开函数。

7.向下滚动至标题为:

%%开始:自定义用户代码区域(按下“刷新初始化”按钮时保留)

8.可以确认该参数的所有实例都已重命名。

9.保存并关闭MATLAB函数块。

更新GetWave

推入使用重命名参数的每个数据路径块,并重命名参数的每个实例。

验证结果

运行模拟以验证项目仍然在没有错误或警告的情况下运行。

如何删除参数

SerDes工具箱内置系统对象使用的参数可以修改或隐藏,但不能删除。

删除用户生成的AMI参数,如下所示。

更新AMI参数

1.打开“配置”块的“块参数”对话框,然后单击打开Serdes Ibis-Ami Manager按钮

2.去ami-tx.Ami-Rx.参数所在的选项卡。

3.选中需要删除的参数,按“”键删除参数

4.您将看到参数块自动从画布中删除。

更新init.

注意:自动删除自定义用户代码区域中的参数,因此您将通过以下步骤注释或删除它们:

1.推入使用参数的TX或RX子系统块。

2.双击Init块以打开遮罩。

3.按下刷新Init按钮以从初始化子系统中删除任何已删除的Out或InOut参数数据存储。

4.点击好啊合上面具。

5.再次单击Init块并输入删除到行首在init面具下看

6.双击initialize块以打开initialize函数。

7.双击禁止稳定化MATLAB功能块在MATLAB中打开函数。

8.向下滚动至标题为:

%%开始:自定义用户代码区域(按下“刷新初始化”按钮时保留)

9.删除或注释掉已删除参数的所有实例。

10.保存并关闭MATLAB函数块。

更新GetWave

推入使用了已删除参数的每个数据路径块,并删除该参数的每个实例。

验证结果

运行模拟以验证项目仍然在没有错误或警告的情况下运行。

如何隐藏参数

有时,模型功能需要参数,但需要对用户隐藏参数。例如,为了防止用户更改FFE模式,可以编辑FFE模式参数并选中“Hidden”复选框。

这将防止此参数存在于.ami文件中 - 有效地将参数与其默认值进行了硬化。换句话说,FFE模式参数仍然存在于代码中,以便FFE继续按预期工作,但用户不再更改该值。

从Init和GetWave中隐藏参数:

1.双击DataPath块打开面具。

2.扩大IBIS-AMI参数显示要包含在IBIS-AMI模型中的参数列表。

3.取消选择要隐藏的参数。

关于隐藏参数,请记住以下几点:

  • 隐藏参数时,请验证当前参数值是否正确。当前值将始终用作该参数的默认值。

  • 隐藏参数对模型可执行文件没有影响。它只会从生成的.ami文件中删除参数。

  • 如果隐藏参数的类型是Out或InOut,它仍然会显示在模型可执行文件的AMI_Parameters_Out字符串中。

如何修改参数

SERDES工具箱中使用的所有参数通过使用SERDES IBIS-AMI Manager对话框进行修改编辑……按钮但是,可以修改的参数值因参数类型而异。

对于内置的System Objects,只有以下字段可以修改:

  • 当前值

  • 描述

  • 总体安排

  • 违约

  • 列表值(格式列表)

  • 典型值/最小值/最大值(用于格式范围)

对于用户定义的参数,可以修改所有字段。

为抖动,模拟缓冲区建模和数据管理添加保留参数

预留的AMI参数包括:

  • 抖动和噪声参数,如Tx_Rj, Tx_Dj, Tx_DCD, Rx_Rj, Rx_Dj, Rx_DCD, Rx_GausianNoise等

  • 模拟缓冲区建模参数,如ts4file,tx_v和rx_r

  • 使用DLL\u ID进行数据管理

这些是符合IBIS-AMI的模拟器用来相应地修改模拟结果的后处理参数。属性通过SerDes IBIS-AMI管理器对话框添加这些参数保留参数…按钮ami-tx.Ami-Rx.选项卡。

注意:保留参数AMI_Version如果在IBIS-AMI管理器中启用了任何IBIS 7.0保留参数,将自动更改为7.0。

例如,要将Rx_Receiver_Sensitivity和Rx_Dj添加到receiver .ami文件中,单击保留参数…按钮打开Rx添加/删除抖动和噪声对话框,选择rx_receiver_sensitivity.Rx_Dj框,然后单击好啊将这些参数添加到Rx AMI文件的保留参数部分。

要设置这两个新参数的值:

  • 选择rx_receiver_sensitivity.,然后单击编辑……按钮打开“添加/编辑AMI参数”对话框。

  • 设置当前值0.04

  • 改变总体安排价值

  • 点击好啊保存更改。

  • 选择Rx_Dj,然后单击编辑……按钮,弹出“添加/编辑AMI参数”对话框。

  • 设置当前值0

  • 改变类型用户界面

  • 改变总体安排范围

  • 设置Typ价值0.05

  • 设置最小值价值0

  • 设置马克斯价值0.1

  • 点击好啊保存更改。

如图所示,这两个参数将出现在.ami文件的保留_parameters部分中:

(Rx_Receiver_Sensitivity (Usage Info)(Type Float)(Value 0.04))

(Rx_Dj (Usage Info) (Type UI) (Range 0.05 0.0 0.01))

另一个例子,你可以用试金石文件(也称为SnP文件),用于定制发送器或接收器的模拟缓冲区建模。可以使用reserved参数启用该选项Ts4file在Ibis Ami经理。

当你点击出口按钮时,将出现一个对话框,您可以在其中为每个进程角模型选择s-参数文件以支持保留参数金宝appTs4file

有关IBIS保留参数的更多信息,请参阅IBIS规范。

参考

宜必思7.0规范

另请参阅

||

相关话题