主要内容

基于COM的ADC IBIS-AMI模型

本示例展示如何使用SerDes Toolbox™库中的库块和自定义块创建基于IEEE 802.3ck规范ADC的发射机和接收机IBIS-AMI模型来建模与时间无关的ADC。生成的模型符合IBIS-AMI标准。虚拟采样节点存在于基于切片器的SerDes系统中,但不存在于基于adc的SerDes系统中,仿真允许在Simulink®和IBIS-AMI模拟器中生成虚拟眼图,用于评估通道。金宝app

SerDes IBIS-AMI模型建立使用MATLAB脚本

本例使用MATLAB®脚本首先构造一个SerDes系统,表示ADC架构的发射器和接收器,然后导出到SerDes Simulink模型。金宝app在MATLAB命令窗口中输入这个命令来运行脚本:

buildSerDesADC

SerDes System在导出到Simulink之前需要配置以下属性。金宝app注意,自定义块将作为传递,直到应用后面示例中讨论的Simulink自定义。金宝app

配置设置

  • 符号时间设置为18.8235ps,因为允许的最大802.3ck运行数据速率为106.25Gb/s。

  • 系统设置为1e-4。

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

  • 调制设置为PAM4。

  • 信号设置为差动。

发射机模型设置

  • Tx FFE块设置为3个预轻拍和1个后轻拍,包括5个轻拍重量。

  • Tx VGA块用于控制发射振幅。

  • Tx AnalogOut模型是这样设置的电压是1 v,上升时间6.161 ps,R(输出电阻)为50欧姆,和C(电容)按照802.3ck规范为5fF。

渠道模型建立

  • 频道损失设置为15dB。

  • 目标频率设置为奈奎斯特频率。

  • 差分阻抗保持默认为100欧姆。

接收机模型设置

  • Rx AnalogIn模型是这样建立的R(输入电阻)为50欧姆C(电容)根据802.3ck规范为5ff。

  • 噪声自定义块注入高斯噪声时域波形。

  • 分别为7、21和1个配置设置了3个Rx CTLE块级联。的GPZ(增益极点零)矩阵数据的每一个都是从802.3ck行为CTLE规范中给出的传递函数派生出来的。

  • Rx VGA自定义块应用自适应增益。

  • 饱和放大器块应用无记忆非线性。

  • ADC自定义块量化时域信号。

  • Rx FFE自定义有21个轻敲(3个前置和17个后游标轻敲),它们的权重将在Rx全局适应期间自动计算。

  • Rx DFECDR块为一个DFE水龙头设置。DFE抽头被限制为+/- 0.5V振幅。

基于adc的SerDes Tx/Rx IBIS-AMI模型的Simulink建立金宝app

本例的第二部分采用脚本导出的SerDes系统,并根据需要在Simulink中对基于adc的SerDes进行定制。金宝app

复习Simul金宝appink模型设置

导出到Simulink的SerDes System由Config金宝appuration、Stimulus、Tx、Analog Channel和Rx块组成。

tx_rx_top_level.png

推送到Tx子系统内部。

tx.png

推送到Rx子系统内部。

rx_v2.png

自定义基于adc的serde的模型

从SerDes App导出的模型首先需要定制,通过定制额外的Rx块和修改Rx Init块代码来表示一个基于adc的SerDes Rx。

配置输入参考Rx噪声块

Rx子系统中的噪声可以在输出或输入处建模。输入参考噪声源由后续的均衡阶段(CTLE & FFE)形成,因此更好地反映了噪声是如何由真实系统形成的。另一方面,输出参考噪声是不成形的,并且没有捕获如何改变CTLE和FFE上的设置影响噪声。

rx_noise_so_select_v2.png

  • 在系统对象掩码中,使用系统变量配置“符号时间”、“采样间隔”和“调制”。

rx_noise_mask.png

  • 在IBIS-AMI管理器中为噪声块创建一个IBIS-AMI参数NoisePSD使用图片属性。8.2e-9的值来自COM标准。看到管理AMI参数

rx_noise_ami_parameter_v2.png

  • 将生成的常量块连接到噪声输入端口。

rx_noise_so_hookup_v3.png

配置VGA块

  • 下降到名为VGA的直通块。

  • 将现有的系统对象指向serdes。包含在SerDes工具箱中的VGA系统对象。

  • 在系统对象掩码中,关闭模式端口以强制块处于打开状态。

