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

ID 683501
日期 6/26/2023
Public
文档目录

4.3.1.4.1. Avalon Streaming TX接口的应用逻辑指南

Application逻辑必须参考如下指导:
  • Application逻辑必须坚持遵循Avalon Streaming TX Interface pX_tx_st_ready_o Behavior中对pX_tx_st_ready_o信号行为的概述。
  • pX_tx_st_ready_o置位后,TLP的发送一定不能中断。应用程序一定不能解除置位pX_tx_stN_sop_ipX_tx_stN_eop_i之间的pX_tx_stN_valid_i,除非因为位解除置位pX_tx_st_ready_o而指示存在从R-Tile PCIe IP 核来的背压。
    注: 不按照本指导则可能导致TLP发送带有无效LCRC。
  • 对于双宽度Configuration Mode 0 (1x16),TLP的起始(pX_tx_stN_sop_i)仅可发生在segment 0 (st0)或segment 2 (st2)(即,给定的TLP不可以在segment 1或segment 3上开始。
  • 对于双宽度模式Configuration Mode 0 (1x16),可以允许segment 2的头(st2_hdr),取决于segment 0和segment 1的利用率。请参阅如下表格了解允许的条件。请注意以下表格未包括Avalon Streaming TX接口的全部信号。其仅显示了相关信号以突出显示可以在segment 2上开始TLP的有效情况。

    表 58.  Configuration Mode 0 (1x16) Double-width Mode下可能的pX_tx_st2_sop_i组合
    pX_tx_st0_sop_i pX_tx_st0_eop_i pX_tx_st0_hvalid_i pX_tx_st0_dvalid_i pX_tx_st1_sop_i pX_tx_st1_eop_i pX_tx_st1_hvalid_i pX_tx_st1_dvalid_i pX_tx_st2_sop_i pX_tx_st2_hvalid_i pX_tx_st2_dvalid_i
    1'b1 1'b1 1'b1 1'b1 1'b0 1'b0 1'b0 1'b0 1'b1 1'b1 1'b1
    1'b1 1'b0 1'b1 1'b1 1'b0 1'b1 1'b0 1'b1 1'b1 1'b1 1'b1
    1'b0 1'b1 1'b0 1'b1 1'b0 1'b0 1'b0 1'b0 1'b1 1'b1 1'b1
    1'b0 1'b0 1'b0 1'b1 1'b0 1'b1 1'b0 1'b1 1'b1 1'b1 1'b1
  • 对于双宽度模式的Configuration Mode 1 (2x8)和Configuration Mode 2 (4x4),允许segment 1 的头(st1_hdr),取决于segment 0的利用率。请参阅如下表格了解允许的条件。请注意该表格并未包含Avalon Streaming TX接口的所有信号。该表格中仅显示相关信号,以突出可在segment 1上开始TLP的有效情况。
    表 59.  Configuration Mode 1 (2x8)和Configuration Mode 2 (4x4)都在Double-width Mode时,可能的pX_tx_st1_sop_i组合
    pX_tx_st0_sop_i pX_tx_st0_eop_i pX_tx_st0_hvalid_i pX_tx_st0_dvalid_i pX_tx_st1_sop_i pX_tx_st1_hvalid_i pX_tx_st1_dvalid_i
    1'b1 1'b1 1'b1 1'b1 1'b1 1'b1 1'b1
    1'b0 1'b1 1'b0 1'b1 1'b1 1'b1 1'b1
  • 对于跨越多个段的单个TLP,应用程序逻辑需要以段索引顺序(segment st0 → st1 → st2 → st3 → st0)发送TLP。
  • 如果被发送的TLP的TLP长度比段长度长, 则用于置位pX_tx_stN_eop_i信号的段将由TLP长度取代。
  • 如果发送的TLP长度比段长度(255位),那么相应的pX_tx_stN_eop_i信号需要出现在置位pX_tx_stN_sop_i的段中。
  • 允许pX_tx_st_ready_opX_tx_stN_valid_i之间解除置位的最多周期数是16个coreclkout_hip周期。
  • 对于单宽度模式的Configuration Mode 0 (1x16),每个时钟周期(即,st0_hdr/st0_datast1_hdr/st1_data)仅可使用一个段。此外,如果使用了segment 1,那么先前的TLP必须使用st0_data