主要内容

PCIe5发射器/接收器IBIS-AMI型号

这个例子展示了如何使用SerDes工具箱中的库块创建通用的PCIe第5代(PCIe Gen5)发射器和接收器IBIS-AMI模型。本例生成的IBIS-AMI模型符合PCIe - sig发布的PCIe Gen5 Base-Specification。

在SerDes设计应用程序中的PCIe Gen5 Tx/Rx IBIS-AMI模型设置

本示例的第一部分使用SerDes Designer应用程序中PCIe Gen5所需的块设置目标发射器和接收器AMI模型体系结构。然后将模型导出到Simulink®以供进一步定制。万博1manbetx

本例使用SerDes Designer模型pcie5_ibis-ami.在MATLAB®命令窗口中输入以下命令打开模型:

> > serdesDesigner(“pcie5_ibis-ami”);

配置设置

  • 符号时间设置为31.25由于最大允许的PCIe Gen5数据速率为32 GT/s,奈奎斯特频率为16GHz。

  • 系统设置为1 e-12

  • 每个符号的样本设置为32。

  • 调制设置为NRZ(不归零)。

  • 信号设置为Differential

发射机模型设置

  • Tx FFE块设置为一个预轻拍,一个主轻拍和一个后轻拍,包括三个轻拍重量[0 10 0].当模型导出到Simulink时,可以在后面的示例中配置特定的点击预设。万博1manbetx

  • Tx AnalogOut模型是这样设置的电压1V,上升时间12ps,R(输出电阻)为50欧姆(表8-10注3)、欧姆C(电容)0.5pF根据PCIe Gen5规范。

渠道模型建立

  • 频道损失设置为24dB (37dB是基本通道加CEM卡的最大损耗)。

  • 差分阻抗设置为85欧姆(参见PCIe Gen5 Base Spec,章节8.4.1.2,图8-28和8-29)。

  • 目标频率设置为32GT/s数据速率的奈奎斯特频率,即16GHz。

接收机模型设置

  • Rx AnalogIn模型是这样建立的R(输入电阻)为50欧姆(表8-10注3)、欧姆C(电容)0.5pF根据PCIe Gen5规范。

  • 有一个Rx CTLE块,它的FilterMethod设置为“级联”,因为PCIe Gen5指定重复极-否则重复极将需要单独的CTLE块。Rx CTLE设置为11个配置(0到10)和相关的GPZ矩阵匹配PCIe Gen5基础规范(公式8-7)中给出的极点和零点。

  • Rx DFE/CDR块设置为三个DFE点。每个丝锥的限制已经根据PCIe Gen5规范单独定义+ / -80 mV为tap 1,+ / -20 mV为tap 2,和+ / -20 mV为轻按3。

图统计眼图和误码率

您可以在SerDes Designer中使用各种图形类型来可视化PCIe Gen5系统的输出和性能。您可以通过设置Rx CTLE来确认其功能正常模式固定并设置配置11.选择的误码率从工具条中的“添加图表”菜单中添加图表,并观察统计眼图与误码率一起显示。

注意:这里显示的统计眼图和误码率表示一个包含所有的配置抖动参数禁用。

更改Rx CTLEConfigSelect到3,观察图的变化为闭眼图:

在继续之前,更改Rx CTLE模式适应.为RX CTLE重置此值将避免在模型导出到Simulink后再次设置它。万博1manbetx在生成IBIS-AMI模型时,此配置将成为默认配置。

发射机和接收机的抖动设置

您可以单击工具条上的Tx/Rx抖动按钮来查看抖动参数选项卡。此时,您还可以添加报告从工具条中的“添加绘图”菜单中的选项卡。的报告选项卡将使您能够观察统计眼图和误码率图在启用或禁用中的各种抖动类型时的变化情况抖动参数选项卡。

