请求器完成接口 - 1.3 简体中文

UltraScale+ 器件 Integrated Block for PCI Express 产品指南 (PG213)

Document ID
PG213
Release Date
2022-11-16
Version
1.3 简体中文
表 1. 请求器完成接口端口描述(512 位接口)
名称 I/O 宽度 描述
m_axis_rc_tdata 输出 512 从 PCIe 请求器完成接口向用户应用发射数据。
m_axis_rc_tuser 输出 161 这组信号中包含所传输的 TLP 的边带信息。当 m_axis_rc_tvalid 为高电平时,这些信号有效。下表描述了这组信号中的每个信号。
m_axis_rc_tlast 输出 1 核在包的最后一个节拍内断言此信号有效以指示包结束。在单一节拍内完成 TLP 传输时,核会在传输的首个节拍内设置该位。仅当禁用跨接选项时,才使用此输出。启用跨接选项时,核会将该输出永久设置为 0。
m_axis_rc_tkeep 输出 16 传输期间断言此总线的位 i 有效对于用户逻辑而言,表示 m_axis_rc_tdata 总线的 Dword i 包含的数据有效。核会针对从描述符的首个 Dword 开始到有效载荷的最后一个 Dword 为止的所有 Dword 将该位连续设置为 1。因此,在包的所有节拍中 m_axis_rc_tkeep 必须全部设置为 1,但在包的总大小并非数据总线宽度的整数倍(在 2 个 Dword 内都是如此)的情况下,最后一个节拍除外。对于有效载荷传输的 Dword 对齐模式和地址对齐模式都是如此。

启用跨接选项时,这些输出全部永久设置为 1。在此情况下,用户逻辑必须使用 m_axis_rc_tuser 中的信号,以判定通过该接口传输的完成 TLP 的起始和结束。

m_axis_rc_tvalid 输出 1 核在 m_axis_rc_tdata 总线上驱动有效数据时始终断言此输出有效。核会在包传输期间使有效信号保持处于断言有效状态。核会使用 m_axis_rc_tready 信号来调整数据传输节奏。
m_axis_rc_tready 输入 1 用户逻辑激活此信号对于 PCIe 核而言,表明用户逻辑已准备好接受数据。在同一周期内 m_axis_rc_tvalid 和 m_axis_rc_tready 均断言有效时,就会通过该接口传输数据。

当有效信号为高电平时,如果用户逻辑断言就绪信号无效,那么核会在总线上保留数据,并使有效信号保持断言有效状态,直至用户逻辑断言就绪信号有效为止。

表 2. m_axis_rc_tuser 中的边带信号(512 位接口)
位索引 名称 宽度 描述
63:0 byte_en 64 客户逻辑可以选择使用这些字节使能位来判定所传输的包的有效载荷中的有效字节。传输期间断言此总线的位 i 有效对于客户而言,表明 m_axis_cq_tdata 总线的字节 i 包含的有效载荷字节是有效的。针对描述符字节,不会断言该位有效。

虽然字节使能可由客户逻辑根据请求描述符中的信息(地址和长度)来生成,但客户还可以选择直接使用这些信号,而不必从其它接口信号生成这些信号。该总线中对应 TLP 有效载荷的值为 1 的位始终连续。

67:64 is_sop[3:0] 4 用作为此节拍中新 TLP 的起始信号。这些输出在 TLP 的第一拍中设置。禁用跨接时,仅限 is_sop[0] 有效,is_sop[3:1] 则永久设置为 0。启用跨接时,设置如下:
  • 0000:没有新 TLP 在此节拍中起始。
  • 01:有单一新 TLP 在此节拍中起始。ts 起始位置以 is_sop0_ptr[1:0] 来表示。
  • 0011:有 2 个新 TLP 在此节拍中起始。is_sop0_ptr[1:0] 提供第 1 个 TLP 的起始位置,is_sop1_ptr[1:0] 则提供第 2 个 TLP 的起始位置。
  • 0111:有 3 个新 TLP 在此节拍中开始。is_sop0_ptr[1:0] 提供第 1 个 TLP 的起始位置,is_sop1_ptr[1:0] 提供第 2 个 TLP 的起始位置,is_sop2_ptr[1:0] 提供第 3 个 TLP 的起始位置。
  • 1111:有 4 个新 TLP 在此节拍中开始。is_sop0_ptr[1:0] 提供第 1 个 TLP 的起始位置,is_sop1_ptr[1:0] 提供第 2 个 TLP 的起始位置,is_sop2_ptr[1:0] 提供第 3 个 TLP 的起始位置,is_sop3_ptr[1:0] 提供第 4 个 TLP 的起始位置。
  • 所有其它设置均保留。

