Forum: FPGA, VHDL & Co. Adreßgenerierung bei DDR-SDRAM


von ohma (Gast)


Lesenswert?

Hallo zusammen,

ich hab mal ne Frage zu der Speicheradressierung von DDR-SDRAM.
Ich will die Speicher mit Burst-Mode 4 fahren.
Wie muss die Adressierung z.B. beim schreiben aussehen?
Muss ich die Adresse für jeden Schreibburst dann immer um 2 Hochzählen, 
oder macht das der Speicherbaustein alleine, so dass ich immer nur um 1 
hochzählen muss?

Zu meinem Projet:

Ich will nen DDR-Speicher an ein Virtex5 anbinden, um Videodaten zu 
speichern. Da Videodaten immer schön hintereinander kommen und auch 
geliefert werden müssen, brauche ich keinen wahlfreien Zugriff auf den 
Speicher.
Dazu hab ich mir mit dem MIG von Xilinx einnen DDR-Controller gebaut und 
auch schon implementiert - funktioniert auch schon mit den von Xilinx 
gelieferten Testbenches....
Nur versteh ich die Adressierung bei DDR nicht so ganz...

von Michael (Gast)


Lesenswert?

Hallo Ohma,

heißer Tip für solche Fragen - schau in das Datenblatt!

Beispiel:
Xilinx Application Note beschreibt DDR-SDRAM Interface und benennt 
Module von Micron:
www.xilinx.com/support/documentation/application_notes/xapp858.pdf

Kurze Suche bei Micron liefert z.B. 2GB Chip (weiß ja nicht was Du 
nimmst):
http://download.micron.com/pdf/datasheets/dram/ddr2/2gbddr2.pdf

Seiten 75 - 78 beschreiben die Adressierungsreihenfolge für Burst 4 und 
Burst 8 Modus. -> Du gibst meines Verständnisses die Vollständige 
Adresse an, und kannst bei den nachfolgenden Lesezugriffen ohne neue 
Adresseirung die restlichen Bytes lesen. Vorsicht! Der SD-Controller 
zählt aber nicht konsequent weiter sonder inkrementiert nur die 
untersten 2 (Burst 4) oder 3 (Burst 8) bits! Beispiel: Du möchtest die 
Adresse 0x555500 lesen in Burst 4 wird gesendet:
0x555500
0x555501
0x555502
0x555503

ABER, lesen bei 0x555501  liefert folgendes:
0x555501
0x555502
0x555503
0x555500

Ab Seite 93 und Folgende sind Timings für Lesezugriffe (auch 
Burstzugriffe) abgebildet.


Demnächst bitte selber suchen!
Michael

von ohma (Gast)


Lesenswert?

Hallo Michael,

vielen dank für deine Erklährung...
Ich das entsprechende Datenblatt von Micron sehr wohl gelesen, aber 
diese entscheidende Stelle überlesen oder nicht korrekt registriert.
Aber ich verstehe das so, dass ich nur meine Adresse um 4 inkremtieren 
muss(bei Burst = 4).
Also:
Adresse 0x555500 lesen in Burst 4 wird gesendet:
0x555500 diese Adresse sende ich
0x555501 wird automatisch inkrementiert
0x555502 wird automatisch inkrementiert
0x555503 wird automatisch inkrementiert
0x555600 ist meine nächste leseadresse

Vielen Dank für deine Hilfe, ich werd das gleich mal ausprobieren.....

von Gast (Gast)


Lesenswert?

Michael, hier erkläre ich Dich zum Sucher des Monats!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.