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

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

6.1.5. Avalon-ST 512-Bit TX接口

Application Layer通过Avalon-ST TX接口将数据发送到 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。

表 31.  512‑Bit Avalon-ST TX数据通路

Signal

Direction

Description

tx_st_data_i[511:0]

Input

Application Layer数据传输。Application Layer必须在TX接口上提供一个被正确格式化的TLP。当tx_st_valid_o信号置位时有效。message TLP的映射与包含4个双字头(dword header)的Transaction Layer TLP的映射相同。对于header中的length和address域,数据周期的数量必须是正确的。发送一个包含错误数量的数据周期的数据包会导致TX接口挂起,并且无法接受更多请求。

对于TLP requester ID域,dword1中的bits[31:16]指定以下信息:

  • Bits[19:16]:指定PF数量。
  • Bits[31:20]:指定VF数量。当tx_st_vf_active置位时,VF数量有效。如果请求来自VF[<m>,<n>],那么bits[19:16]驱动PF数量<m>,bits [31:20]驱动VF数量<n>tx_st_vf_active信号在与tx_st_soptx_st_valid的相同周期内置位。

传输的数据。Application Layer必须在TX接口上提供一个被正确格式化的TLP。当tx_st_valid置位时有效。message TLP的映射与包含4个双字头(dword header)的Transaction Layer TLP的映射相同。对于header中的length和address域,数据周期的数量必须是正确的。发送一个包含错误数量的数据周期的数据包会导致TX接口挂起,并且无法接受更多请求。

对于具有低256比特数据包结束周期(end-of-packet cycle)的TLP,512-bit接口支持高256比特的数据包起始周期(start-of-packet cycle)。如果TLP开始于bit 256,bits [303:272]指定completer/requester ID。

tx_st_sop_i[1:0]

Input

tx_st_valid_o的对应比特一起置位时表示TLP的第一个周期。以下编码定义为:

  • tx_st_sop_i[1]:置位时表明tx_st_data[511:256]中TLP的开始。
  • tx_st_sop_i[0]:置位时表明tx_st_data[255:0]中TLP的开始。
tx_st_eop_i[1:0]

Input

tx_st_valid_o[1:0]的对应比特一起置位时表示TLP的结束。以下编码定义为:

  • tx_st_eop_i[1]:置位时表明tx_st_data[511:256]中TLP的结束。
  • tx_st_eop_i[0]:置位时表明tx_st_data_i[255:0]中TLP的结束。

tx_st_ready_o

Output

表示Transaction Layer准备好接收要传输的数据。内核置低此信号来对数据流应用反压(backpressure)。在Avalon-ST TX接口上发送数据包之前,Application Layer应该在复位释放后等待至少2个时钟周期。Application Layer能够监控reset_status信号来决定IP core何时退出复位状态。

如果tx_st_ready_o被Transaction Layer在周期<n>上置位,那么 <n> + readyLatency是一个ready周期,在此周期中Application Layer可能置位tx_st_valid_i并传输数据。

readyLatency是3个coreclkout_hip周期。

tx_st_valid_i[1:0]

Input

同步(clocks) tx_st_data_i到内核 into the core on ready cycles.在tx_st_sop_itx_st_eop_i之间,除了响应tx_st_ready置低时,tx_st_valid_i信号一定不要在TLP的中间被置低。当tx_st_ready_o置低时,此信号必须在3个coreclkout_hip周期内置低。当tx_st_ready_o重新置位时,并且 tx_st_data处于mid-TLP时,此信号必须在下个ready周期上重新置位。图 Avalon-ST TX Interface tx_st_ready Deasserts显示了此信号的时序。此信号的行为对于256-bit和512-bit接口是相同的。

要加速时序收敛,Intel建议您寄存tx_st_ready_o以及tx_st_valid_i信号。

tx_st_err_i[1:0] Input 置位时,表明传输TLP上的一个错误。此信号通过tx_st_eop_i置位并使数据包无效。以下代码定义为:
  • tx_st_err_i[1]:指定tx_st_data[511:256]中的一个错误。
  • tx_st_err_i[0]:指定tx_st_data[255:0]中的一个错误。

如果tx_st_err[0]tx_st_eop[0]置位,那么下一个数据包能够开始于tx_st_data[256]。如果tx_st_err[1] tx_st_eop[1]置位,下一个数据包能够开始于tx_st_data[0]

tx_st_parity_i[63:0] Input tx_st_data_i的字节奇偶校验。bit 0对应于tx_st_data_i[7:0],bit 1对应于tx_st_data_i[15:8],以此类推。
tx_st_vf_active Input

置位时,发送的TLP用于VF。置低时,发送的TLP用于PF。当tx_st_sop置位时有效。

当多个功能使能时有效。