开发者分享|AMD Versal™ 自适应 SoC GTM 如何用 XSIM 仿真和观察 PAM4 信号

科技   2024-11-14 19:01   中国香港  


本文作者: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 信号。



AMD 自适应 SOC 及 FPGA 中文技术支持社区

欢迎您访问本社区论坛:

[https://support.xilinx.com/s/?language=zh_CN]

我们希望能帮助您快速找到所需内容。本网站是AMD 自适应 SoC 及 FPGA 支持资源登录页面,其中包括我们的知识库、社区论坛以及指向更多内容的链接。搜索并探索您所选主题的内容,然后登录以查看更多支持选项。



XILINX开发者社区
Xilinx开发者社区源于社区,服务社区,是面向广大开发者与产学研合作的平台,以技术为驱动,创建共享知识社区。(注: Xilinx is now a part of AMD)
 最新文章