的复选框,可以启用将哪些抖动参数导出到Simulink万博1manbetxTx_DCDTx_RjTx_Djx_DCDRx_Rj,Rx_Dj.如果它们被禁用,它们将不会被导出,但是您也可以使用IBIS-AMI管理器在Simulink中添加抖动参数。万博1manbetx

Tx抖动参数

您可以通过参考PCIe Gen5 Base规格表8-6来验证Jitter参数是否设置正确。数据速率相关的发射机参数。

注意:这些参数将导出为“Float”类型,格式为“Value”。导出到Simulink后,您可以使用I万博1manbetxBIS-AMI管理器将这些更改为“范围”格式。

Tx DCD抖动值(Ttx-upw-tj参见PCIe Gen5 Base Spec中的表8-6)

  • 确认值为6.25 e-12(注:这是每个规格允许的最大值)。

  • 确认单位设置为秒。

  • 启用Tx_DCD。

Tx Rj抖动值(Ttx-rj表8-6)

  • 确认值为0.45 e-12(注:这是每个规格允许的最大值)。

  • 确认单位设置为秒。

  • 启用Tx_Rj。

Tx Dj抖动值(Ttx-upw-djdd表8-6)

  • 确认值为2.5 e-12(注:这是每个规格允许的最大值)。

  • 确认单位设置为秒。

  • 启用Tx_Dj

Rx抖动参数和启用导出到Simulink万博1manbetx

Rx DCD抖动值

  • 确认值为0.

  • 确认单位设置为秒。

  • 启用Rx_DCD。

Rx Rj抖动值(Trx-st-rj表8-9)

  • 确认值为0.5 e-12 到秒(注意:这是每种规格允许的最大值)。

  • 确认单位设置为秒。

  • 启用Rx_DCD。

Rx Dj抖动值

  • 确认值为0.

  • 确认单位设置为秒。

  • 启用Rx_Dj。

您可以观察到统计眼和误码率图几乎是闭合的,但这是预期的。规范中的抖动参数是允许的最大值,在实际系统中不期望它们同时达到最大值。启用这些抖动参数的原因是,当导出到Simulink时,它们会自动包含在SerDes系统中。万博1manbetx稍后,您将看到如何将这些更改为范围,并将每个设置为0作为默认值。

注意: 导出到Simulink后,您还可以使用万博1manbetxIBIS-AMI管理器编辑它们的类型、用法、格式和值。

导出SerDes系统到Simulink万博1manbetx

点击出口按钮,将上述配置导出到Simulink,以便进一步定制和生成IBIS-AMI模型文件。万博1manbetx

在Simulink中建立PCIe Gen5 Tx/Rx IBIS-AMI模型万博1manbetx

本例的第二部分采用SerDes Designer应用程序导出的SerDes系统,并根据需要在Simulink中对PCIe Gen5进行定制。万博1manbetx

复习Simul万博1manbetxink模型设置

导入Simulink的SerDes System由Configu万博1manbetxration、Stimulus、Tx、Analog Channel和Rx块组成。SerDes Designer应用程序中的所有设置都已转移到Simulink模型。万博1manbetx保存模型并检查每个块的设置。

  • 您可以通过双击Configuration块和Analog Channel块来确认从SerDes Designer应用程序中携带的设置。然后打开“块参数”对话框,检查它们的值。

  • 双击刺激块打开块参数对话框。您可以设置伪随机位序列(伪随机二进制序列)的顺序和符号的数量来模拟。这个块不是从SerDes Designer应用程序转移过来的。

  • 您可以双击Tx块和Rx块来查看它们的每个子系统,这些子系统都是从SerDes Designer应用程序继承的。

设置忽略位

运行模拟之前,请打开IBIS-AMI经理.您可以将Tx的忽略位设置为3,因为FFE有3个开关。将Rx的位设置为忽略1000,因此DFECDR能在时域模拟时收敛。

更新Tx抖动参数

您可以通过单击AMI - Tx选项卡,选择将抖动参数的格式更改为“范围”Tx_DCD并按下编辑按钮。