rx_vga_mask.png

  • 在IBIS-AMI管理器中为命名的VGA块创建IBIS-AMI参数获得使用图片属性。

rx_vga_ami_parameter_v2.png

  • 将生成的数据存储读连接到增益输入端口。删除数据存储写,因为该值只在Init中更新,而不是在时域中更新,将不再使用。

rx_vga_so_hookup.png

VGA适应

VGA自适应是直接的,所需的增益在Init中计算为目标脉冲幅度与输入脉冲响应的最大峰值的比值。然而,对于不同的CTLE设置,所需的VGA增益可能不同,因此需要在前面描述的通用算法的每次迭代中评估VGA增益。

配置ADC块

所使用的ADC模型是一个时间不可知的ADC,这意味着模拟中的每个点都是量化的,而不仅仅是在采样瞬间。然而,DFE和时钟恢复仍然只使用采样瞬间的ADC样本。与时间无关的ADC允许生成在DFE求和节点上看到的等效波形:允许构造具有代表性高度和宽度的信号眼图。

  • 下降到名为ADC的直通块

  • 将现有的系统对象指向ADC。M系统对象的示例目录。

  • 在系统对象掩码中,使用系统变量配置“符号时间”、“采样间隔”和“调制”。

rx_adc.png

配置Rx FFE

  • 下降到名为Rx_FFE的直通块

  • 将现有的系统对象指向serdes。SerDes工具箱中包含的FFE系统对象。

  • 在系统对象掩码的主选项卡中,关闭模式端口并关闭正常化开关。在“高级”页签中,使用系统变量配置“符号时间”和“采样间隔”。

rx_ffe_mask.png

  • 在IBIS-AMI Manager中为Rx_FFE块创建一个点击结构,其中包含3个前置光标点击、17个后光标点击和图片属性。

[0 (1,3) 1 0 (1,17)]

rx_ffe_ami_parameter_v2.png

  • 将生成的数据存储读取连接到“轻敲权重”输入端口。数据存储写操作将不再使用,请删除。

rx_ffe_so_hookup.png

企业适应

Rx FFE操作ADC采样数据,而不是连续波形。然而,在统计自适应过程中,假设所有波形点,甚至在数据样本之间,都是可用的。Rx FFE只适用于自定义用户Init代码;适应性由提供的adaptFFE函数辅助。Rx FFE自适应的目标是在给定输入脉冲响应的情况下驱动输出脉冲响应,以便将前后游标数据样本驱动为零。这并不意味着除了在游标点之外,脉冲响应将为零。相反,就像同步波形一样,ISI仅在数据采样点被驱动为零。

由于Rx FFE对采样数据进行操作,在adaptFFE中,自适应过程的第一步是假设输入脉冲响应的数据采样阶段。所使用的方法是贪婪的,假设我们可以强制采样,以便游标落在传入脉冲响应的峰值上。

由于在Rx子系统中,Rx FFE后面是一个1-tap DFE, Rx FFE不需要对第一个post光标施加零力。相反,Rx FFE需要确保第一个后游标落在1-tap DFE的均衡范围内。注意,如果不使用后Rx DFE,那么目标将是零强制所有游标前和游标后ISI。

给定现在采样的输入脉冲响应,目标是找到一个过滤器响应,将游标前和游标后数据样本驱动为零,或者在第一个游标后样本的情况下驱动到DFE的范围。这个优化问题与求解一组线性方程密切相关,我们需要找到一个矩阵逆。这个需要反转的矩阵是由圆位移输入采样脉冲响应组成的矩阵。然后,这个反向矩阵乘以所需的输出目标脉冲响应:对于3点前导Rx FFE, [0,0,0,1, bmax, 0,0…],其中1表示游标位置,bmax表示DFE的最大范围。所需的Rx FFE FIR滤波器系数是反向的、圆位移的输入脉冲响应矩阵和所需的输出脉冲响应的乘积。

DFECDR适应

DFECDR适应遵循Rx FFE适应。DFECDR是SerDes工具箱中的标准块,请参考DFECDR块的在线文档。

