Bei der Verwendung von DDR-SDRAM-Controllern (1/2/3) in Altera® SOPC Builder können Datenbeschädigungen auftreten. Dies wird durch die Burst-Leitung verursacht, die vom SDRAM-Controller und den SOPC Builder Burst-Adaptern verwendet wird, da der SDRAM-Controller-Slave-Port nicht an einen sequentiellen Bursting-Master-Port angepasst werden kann. Die Burst-Begrenzung eines beliebigen Slave-Ports kann mit der folgenden Formel bestimmt werden:
Slave Burst Boundary Size [Bytes] = Slave-Datenbreite [Bytes] * Slave maximale Burst-Länge [slave]
Wenn Sie beispielsweise den DDR SDRAM-Controller für eine x16-Burst-Länge von 4 Geräten verwenden, beträgt die Burst-Begrenzungsgröße 8 Byte. Wenn ein sequentieller Burst-Master eine Burst-Lese- oder Schreibtransaktion in den Speicher startet, ohne an einer 8-Byte-Begrenzung zu beginnen, tritt eine Datenbeschädigung auf. Wenn der Master eine 2-Takt-Burst-Transaktion auf Byte Address 4 dieses Speichers postet, greift er während des ersten Takts auf Byte 4-7 und Byte 0-3 auf den zweiten Takt zu (anstelle von Adressen 8-11).
Um diese Datenschädigung zu vermeiden, können Sie Folgendes verwenden:
- Richten Sie Übertragungen immer mit der oben stehenden Formel an den Burst-Grenzen des Slave-Ports aus.
- Gestalten Sie Ihren Master so, dass er Bursts im 1-Takt-Takt postiert, bis die nächste Master Burst-Begrenzung erreicht ist.
- Deaktivieren Sie die Burst-Unterstützung Ihres Master- oder Slaves. Bei den leistungsstarken DDR SDRAM-Controllern können Sie auch den Halbratenmodus verwenden, um Burst-Unterstützung zu vermeiden.