完成引擎 - 5.0 简体中文

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

Document ID
PG302
Release Date
2023-10-18
Version
5.0 简体中文

完成引擎会写入 CMPT 队列中的 C2H AXI4‑Stream 完成 (CMPT)。用户应用会将 CMPT 包和其他信息(包括但不限于 CMPT QID 和 CMPT_TYPE)发送至 QDMA Subsystem for PCIe。QDMA 会使用此信息来处理 CMPT 包。您可指示 QDMA 将 CMPT 包保持不变,直接写入 CMPT 队列。或者,用户应用可以指示 QDMA 在 CMPT 包中先插入某些字段(如错误和颜色),然后再将其写入 CMPT 队列。此外,用户应用可使用 CMPT 接口信号指示 QDMA 按特定方式(相对于 C2H 数据输入上的流量)对 CMPT 包的写入进行排序。尽管并非强制要求,但 CMPT 通常搭配 C2H 队列一起使用。在此情况下,CMPT 用于告知软件,C2H 的 DMA 所使用的 C2H 描述符已达到一定数量。这样软件即可回收 C2H 描述符。CMPT 也可以在没有对应 C2H DMA 操作的情况下使用,在此情况下,它被称为即时数据。

CMPT 包的用户定义部分通常需要指定传输的数据包的长度,以及数据包传输是否会耗用描述符。即时和标记类型的数据包不耗用任何描述符。用户定义的数据的具体内容由用户来判定。
注释: 为了保留一定裕度,设计会从 CSR 编程的最大缓冲器大小(0xB50,位 [31:26])中减去若干条目。将 CSR 编程为 0(默认值)后,可能发生上溢,程度因仿真器或综合工具而异。将 0xB50 位 [31:26] 设为最大值 63 即可避免上溢。