Aufgrund eines Problems mit der AVMM-DMA-Variante der Hard IP für PCI Express Core® können Datenbeschädigungen oder Deskriptoren auftreten, die nie abgeschlossen werden (Done Bit ist nie gesetzt). Dies betrifft nur Designs, die einen externen DMA-Beschreibungen-Controller verwenden. Das intern instanziierte Controller-Design ist voll funktionsfähig.
Dieses Problem kann sporadisch sein und kann nur auftreten, wenn eine große Anzahl von Beschreibungen von hinten programmiert sind.
Hinweis des Autors: Dies kann bearbeitet werden, erfordert aber die Bearbeitung einer Datei in der Quartus-Installation, was ich nicht empfehlen möchte.
Dieses Verhalten wird durch eine falsche Einstellung der bereit stehenden Latenzen der dma_rd_master und dma_wr_master-Beschreibungen-Programmierschnittstellen verursacht.
Diese werden in der "Avalon-MM-DMA-Blockdiagramm mit externer DMA-Beschreibungsübersicht" im Benutzerhandbuch als rd_ast_rx und rd_ast_tx Schnittstellen angezeigt. Insbesondere RdAstRxReady_o WrAstTxReady_o in den Tabellen "Descriptor Instruction Interface from Descriptor Controller to Read (Write) DMA Engine".
Die bereite Latenz für diese Signale ist fälschlicherweise auf 0 gesetzt, wenn der korrekte Wert 3 sein sollte.
Dieses Problem wird voraussichtlich in einer zukünftigen Version der Quartus® Prime Software behoben werden.