www.mikrocontroller.net

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


Autor: ohma (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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/ddr...

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

Autor: ohma (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.....

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael, hier erkläre ich Dich zum Sucher des Monats!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.