Der in SOPC Builder verfügbare DMA-Controller wird zum Stillstand kommen, wenn entweder die Quell- oder Zielkomponenten waitrequest behaupten, was dazu führt, dass der FIFO im DMA-Controller einen leeren oder vollständigen Status erreicht. Es gibt auch ein bekanntes Problem, wenn die DMA Leseleistung von Komponenten mit niedriger Latenz wie SSRAM oder On-Chip-Speicher durchführt. Die interne Latenz des DMA-Controllers ist manchmal größer als die Leselatenz der Komponente, die mit dem DMA-Lese-Master verbunden ist, was den Übertragungsdurchsatz beeinträchtigt.
Dieses Problem tritt auf, wenn die mit dem DMA-Lese-Master verbundene Komponente eine Latenz von 0 bis 3 Taktzyklen hat. Um den Übertragungsdurchsatz zu verbessern, erhöht sich die Leselatenz der Komponente, die mit dem DMA-Lese-Master verbunden ist. Wenn die Komponente keine Leselatenzeinstellung hat, können Sie die Latenz erhöhen, indem Sie Pipeline-Bridges zwischen dem DMA-Lese-Master und der Komponente einfügen. Pipeline-Bridges können miteinander verbunden werden, um einer Komponente mehr als einen Taktzyklus Leselatenz hinzuzufügen.
Beim Hinzufügen der Pipeline-Bridge(en) wird empfohlen, die Bridge-Slave-Adresse auf 0x0 zu setzen. Dadurch wird verhindert, dass sich der Adressbereich Ihres Systems ändert. Um die Leselatenz einer mit der Tri-State-Bridge verbundenen Komponente zu erhöhen, können Sie in den Tri-State-Bridge-Einstellungen eine zusätzliche Registrierung aktivieren, was die Leselatenz um einen Taktzyklus erhöht.