仅对英特尔可见 — GUID: lxk1612826774656
Ixiasoft
仅对英特尔可见 — GUID: lxk1612826774656
Ixiasoft
4.3.1.4. Avalon® Streaming TX接口
应用层通过 Avalon® -ST TX接口将数据发送到R-Tile PCI Express IP核将数据传输到事务层。R-Tile PCI Express IP核必须在发送之前置位pX_tx_st_ready_o。
如果R-Tile PCI Express IP核以双宽度配置Configuration Mode 0 (1x16)配置,则有四个256位数据宽度的段,从而允许每周期多个 TLP。这意味着有四个pX_tx_stN_sop_i信号和四个pX_tx_stN_eop_i用于Configuration Mode 0 (1x16)。
该接口也不遵循pX_tx_st_ready_o和pX_tx_stN_dvalid_i信号之间由Avalon 接口规范指定的固定延迟。
Configuration Mode 0 (1x16) 和双宽度配置下的R-Tile PCI Express 核提供四个段,每个段有256位数据(pX_tx_stN_data_i[255:0]),128位头(pX_tx_stN_hdr_i[127:0])和32位TLP前缀(pX_tx_stN_prefix_i[31:0])。如果该核以Configuration Mode 0 (1x16)配置,则全部四个段都被使用,于是数据总线成为总共1024位总线,由pX_tx_st0_data_i[255:0],pX_tx_st1_data_i[255:0],pX_tx_st2_data_i[255:0]和pX_tx_st3_data_1[255:0]组成。
由32:1 XOR完成奇偶校验生成(即,每32个数据,头或前缀位有一个奇偶校验位)。
信号名称 | 方向 | 描述 | EP/RP/BP | 时钟域 |
---|---|---|---|---|
pX_tx_stN_data_i[255:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | 用于发送的Application Layer数据。数据总线以多个256位的段组织而成。在x16模式下,所有4个段都被有效用于形成1024位数据总线。在x8模式下,2个段被用于组成一个512位数据总线。在x4模式下,每个256位的段是一个独立的总线。 Application Layer必须为TX接口提供正确格式的TLP。当对应的tx_stN_valid_i信号被置位时,数据有效。 报文TLP的映射与Transaction Layer TLP的映射相同都具有4个双字头。用于头(header)中长度和地址字段的数据周期数必须正确。发布具有错误数据周期数的数据包会导致TX接口挂起并且接收进一步的请求。 请注意: tx_stN_sop_i和tx_stN_eop_i周期之间不得有空闲周期,除非解除置位tx_st_ready_o时存在背压。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_hdr_i[127:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | 这是要发送的头,遵循PCIe规范规定的TLP头的格式。请参考以下指导:
当tx_stN_sop_i信号被置位时,该信号有效 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_prefix_i[31:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | 要传输的TLP前缀,它遵循PCIe规范指定的TLP前缀格式。支持PASID。 当对应的tx_stN_sop_i信号置位时,这些信号有效。 TLP前缀使用Big Endian实现(即,Fmt字段在位[31:29]中,Type字段在位[28:24]中)。 如果给定的TLP无前缀,则该双字(dword)(包括Fmt字段)为全零。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_sop_i其中 X = 0,1,2,3(IP核个数) N = 2,3(段数) |
输入 | 与tx_stN_valid_i的对应位一起被置位时,指示TLP的第一个周期。对于x16配置:
这些信号在每个TLP被置位一个时钟周期。它们还认证对应的tx_stN_hdr_i和tx_stN_tlp_prfx_i信号。
注: pX_tx_stN_sop_i 脉冲只能在segments 0和/或2 (st0和/或st2)上发送。
|
EP/RP/BP | coreclkout_hip |
pX_tx_stN_eop_i其中 X = 0,1,2,3 (IP核个数) N = 0,1,2,3(段数) |
输入 | 与tx_stN_valid_i的对应位一起被置位时,指示TLP的最后一个周期。对于x16配置:
这些信号在每个TLP被置位一个时钟周期。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_dvalid_i其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | 认证发送到IP核中的tx_stN_data_i对应段的数据处于就绪周期。 要加速时序收敛,Intel建议您寄存tx_st_ready_o和tx_stN_dvalid_i信号。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_hvalid_i其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | 认证发送到IP核中的tx_stN_data_i对应段的头处于就绪周期。 要加速时序收敛,英特尔建议您寄存tx_st_ready_o和tx_stN_hvalid_i信号。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_pvalid_i其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | 认证发送到IP核中的tx_stN_data_i对应段的前缀处于就绪周期。 要加速时序收敛,Intel建议您寄存tx_st_ready_o和tx_stN_pvalid_i信号。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_data_par_i[Z:0]其中 X = 0,1,2,3(IP核个数)并且Z因为核的不同而不同。 N = 0,1,2,3(段数) |
输入 | tx_stN_data_i的奇偶校验。Bit [0]对应于tx_stN_data_i[31:0],bit [1]对应于tx_stN_data_i[63:32],依此类推。 默认情况下,PCIe Hard IP生成TX数据的奇偶校验。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_hdr_par_i[3:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | tx_stN_hdr_i的奇偶校验。 默认情况下,PCIe Hard IP生成TX头的奇偶校验。 |
EP/RP/BP | coreclkout_hip |
pX_tx_stN_prefix_par_i其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输入 | tx_stN_tlp_prfx_i的奇偶校验。 默认情况下,PCIe Hard IP生成TX TLP前缀的奇偶校验。 |
EP/RP/BP | coreclkout_hip |
pX_tx_st_ready_o其中 X =0,1,2,3(IP核个数) |
输出 | 指示PCIe Hard IP已准备好接受数据。 当tx_st_ready_o被R-Tile Avalon Streaming Intel FPGA IP for PCIe驱动到高电平时,Application逻辑可能会将tx_stN_valid_i信号置位高并传输数据。 当tx_st_ready_o被R-Tile Avalon Streaming Intel FPGA IP for PCIe驱动到低电平,Application逻辑必须在最多16个时钟周期内将tx_stN_valid_i驱动到低电平。 请参阅Avalon Streaming TX Interface pX_tx_st_ready_o Behavior 了解更多信息。
可解除置位pX_tx_st_ready_o信号的情况如下:
|
EP/RP/BP | coreclkout_hip |
例如,以下 Avalon® Streaming TX接口时序显示了在具有跨多个段的数据的back-to-back TLP情况下,Avalon Streaming TX接口的行为。如下文本描述了每个时钟周期的波形。
- 时钟周期1:R-Tile Intel FPGA IP for PCI Express置位p0_tx_st_ready_o信号,指示Hard IP已准备接受从Application逻辑来的TLP。
- 时钟周期2:
- 第一个TLP (T0)的开始在segment 0中,由置位p0_tx_st0_sop_i来指示。
- 置位信号p0_tx_st0_hvalid_i以验证p0_tx_st0_hdr_i总线中第一个TLP (T0H0)的头。
- 置位信号p0_tx_st0_dvalid_i来验证p0_tx_st0_data_i总线中第一个TLP (T0D0)的数据。
- 置位 p0_tx_st1_dvalid_i来验证p0_tx_st1_data_i总线中第一个TLP (T0D1)数据的下一个部分。
- 置位该信号p0_tx_st2_dvalid_i以验证p0_tx_st2_data_i总线中第一个TLP (T0D2)的数据的下一个部分 。
- 置位信号 p0_tx_st3_dvalid_i来验证p0_tx_st3_data_i总线中第一个TLP (T0D3)的数据的最后部分。
- 第一个TLP (T0)的结尾在segment 3中,由置位p0_tx_st3_eop_i来标记。
- 时钟周期3:
- 下一个TLP (T1),到达segment 0,由p0_tx_st0_sop_i保持在高电平作为标记。
- 置位该信号p0_tx_st0_hvalid_i以验证p0_tx_st0_hdr_i总线中此TLP (T1H0)的头。
- 置位信号p0_tx_st0_dvalid_i以验证p0_tx_st0_data_i总线中此TLP (T1D0)的数据
- 置位信号p0_tx_st1_dvalid_i,以验证p0_tx_st1_data_i总线中此TLP (T1D1)数据的下一个部分。
- 置位信号p0_tx_st2_dvalid_i以验证p0_tx_st2_data_i总线中该TLP (T1D2)数据的下一个部分。
- 置位信号p0_tx_st3_dvalid_i以验证p0_tx_st3_data_i总线中TLP (T1D2)数据的最后部分。
- TLP (T1)的结尾在segment 3中,通过将p0_tx_st3_eop_i保持在高电平作为标记。