在NI高速串行仪器上使用Xilinx收发器进行设计

更新 Dec 5, 2023

环境

硬件

  • High-Speed Serial Instrument
  • PXIe-7902
  • PXIe-6591
  • PXIe-6592
  • PXIe-6593
  • PXIe-6594
  • PCIe-6593

当您需要使用更少的引脚来快速移动大量数据,没有大量的同时开关输出(SSO)问题,更低的EMI和更低的成本时,多千兆位收发器(MGT)就是您的最佳选择。 MGT应用程序几乎出现在电子行业的每个领域-军事,医疗,网络,视频,通信等。
NI高速串行仪器专为需要验证,连接和测试高速串行协议的工程师而设计。这些评估板包含XilinxKintex®-7/Virtex®-7/Kintex®UltraScale™/Kintex®UltraScale +™FPGA,可以通过LabVIEW软件对其进行编程。 NI高速串行仪器上可用的Xilinx MGT资源为:
规格PXIe-7902PXIe-6591PXIe-6592PXIe-6593PXIe-6594
线速500 Mbps-12.5 Gbps500 Mbps-12.5 Gbps500 Mbps-12.5 Gbps500 Mbps-12.5 Gbps500 Mbps-12.5 Gbps
渠道24 TX / RX(GTX)8个TX / RX(GTX)4个TX / RX(GTX)8 TX / RX(GTH)8 TX / RX(GTY)
现场可编程门阵列Virtex-7 485TKintex-7 K410TKintex-7 K410TKintex UltraScale KU40,KU60Kintex UltraScale + KU15P
本文将总结在NI高速串行仪器上使用Xilinx MGT进行设计时的一些常见做法。

在开发与高速串行相关的应用程序时,应考虑几种实践

通道绑定

有时,应用程序需要移动的数据超出单个串行链接(通道)所能容纳的范围。为了获得更高的数据速率,通道绑定技术使用“并行方式”将多个串行通道绑定在一起以进行数据传输,就好像它是通过单个链路传输的一样。

许多高速串行协议支持多通道传输,而通道绑定是其下的关键技术之一。看到诸如Serial RapidIO x4Aurora x8 lane等协议配置非常普遍,它们都需要多通道支持。请注意,多通道支持在发送器端或接收器端花费了多个MGT。下图突出显示了一些支持多个通道的IP的配置:

NI高速串行仪器仅公开有限的MGT资源,因此我们需要谨慎对待即将使用的协议的通道配置。

建议阅读 NI高速串行仪器用户手册中每个模块的收发器通道和四线映射部分,以及Xilinx或其他供应商提供的IP文档,以使配置最适合您的应用。

示例1:模块选择

如果要开发在PXIe-6592上利用Serial RapidIO x4的应用程序。首先检查一下PXIe-6592的Quad映射:

PXIe-6592上只有四个GTX可用。理论上,串行RapidIO x4需要四个GTX,可用的GTX总数可以满足要求。但是,四边形映射表显示可以从不同的连接器( PORT03 )访问每个GTX。这意味着用户只能从每个物理端口访问一个GTX。事实证明,实现串行RapidIO x4的更现实的方法是使用其他高速串行仪器,例如PXIe-6591或PXIe-7902,每个端口公开四个GTX。

示例2:IP配置

如果要开发在PXIe-6591上利用Aurora 8B / 10B x4的应用程序。首先检出PXIe-6591的Quad映射:

PORT 0PORT 1中的每个都有四个位于不同Quad上的GTX。您需要确保Xilinx®LogiCORE™IP Aurora 8B / 10B配置对话框上的GT Selections准确地映射到Quad映射。

要使用PORT 0 ,必须选择并配置GTXQ3

参考时钟路由

参考时钟对于MGT正常工作至关重要。您应该非常小心地处理参考时钟选择甚至路由。请参考Xilinx: 7系列FPGA GTX / GTH收发器和Xilinx: UltraScale架构GTY收发器参考时钟选择和分配”部分。如果参考时钟及其路由设计不正确,可能会导致编译失败甚至MGT无法工作。


示例1:在协议IP之间共享时钟

Xilinx提供的大多数高速串行协议IP都有一个选项,即用户是否需要将所有内容都包含在内核中,或者如果设计中包含多个IP,则需要拆分“共享逻辑”。通常是这样的:

假设要在PXIe-7902上开发应用程序,它将包括两个Xilinx LogiCORE™IP串行RapidIO Gen2,一个IP(下图为SRIO0)应连接到PORT0 ,另一个IP(下图为SRIO1)应该连接到PORT2 。如果在示例设计中将PORT0上的IP配置为在内核中包含共享逻辑 ,而将PORT2上的另一个IP配置为在示例设计中包含"共享逻辑" ,则用户可能会在设计中将IP连线

由于PXIe-7902的四边形映射,

PORT0PORT2上的GTX位于不同的Quad上,因此很可能会出现Xilinx编译错误,例如

错误:[放置30-140]无法路由! GTXE_COMMON / GTXE_CHANNEL时钟组件对未放置在可路由的站点对中。


该解决方案是重新设计参考时钟路由方案,或将两个IP配置为示例设计中的“包括共享逻辑”。

极性

MGT的串行数据引脚始终为差分。但是有时由于某些原因会交换PCB上的差分数据走线。 MGT可以配置为感知此极性反转并在收发器内对其进行纠正。如果这些数据引脚的极性配置不正确,则数据传输将成问题。

对于需要纠正极性的NI高速串行仪器模块,NI提供了通过套接字组件级IP(CLIP)接口访问MGT极性信息的功能。下表描述了PXIe-7902套接字CLIP信号的一部分:

您可以在《 NI高速串行仪器用户手册》中找到每个模块的Sockted CLIP信号描述的完整列表。如果您的协议IP需要知道MGT极性,则应将HDL级别的相应GtxRxPolarity_inGtxTxPolarity_in信号直接连接到IP的相应极性控制信号。

例如,如果您想在PXIe-7902的PORT2上创建Xilinx LogiCORE™IP串行RapidIO Gen2 x4协议,以设置正确的极性,则可能需要在HDL中具有以下端口映射,以直接实例化协议IP。

gt_txpolarity_in => GtxTxPolarity_in(11至8),-PORT2上GTX的索引
gt_rxpolarity_in => GtxRxPolarity_in(11至8),-PORT2上GTX的索引


在上面的VHDL代码片段中, GtxtxPolarity_in(11降至8)GtxRxPolarity_in(11降至8)直接连接到相应的Socketed CLIP顶级信号。 (从11降到8)是可从PXIe-7902的PORT 2访问的GTX的索引。但是有时您需要做一些尝试才能找到正确的索引序列。

调试工具

与MGT相关的调试问题需要对数字设计有深入的了解。为了帮助客户进行MGT调试,NI开发了NI MGT调试工具包,可以减轻调试过程中的痛苦。它包含如下功能

  • 眼图扫描实用程序以补充眼图扫描IDL
  • 公开MGT的端口信号和属性的自定义位文件
  • 用于与NI 6591R / 6592R模块上的Xilinx MGT交互的GTX工具包
  • 几个示例说明了如何有效使用工具包

请注意,该工具包仅适用于PXIe-6591 / 6592。对于其他模块,当前客户必须利用其VHDL和FPGA经验进行开发。 LabVIEW附带的Aurora流示例提供了某些功能,例如眼图扫描。

调试的另一种选择是将
项目导出到Vivado®Design Suite 。可以在Vivado IDE中完成以下调试工作。

 

下一步