SOPC Builder で利用可能な DMA コントローラーは、ソース・コンポーネントまたはデスティネーション・コンポーネントのいずれかが waitreが発生すると停滞し、DMA コントローラーの FIFO が空または完全なステータスに達します。 また、DMA が SSRAM やオンチップメモリーなどの低レイテンシー・コンポーネントからの読み出しを実行する際にも既知の問題があります。 DMA コントローラーの内部レイテンシーが DMA リードマスターに接続されているコンポーネントの読み込みレイテンシーより大きくなることがあり、転送スループットが低下します。
この問題は、DMA リードマスターに接続されているコンポーネントのレイテンシーが 0 ~ 3 クロックサイクルの場合に発生します。 転送スループットを向上させるために、DMA リードマスターに接続されているコンポーネントの読み込みレイテンシーを増加させます。 コンポーネントに読み取りレイテンシー設定がない場合、DMA リードマスターとコンポーネントの間にパイプライン・ブリッジを挿入することで、レイテンシーを増加させることができます。 パイプライン・ブリッジを連結して、1 つのコンポーネントに複数のリード・レイテンシーのクロックサイクルを追加できます。
パイプライン・ブリッジを追加する場合、ブリッジ・スレーブ・アドレスを 0x0 に設定することをお勧めします。 これにより、システムのアドレス空間が変更できなくなります。 トライステート・ブリッジに接続されているコンポーネントの読み込みレイテンシーを高めるために、トライステート・ブリッジ設定で追加のレジスターを有効にして、リード・レイテンシーを 1 クロックサイクル増加させることができます。