AMD Versal自适应SoC GTM如何用XSIM仿真和观察PAM4信号

描述

本文作者:AMD 工程师 Cheng Zhang

PAM4(4-Level Pulse Amplitude Modulation) 的全称是四电平脉冲幅度调制,通过种不同的电平进行信号传输,每个电平幅度分别对应 00、01、10 和11。每个周期可以传输两个 Bit 的信息,相比传统的 NRZ 模式,信号传输速率相当于原来的两倍,当前主流的 400G 光模块广泛采用 PAM4 技术。AMD Versal 自适应 SoC 的 GTM 支持 PAM4 电平,本文将介绍如何使用 GTM 仿真和观察 PAM4 信号。

新建 GTM Example Design:

1. 点击 AMD Vivado Design Tool 左侧导航栏 Create Block Design 新建 BD 文件。

2. 在 BD 的空白处右击,选择 Add IP,在弹出的对话框种选择 Versal ACAPs Transceivers Wizard。

3. 配置 Transceiver Wizard。

Transceiver Type 选择 GTM。

Transceiver Configs Protocol 页面可以选择多种 Preset 的模板,这里选择 GTM:(PAM4) Ethernet 53G,其余保持默认。

仿真

4. 右击 IP 选择 Open IP Example Design。

运行行为仿真

1. 在 Settings 页面的 Simulation 菜单中加入命令 -d SIM_SPEED_UP 可加速仿真结束的时间,如下图所示:

仿真

2. 单击 Run Simulation 进入到仿真界面,并且全速运行直到仿真结束。

TestBench 代码分析

1. 进入到仿真界面以后,首先会看到 GT_Serial_TX_rxp/n 和 GT_Serial_RX_rxp/n 都处于高阻(High-Z)状态,这是因为外部的端口信号只支持 0 和 1 两种状态,而 PAM4 信号有 0,1,2,3 四种状态,端口上无法显示出 4 种电平状态所导致。

仿真

2. 为了解决这个问题,需要把端口等效成 Integer。以 GTM Ch0 为例,在 Testbench 里面定义了两个 Integer 类型的信号名:gtm_ch0_p/n。

3. Testbench 中通过以下方式对信号赋值:

仿真

通过这个路径可以看到,在 GTM 的 Quad 中已经对 TXP/N 定义了一个 Integer,通过 Force 的方式直接把 Integer 赋值到 gtm_ch0_p/n,再赋值给底层 GTM 的 CH0_GTMRXP/N_integer,从而模拟外部回环。

4. 因此,需要在 Watch 窗口中观察 gtm_ch0_p/n 或者底层的 CH0_GTMTXP/N_integer 和 CH0_GTMRXP/N_integer。

5. 对信号名右击,在弹出的 Waveform Style 中选择 Analog,然后在 Analog Settings 中把 Interpolation Style 设置为 Hold。这样就可以更加直观的查看 PAM4 信号的变化。

仿真

6. 当 Versal GTM 模式设置为 NRZ 时,也需要同样观察相关的 Integer 信号。

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分