本文作者:AMD工程师
Jigyasa Panchal 和Vatsal Tripathi
在本博客中,我们将介绍如何使用Aurora 6466b 协议将AMD UltraScale+ FPGA 与AMD Versal Adaptive SoC 连接起来。我们还将介绍有关IP 配置、FPGA 之间的连接、时钟设置和复位拓扑的详细信息。
Aurora 64B/66B 是一种用于多千兆位链路的轻量级串行通信协议。它使用一个或多个GTX、GTH、GTY 或GTM 收发器在设备之间传输数据。您可以使用全双工(双向数据)连接或单工(任一方向数据)连接。本博客重点介绍两种器件双工配置中的互连操作:使用GTY 连接到Versal Adaptive SoC 的GTM 的UltraScale+ FPGA。
该博客涵盖以下内容:
1. VCU118和VMK180的设计实例
2.IP配置
3. 综合、实现和比特流生成
4. 复位顺序
5. FPGA之间的连接
这里使用的两个FPGA 是AMD Virtex UltraScale+(VCU118 评估板)和Versal Prime(VMK180 评估板)。本次测试使用AMD Vivado 2024.2。用于测试的比特流包含在“相关”部分中。
在Aurora 6466b IP 自定义GUI 中,有两个选项卡:Core Options 和Shared Logic。在Core Options 选项卡中,您可以选择与以下配置相关的选项:通道宽度、线路速率、GT 参考时钟、INIT 时钟和DRP 时钟频率、数据流是否双工/只发送/只接收、接口是成帧还是流式传输以及调试选项。
在“共享逻辑”选项中,您需要选择“在核心中包含共享逻辑”或“在示例设计中包含共享逻辑”。
对于上面的示例设计,建议两个设备的线速和GT REFCLK保持一致,以保证两端连接稳定,这也是一个很好的做法。
1.VCU118和VMK180的设计实例
VCU118 的单通道示例设计
定制Aurora 核心。
请按照以下步骤自定义并生成单通道的Aurora 64b66b 核心:
启动Vivado 设计套件。
选择创建新项目并单击下一步。
选择项目名称和路径,然后单击“下一步”。
选择RTL 项目以允许运行示例设计并选中“此时不指定源”。单击“下一步”。
单击xcvu9p-flga2104-2L-e,或选择Boards 选项并单击Virtex UltraScale+ VCU118 评估平台(xcvu9p-flga2104-2L-e)
单击“下一步”,然后单击“完成”。
在Flow Navigator 面板中的Project Manager 下,选择IP 目录并搜索
极光64b66b。 Aurora 核心可以在通信网络串行接口下找到。
为VMK180 创建2 通道示例设计时,应遵循相同的步骤。
VMK180 的单通道示例设计
定制Aurora 核心。
按照以下步骤为单通道示例自定义并生成Aurora 64b66b 核心:
启动Vivado 设计套件。
选择创建新项目并单击下一步。
选择项目名称和路径,然后单击“下一步”。
选择RTL 项目以允许运行示例设计并选中“此时不指定源”。单击“下一步”。
单击xcvp1802-lsvc4072-2MP-e-S,或选择板选项并单击Versal VMK180 ES1 评估平台。
单击“下一步”,然后单击“完成”。
在Flow Navigator 面板的Project Manager 下,选择IP 目录并搜索Aurora 64b66b。 Aurora 核心可以在通信网络串行接口下找到。
图1:Vivado IP 目录中的Aurora 64B66B
VCU118 和VMK180 的示例设计具有以下软件要求:
VCU118-vivado设计套件2025.1
VMK180-vivado设计套件2025.1
2.IP配置
对于VCU118。
右键单击Aurora 64B66B,然后选择自定义IP。
在“Customize IP”(自定义IP)窗口的“Core Options”(内核选项)选项卡中,将GT Refclk (MHz) 设置为156.25,将INIT clk (MHz) 设置为100。请参见图2。
注释:为VCU118定制IP时,还可以选择Vivado Lab Edition。这将允许您在顶级文件中添加内置ILA 和VIO。
图2:Aurora 64B66B核心选项设置
对于VMK180。
右键单击Aurora 64B66B,然后选择自定义IP。
在“Customize IP”(自定义IP)窗口的“Core Options”(内核选项)选项卡中,将GT Refclk (MHz) 设置为156.25。
将“INIT clk (MHz)”设置为100。参见图3。
图3:VMK180 的定制Aurora 64B66B 内核。
注释:建议在实践中两种设计的线路速率和GT REFCLK 保持一致。 INIT CLK根据开发板上的系统时钟进行配置。
综合、实现和比特流生成
在Vivado IDE 的“项目管理器”部分中,右键单击内核名称并选择“打开IP 示例设计”(见图4)。
单击“确定”覆盖现有示例设计。
生成示例设计后,运行综合。
在I/O 引脚分配中为Aurora 核心端口分配引脚位置(参见图5)。
完成引脚分配后,保存并更新XDC 文件,然后运行实现。
下一步是生成比特流。
注释:VCU118的I/O端口根据bank 231的原理图进行分配(见图6)。
图4:开放IP 示例设计
图5:VCU118的I/O端口
图6:用于VCU118 I/O 引脚分配的Bank 231 原理图
对于VMK180。
在Vivado IDE 的“项目管理器”部分中,右键单击内核名称并选择“打开IP 示例设计”。 (见图6)
单击“确定”覆盖现有示例设计。
生成示例设计后,运行综合。
在I/O 引脚分配中为Aurora 核心端口分配引脚位置(参见图7)。
完成引脚分配后,保存并更新XDC 文件,然后运行实现。
下一步是生成比特流。
图7:生成示例设计后为VMK180 生成的模块设计
图8:VMK180的I/O端口
图9:用于VMK180 I/O 引脚分配的Bank 105 原理图
注释:VMK180 的I/O 端口根据Bank 105 的原理图进行分配(见图8)。
4. 上电和复位顺序
以下是在可用数据流配置的示例设计级别为Aurora 64B/66B 内核推荐的Aurora 双工复位序列。复位顺序请参见图10。
在电路板加电序列期间,pma_init 和Reset_pb 信号应为高电平。为了确保Aurora 64B/66B 内核正常运行,INIT_CLK 和GT_REFCLK 在上电期间应保持稳定。当两个时钟都稳定时,取消断言pma_init,然后取消断言reset_pb。
图10:Aurora 64B/66B 双工上电复位序列
以下是数据传输之前连接两个设备的步骤。
图11:复位时序
5. FPGA之间的连接
此示例显示两个平台之间的单通道Aurora 64B66B 连接。该平台由VCU118 和VMK180 评估套件板组成,如图12 所示。然后对两个器件进行编程,将编程文件设置为比特流文件名(aurora_64b66b_0_exdes.bit),将探测文件设置为探测文件名(aurora_64b66b_0_exdes.ltx)。
图12:Aurora 64B/66B 单通道设置
注释:如果在AMD 评估板上进行测试,请确保启用QSFP/SFP 端口。请根据相应的开发板原理图启用这些端口。
要执行此设计,请遵循以下必要步骤:
右键单击硬件列表中的设备并选择运行触发器。在出现的波形窗口中,观察lane_up和channel_up信号处于高状态。
在hw_vios 下的“Debug Probes”列表中选择以下所有信号,并将探针添加到VIO 窗口:channel_up、lane_up、RESET、gt_reset_i_temp。
根据复位顺序切换复位信号。具体操作为:先断言pma_init对设备A有效,然后断言信号对设备B有效;然后先断言RESET_PB 对设备A 有效,然后断言信号对设备B 有效,如图9 所示。
Channel_up 和Lane_up 信号必须变低。
然后设备A和设备B的复位信号再次依次切换。每次复位信号切换后,channel_up 和Lane_up 返回高状态。
以下步骤显示,当reset_pb和pma_init置位时,内核(或收发器)处于复位状态,并且channel_up和lane_up都变低。然而,当两个复位信号都为低电平时,内核将取消复位,并且channel_up和lane_up都为高电平。
图13:VCU118 的Aurora 64B/66B HW-ILA 波形
图14:VCU118 的Aurora 64B/66B VIO 探针窗口
图15:VMK180 的Aurora 64B/66B HW-ILA 波形
图16:VMK180 的Aurora 64B/66B VIO 探测窗口
标题:使用Aurora 6466b协议实现AMD UltraScale+ FPGA与AMD Versal自适应SoC的对接
链接:https://yqqlyw.com/news/sypc/69301.html
版权:文章转载自网络,如有侵权,请联系删除!