如果源或目的地组件声称等待等待,导致 DMA 控制器中的 FIFO 达到空状态或完整状态,SOPC Builder 中可用的 DMA 控制器便会停顿。 当 DMA 执行来自低延迟组件(如 SSRAM 或片上内存)的读取时,也存在一个已知问题。 DMA 控制器的内部延迟有时会大于连接到 DMA 读取主的组件的读取延迟,从而导致传输吞吐量下降。
当连接到 DMA 读取主的组件具有 0-3 时钟周期的延迟时,便会发生此问题。 要提高传输吞吐量,提高连接到 DMA 读取主的组件的读取延迟。 如果组件没有读取延迟设置,您可以通过插入 DMA 读取主和组件之间的管道网桥来增加延迟。 管道桥可以一起链起来,为组件添加一个以上的时钟周期的读取延迟。
添加管线桥时,建议将桥从地址设置为 0x0。 这将阻止您的系统的地址空间发生变化。 为提高连接到三态桥的组件的读取延迟,可以在三态桥设置中启用额外寄存,以将读取延迟增加一个时钟周期。