以下范围允许您微调抖动值,以满足PCIe Gen5抖动掩码要求。如表8-6所示。数据速率相关的发射机参数PCIe Gen5 Base规范。

设置Tx DCD抖动值(Ttx-upw-tj,参见表8-6)

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

  • 验证类型浮动

  • 改变格式范围

  • 设置当前值0

  • 设置Typ价值0

  • 设置最小值价值0

  • 设置马克斯价值6.25 e-12。

  • 点击好吧以保存更改。

设置Tx Rj抖动值(Ttx-rj参见表8-6)

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

  • 遵循以下步骤Tx_DCD,以上。

  • 设置马克斯价值0.45 e-12。

  • 点击好吧以保存更改。

设置Tx Dj抖动值(Ttx-upw-djdd,参见表8-6)

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

  • 遵循以下步骤Tx_DCD,以上。

  • 设置马克斯价值2.5 e-12。

  • 点击好吧以保存更改。

更新接收机AMI参数

打开AMI-Rx选项卡中的“SerDes IBIS/AMI管理器”对话框。遵循典型AMI文件的格式,首先列出保留参数,然后是特定于模型的参数。

更新Rx抖动参数

选择Rx_DCDRx_Dj而且Rx_Rj并按照上面的步骤从Tx_DCD.以下范围允许您为自己的系统微调抖动值。

设置Rx DCD抖动值

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

  • 改变类型浮动

  • 改变格式范围

  • 设置当前值0

  • 设置Typ价值0

  • 设置最小值价值0

  • 设置马克斯价值0

  • 点击好吧以保存更改。

设置Rx Rj抖动值(Trx-st-rj参见表8-9)

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

  • 遵循以下步骤Rx_DCD

  • 设置马克斯价值0.5 e-12。

  • 点击好吧以保存更改。

设置Rx Dj抖动值

  • 选择Rx_Dj,然后按编辑……按钮,调出添加/编辑AMI参数对话框。

  • 遵循以下步骤Rx_DCD

  • 点击好吧以保存更改。

注意:您可以关闭IBIS AMI经理在下一节中,您可以重新访问此对话框,以便稍后导出IBIS-AMI模型。

在Simulink中运行SerDes系统模型万博1manbetx

运行模型来模拟SerDes系统。

生成了许多图,包括实时时域(GetWave)眼图,该图随着模型运行而更新。

第二个图包含统计(Init)结果和持久时域(GetWave)结果的视图,类似于SerDes Designer App中提供的视图。

审查Tx FFE块

  • 在Tx子系统中,双击FFE块以打开FFE块参数对话框。

  • 的当前值模式设置为固定

回顾Rx CTLE Block

  • 在Rx子系统中,双击CTLE块以打开块参数对话框。

  • 增益极点零数据来自SerDes Designer应用程序。该增益极零数据应用PCIe Gen5基本规范给出的行为CTLE的传递函数。

  • CTLE模式设置为适应,这意味着内置于CTLE系统对象中的优化算法在运行时选择最优配置。

回顾Rx DFECDR Block

  • 在Rx子系统中,双击DFECDR块以打开DFECDR块参数对话框。

  • 扩大IBIS-AMI参数以显示IBIS-AMI模型中包含的参数列表。

  • DFE点击值从SerDes Designer应用程序中转移过来。

生成PCIe Gen5 Tx/Rx IBIS-AMI模型

本例的最后一部分采用定制的Simulink模型,修改PCIe Gen5的AMI参数,然后生成IBIS-A万博1manbetxMI兼容的模型文件。

打开Configuration块的块参数对话框,单击打开SerDes IBIS/AMI管理器按钮。在宜必思选项卡内的SerDes IBIS/AMI管理器对话框,模拟模型值转换为标准IBIS参数,可用于任何行业标准模拟器。在AMI-Rx在SerDes IBIS/AMI管理器对话框中,首先列出保留参数,然后是典型AMI文件格式下的特定于模型的参数。

