Ja. Wenn die Zurück-bis-Zurück-Lesezugriffe ausgeführt werden, bei denen der Chip Änderungen zwischen den Zugriffen wählt und die Zeile in der zweiten CS bereits geöffnet ist, besteht das Potenzial für einen Bus-Streit. Nachfolgend finden Sie eine Situation, in der Streit auftreten kann, wo ACT = Aktivieren und RD = LESEN:
DDR-Seite
AKT A
RD A
AKT B
RD B
RD A
Lokale Seite
Lesen Sie Zeile A in CS1
Zeile B in CS2 lesen
Lesen Sie Zeile A in CS1
Der Controller erkennt, dass die Zeile beim zweiten Lesen in Zeile A bereits geöffnet ist. Daher ist kein ACT erforderlich. Unten finden Sie ein Diagramm, das die dqs-Signale zeigt, die die Lesedaten begleiten, während sie vom Speicher in den FPGA zurückgeführt werden (an dem Punkt, an dem RD B sofort von RD A gefolgt wird).
Das Ergebnis ist, dass das Lesen von CS2 verloren geht. Die Lösung besteht darin, ein NOP wie folgt einzulegen:
DDR-Seite
AKT A
RD A
AKT B
RD B
NOP
RD A
Lokale Seite
Lesen Sie Zeile A in CS1
Zeile B in CS2 lesen
nop (die Anfrage für 1 Zyklus nicht geltend machen)
Lesen Sie Zeile A in CS1
Für v1.2.0 des Altera DDR SDRAM Controller-Kerns muss dies vom Benutzer erfolgen. Für v2.0 des Kerns erfolgt dies automatisch und wird für den Benutzer transparent.