“PCIe DMA”选项卡 - 4.0 简体中文

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

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

“PCIe DMA”选项卡如下图所示。

图 1. “PCIe DMA”选项卡
“Descriptor Bypass for Read/Write (H2C/C2H)”(对应读取/写入的描述符旁路 (H2C/C2H))
有两个选项可供选择。
注释: 在此模式(内部模式)下,DMA 不会绕过任何 H2C 或 C2H 描述符。
“Descriptor bypass and Internal”(描述符旁路和内部)
在此模式下,启用旁路输出和旁路输入的描述符端口。根据上下文设置,可在描述符旁路输出上传出 H2C 或 C2H 描述符。用户可在描述符旁路输入端口上传入描述符。
“C2H Stream Completion”(C2H 串流完成)
“C2H Stream Completion Color bits”(C2H 串流完成颜色位)
完成条目中的完成颜色位的位置。对于 64 位完成,从位 0 到 511,有 7 个寄存器可用于编程。您可对这些位进行编程,并生成 BIT 文件。在 DMA 传输器件,输入管脚 s_axis_c2h_cmpt_ctrl_color_idx[2:0] 用于判定要使用的颜色位的位置。在寄存器 0 中选中默认位元位置 1。
“C2H Stream Completion Error bits”(C2H 串流完成错误位)
完成条目中的完成错误位的位置。对于 64 位完成,从位 0 到 511,有 7 个寄存器可用于编程。您可对这些位进行编程,并生成 BIT 文件。在 DMA 传输期间,输入管脚 s_axis_c2h_cmpt_ctrl_err_idx[2:0] 用于判定要使用的错误位的位置。在寄存器 0 中选中默认位元位置 2。
性能选项
“Pre-fetch cache depth”(预取高速缓存深度)
预取高速缓存最多支持 64 个队列。选择 16 或 64(默认 16)。预取高速缓存可以在任意给定时间支持相应数量的队列保持活动状态。当某一个活动队列为该队列的所有包完成提取并交付所有描述符后,它就释放高速缓存条目以供其它活动队列使用。高速缓存大小越大,支持的活动队列数量越多,但面积也将增大。
“CMPT Coalesce Max buffer”(CMPT 合并最大缓冲器)
完成 (CMPT) 合并最大缓冲器支持多达 64 个缓冲器。选择 16 或 32(默认 16)。CMPT 合并缓冲器的每个条目都会将多个完成(最多 64B)合并组成单个队列,然后再写入主机,从而改善带宽利用率。CMPT 合并缓冲器越深,可合并的队列数就越多,但缺点是会增大面积。
“Data Protection”(数据保护)
包括奇偶校验和端到端数据保护。默认情况下,不启用数据保护。

不启用“Data Protection”时:

  • 无需在 C2H 数据和控制接口上提供任何 CRC/ECC 值。
  • 这将不会记录任何错误,也不会丢弃任何数据包。
  • 用户应将 ECC 和 CRC 端口接地。
  • CMPT 奇偶校验不受此参数影响。
    注释: 您必须始终在 CMPT 上提供奇偶校验。
启用“Data Protection”时:
  • 您必须在 C2H 数据和控制接口上发送 CRC/ECC 值。
  • 如有任何 ECC 或 CRC 错误,将记录错误位并将数据包发送给主机。
  • 如果启用错误中断,则将向主机发送中断。
  • FATAL 错误可在 QDMA_C2H_FATAL_ERR_ENABLE 寄存器中启用。
    • QDMA_C2H_FATAL_ERR_ENABLE[0]:如果该位完成置位,那么发生错误后将丢弃所有包。
    • QDMA_C2H_FATAL_ERR_ENABLE[1]:如果该位完成置位,那么奇偶校验将反相,并向 PCIe 发送错误包。