更新发射机AMI参数

打开AMI-Tx选项卡中的“SerDes IBIS/AMI管理器”对话框。遵循典型AMI文件的格式,首先列出保留参数,然后是特定于模型的参数。

Model_Specific参数,您可以通过创建新的AMI参数和在Init客户特定代码部分实现算法来设置TX FFE tap值,以选择PCIe Gen5预设值P0到P10。

当您直接指定预设系数时,您将更改这三个系数的格式TapWeights并为每个预设指定要使用的确切值。只有这11个定义的预设是允许的,所有三次点击都必须设置为相同的预设才能得到正确的值。

修改Init以选择预拍按钮、主按钮和减重按钮的预设

修改Tx子系统中的Init块中的Initialize MATLAB函数,以使用新添加的ConfigSelect参数。的ConfigSelect参数控制现有的三个发射机开关。为了实现这一点,添加一个switch语句,它接受的值为ConfigSelect并自动设置所有三个Tx水龙头的值,忽略用户为每个水龙头定义的值。如果一个ConfigSelect的价值-1则用户定义的Tx tap值将不加修改地传递给FFE数据路径块。

在Tx子系统中,双击Init块以打开块参数对话框,然后单击刷新Init按钮将新的AMI参数传播到Initialize子系统。

类型Ctrl-U在掩码下寻找Init块,然后双击initialize块打开initialize函数。

双击脉冲均衡化MATLAB函数块,在MATLAB中打开函数。这是一个自动生成的函数,它提供SerDes系统块(IBIS AMI-Init)的脉冲响应处理。的% %开始:而且%结束:行表示可以输入自定义用户代码的部分。当Refresh Init运行时,本节中的数据不会被覆盖:

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

FFEParameter.ConfigSelect;用户添加了AMI参数

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

要添加自定义ConfigSelect控件代码,向下滚动“客户用户代码”区域,注释掉FFEParameter。ConfigSelect行,然后输入以下代码:

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

% FFEParameter.ConfigSelect;用户添加了AMI参数

开关FFEParameter。ConfigSelect

情况下-1用户自定义轻拍重量

FFEInit。TapWeights = FFEParameter.TapWeights;

情况下0PCIe配置:P0

FFEInit。TapWeights = [0.000 0.750 -0.250];

情况下1PCIe配置:P1

FFEInit。TapWeights = [0.000 0.830 -0.167];

情况下2% PCIe配置:P2

FFEInit。TapWeights = [0.000 0.800 -0.200];

情况下3.% PCIe配置:P3

FFEInit。TapWeights = [0.000 0.875 -0.125];

情况下4% PCIe配置:P4

FFEInit。TapWeights = [0.000 1.000 0.000];

情况下5PCIe配置:P5 . %

FFEInit。TapWeights = [-0.100 0.900 0.000];

情况下6% PCIe配置:P6

FFEInit。TapWeights = [-0.125 0.875 0.000];

情况下7% PCIe配置:P7

FFEInit。TapWeights = [-0.100 0.700 -0.200];

情况下8% PCIe配置:P8

FFEInit。TapWeights = [-0.125 0.750 -0.125];

情况下9% PCIe配置:P9

FFEInit。TapWeights = [-0.166 0.834 0.000];

否则

FFEInit。TapWeights = FFEParameter.TapWeights;

结束

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

要测试新的FFE控制参数是否正常工作,请从Configuration块打开SerDes IBIS-AMI Manager对话框。在AMI-Tx选项卡,编辑ConfigSelect要设置的参数当前值P7.这对应于PCIe配置P7: Pre = -0.100, Main = 0.700和Post = -0.200。

修改GetWave以选择预拍轻拍、主轻拍和去强调轻拍的预设

要修改GetWave,请添加一个新的MATLAB函数,其操作方式与Initialize函数相同。

在Tx子系统中,键入Ctrl-U去看FFE区块的面具下。

