用于 PCIe* 解决方案的 Intel® Stratix® 10 Avalon® -ST和Single Root I/O Virtualization (SR-IOV)接口用户指南

ID 683111
日期 12/06/2017
Public
文档目录

6.1.3. Avalon-ST 512-Bit RX接口

Application Layer通过Avalon-ST RX接口接收 PCI Express* IP core的Transaction Layer的数据。512-bit接口支持Gen3 x16 variants,使用250 MHz时钟,从而简化了时序收敛。

512-bit接口支持TLP开头的两个位置bit[0]和bit[256]。当数据包结束周期(end-of-packet cycle)出现在低256比特时,此接口支持每周期两个TLP。

表 29.  512‑Bit Avalon-ST RX数据通路

信号

方向

说明

rx_st_data_o[511:0]

Output

接收数据总线。Application Layer在此总线上接收Transaction Layer的数据。对于大型TLP,Application Layer驱动rx_st_data[511:0]上的512-bit数据一直到数据包结束周期(end-of-packet cycle)。

对于具有低256比特数据包结束周期(end-of-packet cycle)的TLP,512-bit接口支持高256比特的数据包起始周期(start-of-packet cycle)。

rx_st_sop[1:0]

Output

置位时(rx_st_valid的对应比特)发出第一个周期TLP的信号,对应比特rx_st_valid。以下编码定义为:
  • rx_st_sop[1]:置位时,指示rx_st_data[511:256]上TLP的开始。
  • rx_st_sop[0]:置位时,指示rx_st_data[255:0]上TLP的开始。

rx_st_eop[1:0]

Output

置位时(rx_st_valid[1:0]的对应比特)发出最后一个周期的TLP的信号。以下编码定义为:

  • rx_st_eop[1]:置位时,发出rx_st_data[511:256]上TLP的结束的信号。
  • rx_st_sop[0]:置位时,发出rx_st_data[255:0]上TLP的结束的信号。

rx_st_ready_i

Input

表明Application Layer以准备好接收数据。Application Layer置低此信号,对数据流应用反压(backpressure)。

rx_st_valid_o[1:0]

Output

钟控(clock)rx_st_data_o到Application Layer中。

Stratix® 10器件的rx_st_ready_irx_st_valid_o[1:0]的延迟是6个周期。当rx_st_ready_i ready置低时,rx_st_valid_o[1:0]必须在6个周期内置低。当rx_st_ready_i ready置低时,rx_st_valid_o必须在6个周期内重新置位(如果有更多的数据要发送)。为实现最大吞吐量,Intel建议测量RX缓冲器的大小,以避免rx_st_ready_o的置低。

下面的512-bit Avalon-ST接口的rx_st_ready与rx_st_valid之间的关系时序图显示了rx_st_ready_irx_st_valid_o之间的关系。

rx_st_bar_range_o[5:0]

Output

对输出的TLP指定BAR。以下编码定义为:
  • rx_st_bar_range_o[5:3]:对rx_st_data[511:256]指定BAR。
  • rx_st_bar_range_o[2:0]rx_st_data[255:0]指定BAR。
对于每个BAR范围,以下编码定义为:
  • 000: Memory BAR 0
  • 001: Memory BAR 1
  • 010: Memory BAR 2
  • 011: Memory BAR 3
  • 100: Memory BAR 4
  • 101: Memory BAR 5
  • 110: I/O BAR
  • 111: Expansion ROM BAR
rx_st_empty_o[5:0] Output

指定rx_st_eop_o[1:0]信号置位时空双字(dword)的数量。rx_st_eop[1:0]置低时无效。以下编码定义为:

  • rx_st_empty_o[5:3]:指定高阶数据包的空双字。
  • rx_st_empty_o[2:0]:指定低阶数据包的空双字。
rx_st_parity_o[63:0] Output rx_st_data_o的字节奇偶校验。bit 0对应于rx_st_data_o[7:0],bit 1对应于rx_st_data_o[15:8],以此类推。
rx_st_vf_active[1:0] Output

置位时,接收的TLP使用VF bar。当rx_st_sop置位时有效。置低时,TLP使用PF,rx_st_func_num端口驱动功能数。

对于512-bit接口,bit [0]对应于rx_st_data[255:0],bit 1对应于rx_st_data[511:256]

当多个功能使能时有效。

rx_st_func_num[3:0]

Output

指定接收的TLP的目标功能数。应用使用此信息对request和completion TLP布线数据包。对于completion TLP,指定此completion TLP的requestor的PF数量。如果TLP使用 VF[<m>, <n>],此总线承载PF<m>信息。

对于512-bit接口,以下编码定义为:

  • rx_st_func_num[3:2]:指定rx_st_data[511:256]的功能数
  • rx_st_func_num[1:0]:指定rx_st_data[255:0]的功能数

当多个功能使能时有效。

rx_st_vf_num[21:0] Output

指定接收的TLP的目标VF数。应用将此信息用于request和completion TLP。对于completion TLP,指定此completion TLP的requester的VF数。

以下编码定义为:

  • rx_st_vf_num[21:10]:指定rx_st_data[511:256]的VF数
  • rx_st_vf_num[10:0]:指定rx_st_data[255:0]的VF数

rx_st_vf_active置位时有效。如果TLP使用VF[<m>, <n>],此总线承载VF<n>信息。

当多个功能使能时有效。

图 42. 512-bit Avalon-ST接口的rx_st_ready与rx_st_valid之间的关系