当不启用跨接选项时,是否使用该信号由客户来判断,因为新 TLP 始终在 m_axis_rc_tlast 断言有效后的节拍中开始。

69:68 is_sop0_ptr[1:0] 2 用于指示在此节拍中开始的第 1 个 TLP 的第 1 个字节的位置:
  • 00:字节通道 0
  • 01:字节通道 16
  • 10:字节通道 32
  • 11:字节通道 48

仅当在 RC 接口上启用跨接选项时,此字段才有效。否则,它永久设置为 0,因为 TLP 只能从字节通道 0 开始。

71:70 is_sop1_ptr[1:0] 2 用于指示在此节拍中开始的第 2 个 TLP 的第 1 个字节的位置:
  • 00:保留
  • 01:字节通道 16
  • 10:字节通道 32
  • 11:字节通道 48

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

73:72 is_sop2_ptr[1:0] 2 用于指示在此节拍中开始的第 3 个 TLP 的第 1 个字节的位置:
  • 00:保留
  • 01:保留
  • 10:字节通道 32
  • 11:字节通道 48

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

75:74 is_sop3_ptr[1:0] 2 用于指示在此节拍中开始的第 4 个 TLP 的第 1 个字节的位置:
  • 00、01 和 10:保留
  • 11:字节通道 48

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

79:76 is_eop[3:0] 4 此信号表示,仅当启用跨接时,1 个或多个 TLP 在此节拍中结束。这些输出在 TLP 的最后一个节拍中设置。设置如下:
  • 0000:没有任何 TLP 在此节拍中结束。
  • 0001:有单一 TLP 在此节拍中结束。is_eop0_ptr[3:0] 提供此 TLP 的最后一个 Dword 的偏移。
  • 0011:有 2 个 TLP 在此节拍中结束。is_eop0_ptr[3:0] 提供第 1 个 TLP 的最后一个 Dword 的偏移,is_eop1_ptr[3:0] 则提供第 2 个 TLP 的最后一个 Dword 的偏移。
  • 0111:有 3 个 TLP 在此节拍中结束。is_eop0_ptr[3:0] 提供第 1 个 TLP 的最后一个 Dword 的偏移,is_eop1_ptr[3:0] 提供第 2 个 TLP 的最后一个 Dword 的偏移,is_eop2_ptr[3:0] 提供第 3 个 TLP 的最后一个 Dword 的偏移。
  • 1111:有 4 个 TLP 在此节拍中结束。is_eop0_ptr[3:0] 提供第 1 个 TLP 的最后一个 Dword 的偏移,is_eop1_ptr[3:0] 提供第 2 个 TLP 的最后一个 Dword 的偏移,is_eop2_ptr[3:0] 提供第 3 个 TLP 的最后一个 Dword 的偏移,is_eop3_ptr[3:0] 提供第 4 个 TLP 的最后一个 Dword 的偏移。
  • 所有其它设置均保留。

当禁用跨接选项时,m_axis_rc_tlast 指示 TLP 的最后一个节拍。

83:80 is_eop0_ptr[3:0] 4 用于指示在此节拍中结束的第 1 个 TLP 的最后一个 Dword 的偏移。当 is_eop[0] 断言有效时,此输出有效。

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

87:84 is_eop1_ptr[3:0] 4 用于指示在此节拍中结束的第 2 个 TLP 的最后一个 Dword 的偏移。当 is_eop[1] 断言有效时,此输出有效。

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

91:88 is_eop2_ptr[3:0] 4 用于指示在此节拍中结束的第 3 个 TLP 的最后一个 Dword 的偏移。当 is_eop[2] 断言有效时,此输出有效。

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

95:92 is_eop3_ptr[3:0] 4 用于指示在此节拍中结束的第 4 个 TLP 的最后一个 Dword 的偏移。当 is_eop[3] 断言有效时,此输出有效。

仅当在 RC 接口上启用跨接选项时,才使用此输出。禁用跨接时,输出永久设置为 0。

96 discontinue 1 如果核在从其内部 FIFO 存储器读取 TLP 有效载荷时检测到不可纠正的错误,那么它会在 TLP 的最后一个节拍中断言此信号有效。当核发出此类错误信号时,客户应用必须丢弃整个 TLP。

当 TLP 不含有效载荷时,永远不会断言此信号有效。仅在有效载荷传输的最后一个节拍内(即 is_eop[0] 为高电平时)才会断言此信号有效。

启用跨接选项时,核如果在节拍中已断言 discontinue 信号,则不会启动新的 TLP。

当核配置为端点时,核也会使用高级错误报告 (AER) 向所连接到的根联合体报告此错误。

160:97 parity 64 512 位发射数据的奇校验。位 i 可提供针对 m_axis_cq_tdata 的字节 i 计算所得奇校验。