您可以看到一个新的常量块被添加FFEParameter.ConfigSelect。这是在添加新的保留参数时由IBIS-AMI管理器自动创建的。接下来,您可以按照以下步骤重新配置时间域(GetWave)模拟的tap权重预设的选择:

  • 从Simulink/用户定义库向画布添加MATLAB函数块。万博1manbetx

  • 将MATLAB函数块重命名为PCIe5FFEconfig

  • 双击MATLAB函数块,将模板代码替换为如下代码:

% PCIe5点击配置选择器

%根据指定的PCIe5选择预定义的Tx FFE抽头权重

%的配置。

%的输入:

% TapWeightsIn:用户定义的浮点权重值。

0-9: PCIe4定义的配置(P0-P9)。

% -1:用户自定义配置(来自TapWeightsIn)。

%输出:

% TapWeightsOut:要使用的轻敲权重数组。

函数TapWeightsOut = PCIe5FFEconfig(TapWeightsIn, ConfigSelect)

开关ConfigSelect

情况下-1用户自定义轻拍重量

TapWeightsOut = TapWeightsIn;

情况下0PCIe配置:P0

TapWeightsOut = [0.000 0.750 -0.250];

情况下1PCIe配置:P1

TapWeightsOut = [0.000 0.833 -0.167];

情况下2% PCIe配置:P2

TapWeightsOut = [0.000 0.800 -0.200];

情况下3.% PCIe配置:P3

TapWeightsOut = [0.000 0.875 -0.125];

情况下4% PCIe配置:P4

TapWeightsOut = [0.000 1.000 0.000];

情况下5PCIe配置:P5 . %

TapWeightsOut = [-0.100 0.900 0.000];

情况下6% PCIe配置:P6

TapWeightsOut = [-0.125 0.875 0.000];

情况下7% PCIe配置:P7

TapWeightsOut = [-0.100 0.700 -0.200];

情况下8% PCIe配置:P8

TapWeightsOut = [-0.125 0.750 -0.125];

情况下9% PCIe配置:P9

TapWeightsOut = [-0.166 0.834 0.000];

否则

TapWeightsOut = TapWeightsIn;

结束

重新布线FFE子系统,以便FFETapWeights和FFEConfigSelect常量块连接到新定义的PCIe4FFEconfig MATLAB函数块的输入。来自PCIe4FFEconfig块的TapWeightsOut信号连接到TapWeightsFFE块的端口。

要测试新的FFE控制参数是否正常工作,请从Configuration块打开SerDes IBIS-AMI Manager对话框。在AMI-Tx选项卡,编辑ConfigSelect参数将“当前值”设置为P7.这对应于PCIe配置P7: Pre = -0.100, Main = 0.700和Post = -0.200。观察输出波形。

出口的模型

打开出口选项卡中的“SerDes IBIS/AMI管理器”对话框。

  • 验证Tx型号名称是pcie_g5_tx

  • 验证Rx型号名称是pcie_g5_rx

  • 注意Tx和Rx角百分比设置为10.这将按+/-10%的比例缩放模拟模型的最小/最大角值。

  • 验证二元模型Tx和Rx AMI模型设置都被选中。这将创建支持统计(Init)和时域(GetWave)分析的模型可执行文件。万博1manbetx

  • 设置Tx模型位忽略值3.因为Tx FFE有三个水龙头。

  • 设置Rx模型忽略值的位1000使Rx DFE丝锥在时域模拟过程中有足够的时间沉降。

  • 要导出的模型作为包括Tx和Rx以便选择所有要生成的文件(IBIS文件、AMI文件和DLL文件)。

  • 设置IBIS文件名成为pcie5ami。

  • 按下出口按钮在Target目录中生成模型。

测试生成的IBIS-AMI模型

PCIe Gen5发射器和接收器IBIS-AMI模型现已完成,可以在任何行业标准AMI模型模拟器中进行测试。

参考文献

[1]一种总线标准团体,https://pcisig.com

另请参阅

|||

相关的话题

外部网站