本例使用Alexander (bang-bang)相位检波器,而不是通常用于基于adc的SerDes系统的波特率相位检波器。这种建模选择简化了示例,因为波特率相位检波器将与自适应收敛相互作用。基于adc的SerDes系统需要解决话单锁点与Rx FFE和DFE适配之间的交互问题。

自定义Rx子系统初始化代码块

在本例中,Rx子系统自适应是在统计领域执行的:涉及CTLE、FFE和DFE的共同自适应,以实现给定所使用的信道和Tx FFE设置的最佳可能的误码率。CTLE和FFE的优化设置将在时域模拟期间保持固定,而DFE和CDR将在时域模拟期间继续适应。

refresh_init_v2.png

使用示例中提供的代码修改Init的自定义用户代码区域。看到使用脉冲响应度量全局调整接收机组件以提高SerDes性能

  • 单击Init掩码对话框上的Refresh Init,根据前面的步骤更新代码。

  • 单击Init掩码对话框上的Show Init打开Init代码。

  • 将代码复制进去adcInitCustomUserCode.m在示例目录中。

编辑adcInitCustomUserCode.m
  • 将复制的代码粘贴在自定义用户代码区域结束之前。确保保留自定义用户区域顶部的AMI参数。不要修改超出自定义用户区域结尾的代码。

custom_user_code_v3.png

统计自适应算法

统计自适应算法处理脉冲响应通过每个Rx子系统块,并测量产生的脉冲响应的优点。由于这是一个基于adc的系统,所使用的性能值是信噪比(SNR),其中噪声项还包括游标前和游标后的剩余ISI。

一般来说,统计Rx自适应过程如下:

  • 选择初始CTLE设置

  • 选择VGA设置,使脉冲振幅落在目标范围内

  • Rx FFE自动调整,以使数据样本点的ISI最小化。

  • DFE适用于去除游标后ISI。

  • 计算了数据采样点的信噪比。

  • 对于每个可能的CTLE设置重复上述步骤,跟踪每个设置的信噪比值。选择信噪比最高的设置作为全局适应点。

运行Simuli金宝appnk模型

  • 访问刺激方块蒙版对话框,将符号数量更改为4000。

  • 访问IBIS-AMI Manager的导出选项卡,并将Rx忽略位更新为2000。这和之前的修改将确保时域自适应有足够的时间收敛。大量的符号和忽略时间将产生更现实的结果。

  • 运行该模型模拟基于adc的SerDes系统。

sim_eye_v2.png

sim_results_v3.png

更新ADC量化

在本例中,ADC量化默认设置为6b。尝试将ADC量化降低,观察降低ADC精度对时域眼形的影响。

生成基于adc的SerDes IBIS-AMI模型

本例的最后一部分采用定制的基于adc的SerDes Simulink模型,然后生成一个IBIS-AMI兼容的模型:包括模型可执行文件、IB金宝appIS和AMI文件。

当前IBIS AMI标准不支持基于adc的SerDes。金宝app目前的标准是为基于切片器的SerDes编写的,其中包含一个信号节点,其中可以观察到均衡的信号波形。在基于切片器的SerDes中,这个节点存在于DFE内部,就在决策采样器之前。在该节点上可以观察到连续的模拟波形,其中包括所有上游均衡器(如CTLE)和由于DFE而产生的均衡器的效果,作为轻按加权和反馈先前的决策。基于ADC的SerDes中不存在这样的求和节点,因为系统中有ADC。在实际的基于ADC的SerDes系统中,ADC在采样瞬间通过眼睛进行垂直切片。为了模拟虚拟节点,使用了一个时间不可知的ADC。该ADC以模拟时间步速率量化传入模拟波形中的每个点:即1/fB/SPS,其中SPS是每个符号的采样数,而fB是波特率。Rx FFE还将输入信号作为连续波形处理,而不是作为样本处理。然而,Rx FFE对sps模拟时间步长应用单个敲击值。 The DFE is the stock DFE from the SerDes Toolbox and is written for slicer based SerDes. This signal chain allows for the signal integrity simulator to be able to observe a virtual eye in an ADC-based system.

导出IBIS-AMI模型

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

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

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

  • 设置Rx模型忽略值的位到20,000,以便在时域模拟期间有足够的时间让Rx DFE丝锥稳定下来。

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

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

另请参阅

||||

相关的话题

外部网站