仅对英特尔可见 — GUID: wme1602804513154
Ixiasoft
仅对英特尔可见 — GUID: wme1602804513154
Ixiasoft
4.3.1.3. Avalon® Streaming RX接口
Application Layer通过 Avalon® Streaming RX接口接收从R-Tile PCI Express IP核的Transaction Layer来的数据。对于R-Tile,rx_st_ready_i必须始终保持在高电平。应用程序逻辑中的缓冲控制需要由RX Flow Control接口来处理。请参阅RX流程控制接口了解更多详细信息。
当R-Tile IP在1x16配置下操作时,该接口支持每周期四个rx_st_sop_o信号和四个rx_st_eop_o信号。
在双宽度配置的Configuration Mode 0 (1x16) 下,内核提供四个段,每个段具有256位数据(pX_rx_stN_data_o[255:0]),128位标头 (pX_rx_stN_hdr_o[127:0])和32位TLP前缀((pX_rx_stN_prefix_o[31:0])。如果该内核配置为1x16模式,则数据总线成为1024位总线。
双宽度配置的Configuration Mode 1 (2x8)中,仍然有四个 Avalon® Streaming段(每个x8端口两个)。
由32:1 XOR完成奇偶校验生成(即,每32个数据,头或前缀位有一个奇偶校验位)。
信号名称 | 方向 | 描述 | EP/RP/BP | 时钟域 |
---|---|---|---|---|
pX_rx_stN_data_o[W:0]其中 X = 0,1,2,3(IP核个数)并且W的值因为内核的不同而不同。 N = 0,1,2,3(段数) |
输出 | 这是Receive数据总线。Application Layer接收从该总线上IP核的Transaction Layer来的数据。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_hdr_o[127:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 这是接收到的头,其遵循PCIe specifications指定的TLP头格式。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_prefix_o[31:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 这是接收到的第一个TLP前缀,它遵循PCIe规范指定的TLP前缀格式。支持PASID。 当对应的rx_st_sop_o被置位时,该信号有效。 TLP前缀使用Big Endian实现(例如,Fmt字段在位[31:29]中,Type字段在位[28:24]中)。 如果给定的TLP无前缀,则该双字(dword)(包括Fmt字段)为全零。 |
EP/RP/BP | coreclkout_hip |
pX_rx_stN_sop_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 在该信号与对应的rx_stN_valid_o位同时被置位时,发出第一个周期的TLP信号。 rx_stN_sop_o:置位时,发送rx_stN_data_o[255:0]上TLP开始的信号。 例如,置位后,rx_st2_sop_o发送rx_st2_data_o[255:0]上TLP开始的信号。 |
EP/RP/BP | coreclkout_hip |
pX_rx_stN_eop_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 在该信号与对应的rx_stN_valid_o位同时被置位时,发出最后一个周期的TLP信号。 rx_stN_eop_o:置位时,发送rx_stN_data_o[255:0]上TLP结束的信号。 例如,置位后,rx_st2_eop_o发送rx_st2_data_o[255:0]上TLP结束的信号。 |
EP/RP/BP | coreclkout_hip |
pX_rx_stN_dvalid_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 这些信号认证进入Application Layer的rx_stN_data_o信号。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_hvalid_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 这些信号认证发往Application Layer的rx_stN_hdr_o信号。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_pvalid_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 这些信号认证发往Application Layer的rx_stN_prefix_o信号。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_data_par_o[Z:0]其中 X = 0,1,2,3(IP核个数)并且Z因为核的不同而不同。 N = 0,1,2,3(段数) |
输出 | rx_stN_data_o的奇偶校验信号 。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_hdr_par_o[3:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | rx_stN_hdr_o的奇偶校验信号 。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_prefix_par_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | rx_stN_prefix_o的奇偶校验信号。 | EP/RP/BP | coreclkout_hip |
pX_rx_st_ready_i | 输入 | 指示Application Layer已经准备好接收信号。该信号应该始终设置为1。RX侧的Flow Control通过Credit Control Interface处理。 | EP/RP/BP | coreclkout_hip |
pX_rx_stN_empty_o[2:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 指定rx_stN_eop_o信号被置位时,周期中空双字的数量。未置位rx_stN_eop_o信号时,这些信号无效。 |
EP/RP/BP | coreclkout_hip |
pX_rx_stN_bar_o[2:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 为要输出的TLP指定BAR。 当rx_stN_sop_o和rx_stN_valid_o置位时,这些输出有效。 |
EP/RP | coreclkout_hip |
pX_rx_stN_vfactive_o其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 置位后,这些信号指示接收到的TLP是针对虚拟功能。解除置位这些信号后,接收到的TLP是针对物理功能,而rx_stN_pfnum_o信号指示功能编号。 当对应的rx_stN_sop_o置位时,该信号有效。 |
EP/RP | coreclkout_hip |
pX_rx_stN_vfnum_o[10:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 指定接收的TLP的目标VF数。应用程序将此信息用于request和completion TLP。对于completion TLP,这些位指定该completion TLP的requester的VF个数。 当rx_stN_vf_active_o和对应的rx_stN_sop_o置位时,这些信号有效。 |
EP/RP | coreclkout_hip |
pX_rx_stN_pfnum_o[2:0]其中 X = 0,1,2,3(IP核个数) N = 0,1,2,3(段数) |
输出 | 指定接收的TLP的目标物理功能编号。 当对应的rx_stN_sop_o置位时,该信号有效。 |
EP/RP | coreclkout_hip |
- 时钟周期1:应用逻辑置位p0_rx_st_ready_i信号。该信号必须始终设置为高电平。RX流量控制必须由使用RX Flow Control接口的Application逻辑处理(请参阅RX流程控制接口了解详细信息)。
- 时钟周期2:
- 置位p0_rx_st1_sop_o时,第一个TLP (T0)的开始到达segment 1。
- 置位信号p0_rx_st1_hvalid_o以验证p0_rx_st1_hdr_o总线中第一个TLP (T0H0) 的头。
- 置位信号p0_rx_st1_dvalid_o以验证p0_rx_st1_data_o总线中第一个TLP (T0D0) 的数据。
- 该第一个TLP (T0)的结尾在segment 2中,由置位p0_rx_st2_eop_o来标记。
- 置位信号p0_rx_st2_dvalid_o以验证p0_rx_st2_data_o总线中该第一个TLP (T0D1)的数据。
- 总线p0_rx_st2_empty_o指示p0_rx_st2_data_o总线(T0D1)中无效的双字个数。
- 时钟周期3:
- 下一个TLP (T1)达到segment 1,由置位p0_rx_st1_sop_o来标记。
- 置位信号p0_rx_st1_hvalid_o以验证p0_rx_st1_hdr_o总线中该TLP (T1H0)的头。
- 置位信号p0_rx_st1_dvalid_o以验证p0_rx_st1_data_o 总线中该TLP (T1D0)的数据。
- 置位该信号p0_rx_st2_dvalid_o以验证p0_rx_st2_data_o总线中该TLP (T1D1)的数据。
- 置位信号p0_rx_st3_dvalid_o 以验证p0_rx_st3_data_o总线中该TLP (T1D2)的数据。
- 时钟周期4:
- T1 TLP的结尾在segment 0中,由置位p0_rx_st0_eop_o来标记。
- 置位该信号p0_rx_st0_dvalid_o以验证p0_rx_st0_data_o 总线中该TLP (T1D3)的数据。
- 总线p0_rx_st0_empty_o指示p0_rx_st0_data_o总线(T1D3)中无效双字的个数。
下一个TLP达到segment 1中的下一个时钟周期并在segment 0中结束。