用于 PCI Express* 的 英特尔® FPGA R-tile Avalon® Streaming IP设计实例用户指南

ID 683544
日期 4/10/2023
Public
文档目录

1.3. 性能设计实例的功能描述

注:

英特尔 Quartus Prime 23.1发布中,用于PCIe的Intel FGPA R-Tile Avalon Streaming IP 的Performance设计实例中具有有限的硬件测试支持。

该设计实例仅适用于具有如下OPN编号的器件:AGIx027R29AxxxxR3, AGIx027R29AxxxxR2, AGIx023R18AxxxxR0, AGIx041R29DxxxxR0, AGIx041R29DxxxxR1。有关OPN解码的更多详细信息,请参阅 英特尔Agilex® 7 FPGAs and SoCs Device Overview(FPGA和SoC器件概述)。

Performance设计实例执行从用于PCIe的Intel FPGA R-Tile Avalon Streaming IP到主机系统存储器的内存传输。您可以配置End Point Traffic Generator设计实例来发送:
  • Memory Write-only TLPs
  • Memory Read-only TLPs
  • Both Memory Write and Memory Read TLPs

在FPGA Application逻辑中实现了一个流量计数器,用于测量正在生成的流量。为了进行流量测量,在主机端运行的软件应用程序发布存储器读TLP,获取计数器值,并在系统终端上打印生成的流量。软件应用程序对Application逻辑内的控制寄存器执行存储器写,以开始和停止流量。

图 10. Endpoint流量生成器设计实例的高级视图

Performance设计实例包含要在英特尔 Quartus Prime软件中进行编译的所有必要文件。 它支持Gen5 x16,1024-bit接口Hard IP Mode以及500MHz时钟频率。

该设计实例还包括以下组件:
  • 生成的R-Tile Avalon Streaming Hard IP Endpoint变体(DUT)。该组件与PCIe链路另一端的根复合体或交换机交互,并将PCIe链路上的数据转换为Avalon Streaming(Avalon-ST)数据格式。
  • pioperf_multitlp_adapter(Avalon-ST Interface Adapter)模块将Avalon-ST接口的4个数据段转换成Avalon-ST数据的两个单段流。
  • pioperf_rx_diverter模块将Memory Write,Memory Read和Completion TLP从主机分流至各自的目的地以进行进一步处理。
  • pioperf_rx_intf(RX接口)模块解码TLP头和从pioperf_rx_diverter模块来的数据。它还提取构建Completion数据的TLP头所需的信息,例如请求程序ID、标志、属性、Traffic Class(TC,流量类别)和字节计数。
  • pioperf_wr_traffic_gen(Write Traffic Controller)模块根据控制寄存器中的信息产生存储器写入。
  • pioperf_rd_traffic_gen(Read Traffic Controller)模块根据控制寄存器中的信息生成Memory Read TLP。每个Memory Read请求都会受到监视,直到其相应的Completion到达。
  • crdt_intf模块更新DUT和pioperf_multitlp_adapter之间必要的credit以确保对接收和传输的TLP进行适当的流量控制。
  • Reset Release IP 将控制电路保持在复位状态,直到FPGA完全进入用户模式。FPGA置位INIT_DONE输出以表示设备处于用户模式。Reset Release IP生成内部INIT_DONE信号的反转信号以创建nINIT_DONE输出。
图 11. Gen5 x16 Performance设计实例
图 12. R-tile 1x16 Performance设计实例的Platform Designer系统内容