在开发与高速串行相关的应用程序时,应考虑几种实践
通道绑定
有时,应用程序需要移动的数据超出单个串行链接(通道)所能容纳的范围。为了获得更高的数据速率,通道绑定技术使用“并行方式”将多个串行通道绑定在一起以进行数据传输,就好像它是通过单个链路传输的一样。
许多高速串行协议支持多通道传输,而通道绑定是其下的关键技术之一。看到诸如Serial RapidIO x4或Aurora 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总数可以满足要求。但是,四边形映射表显示可以从不同的连接器( PORT0 … 3 )访问每个GTX。这意味着用户只能从每个物理端口访问一个GTX。事实证明,实现串行RapidIO x4的更现实的方法是使用其他高速串行仪器,例如PXIe-6591或PXIe-7902,每个端口公开四个GTX。
示例2:IP配置
如果要开发在PXIe-6591上利用Aurora 8B / 10B x4的应用程序。首先检出PXIe-6591的Quad映射:
PORT 0和PORT 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的四边形映射,
PORT0和PORT2上的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_in或GtxTxPolarity_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中完成以下调试工作。