完成条目结构 - 4.0 简体中文

QDMA Subsystem for PCI Express v4.0 产品指南 (PG302)

Document ID
PG302
Release Date
2022-05-20
Version
4.0 简体中文

完成 (CMPT) 环条目的大小为 512 位。这包括用户定义的数据、可选错误位和可选颜色位。用户定义的数据有 4 种大小选择:8B、16B、32B 和 64B。CMPT 条目中可选错误位和颜色位的位置均可单独配置。这是通过在编译 QDMA Subsystem for PCIe 时,使用 Vivado® IDE IP 自定义选项指定这些字段的位置来完成的。有七个颜色位位置选项和八个错误位位置选项可选。位置是按距离完成条目的 LSB 位的偏移量的形式来指定的。

用户应用将完成包驱动到 QDMA Subsystem for PCIe 中时,它会在接口处提供一个 s_axis_cmpt_ctrl_col_idx[2:0] 值和一个 s_axis_cmpt_ctrl_err_idx[2:0] 值。这些索引供 QDMA Subsystem for PCIe 用于使用颜色位和错误位的正确位置。例如,如果 s_axis_cmpt_ctrl_col_idx[2:0] = 0s_axis_cmpt_ctrl_err_idx[2:0] = 1,那么 QDMA Subsystem for PCIe 使用C2H Stream Completion Color bits(C2H 串流完成颜色位)位置选项 0 表示颜色位置,并使用C2H Stream Completion Error bits(C2H 串流完成错误位)位置选项 1 表示错误位置。颜色或错误信号的索引为 7 表示更新完成条目时,DMA 不会更新对应的颜色位或错误位(忽略这些字段)。在 Vivado® IDE 的“PCIe DMA”选项卡中设置 C2H 串流完成位选项。

在编译时使用的错误位和颜色位的位置值可供软件用于读取 MMIO 寄存器。有 7 个寄存器可供读取:QDMA_C2H_CMPT_FORMAT (0xBC4) 到 QDMA_GLBL_ERR_MASK (0x24C)。其中每个寄存器中都各有一个颜色位位置和一个错误位位置。

  • C2H 串流完成位的对应颜色位位置的选项 0 和对应错误位位置的选项 0 均可通过 QDMA_C2H_CMPT_FORMAT_0 寄存器来使用。
  • C2H 串流完成位的对应颜色位位置的选项 1 和对应错误位位置的选项 1 均可通过 QDMA_C2H_CMPT_FORMAT_1 寄存器来使用。
  • 以此类推。
表 1. 完成条目结构
名称 大小(位) 索引

针对 64 字节的用户定义的位设置

510-512 取决于是否存在颜色位和错误位。

针对 32 字节的用户定义的位设置

254-256 取决于是否存在颜色位和错误位。

针对 16 字节的用户定义的位设置

126-128 取决于是否存在颜色位和错误位。

针对 8 字节的用户定义的位设置

62-64 取决于是否存在颜色位和错误位。
错误   错误位的位置由寄存器 QDMA_C2H_CMPT_FORMAT_0 (0xBC4) 到 QDMA_C2H_CMPT_FORMAT_6 (0xBDC) 定义。这些寄存器可显示在 IP 生成期间用户定义的颜色位的位置。您可根据输入 CMPT 端口 s_axis_c2h_cmpt_ctrl_err_idx[2:0] 索引到该寄存器内。您可选择不包含错误位(索引值 7)。在此情况下,用户定义的数据会占用该空间
颜色   颜色位的位置由寄存器 QDMA_C2H_CMPT_FORMAT_0 (0xBC4) 到 QDMA_C2H_CMPT_FORMAT_6 (0xBDC) 来定义。这些寄存器可显示在 IP 生成期间用户定义的颜色位的位置。您可根据输入 CMPT 端口 s_axis_c2h_cmpt_ctrl_col_idx[2:0] 索引到该寄存器内。如果不包含颜色位(索引值 7),则用户定义的数据会占用该空间。