www.mikrocontroller.net

Forum: FPGA, VHDL & Co. SDRAM Controller selbst programmiert


Autor: Tobias D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe gerade ein Projekt laufen, bei dem ein SDRAM Controller auf
einen Xilinx Virtex FPGA beschrieben werden soll. Ich habe das
Datenblatt des Controllers und habe wus der ISE Software ein Beispiel
für einen SDRAM Controller gefunden. Meine Frage lautet jetzt, daß ich
nicht so genau weiß wie ich anfangen soll, um das Beispiel des SRDAM
Controllers so umzuschreiben, daß es für meinen SDRAM Baustein paßt.
Ich hoffe ich habe mein Problem verständlich geschrieben unnd hoffe auf
Hilfe, für die ich mich im voraus schon mal bedanken will.

MfG Tobias

Autor: Gorgonzola (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du ein 'Projekt' am laufen hast, wieso willst du dann, dass
andere das für dich ausführen ??

Autor: Brutus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo harperts denn genau??? Das Problem ist verständlich, aber wo bleibst
du hängen?

Autor: Tobias D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Gorgonzola

Das Projekt sollen nicht andere für ausführen, sondern ich möchte
einfach mal einen Ansatz haben, wo ich anfangen soll.

@Brutus

Naja, mein Problem ist, daß das Beispielprojekt ziemlich komplex ist
und ich nicht genau weiß an welcher Stelle ich ansetzen soll, um dieses
Projekt auf meinen konkreten Chip anzuwenden. Z.B. Soll ich zuerst die
Ports ändern odre zuerst versuchen zu verstehen wie das Beipielprojekt
arbeitet oder versuchen zu verstehen was ich für meinen Controller
benötige?

Autor: Sven Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin...

Wenn du dich auf eine XAPP beziehst, pass ersteinmal ganz genua auf ob
da nicht irgendwelcher Schrott drin ist. Dann die XAPP implementieren
und simulieren. VHDL Modelle gängiger RAM-Module gibts z.B. bei Micron.


Wenn das dann läuft mußt du generell "nur" noch den Datenpfad so
breit machen wie du ihn brauchst. Die Statemachine ist normalerweise
soweit dokumentiert das man durchkommt. Der Rest ist dann
Constraints-verbiegen und den Mapper verfluchen...

Bei konkreten Fragen, nachfragen.

--
 Sven Johannes

Autor: Tobias D (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Sven,

der SDRAM Baustein auf dem Eval Board ist von Micron. Ich wußte halt
nicht so wirklich wie man anfängt den auf meine speziellen Anfordrungen
anzupaßen. Ich werde es mal versucehn und bei Problemen noch mal fragen.
Danke schonmal.

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es hängt ein bischen damit zusammen was dein SDRAM Controller können
muß, also ob Burst Zugriff, verschachteltes Lesen/Schreiben auf
verschieden Bänken , usw.
Im einfachsten Fall brauchst Du nur :
- einen einfachen Schreibzugriff (Sequenz : Activate Row, Write,
Precharge)
- einen einfachen Lesezugriff (Sequenz : Activate Row, Read,
Precharge)
- Refresh

Das Datenblatt der Micron SDRAM's ist meistens sehr ausführlich und
erklärt die einzelene Zugriffe genau. Zeichne dir die Zugriffe bei
deiner Taktfrequenz auf, und implementiere diese als State-Machine.
Ist nicht zu kompliziert.
Es gibt auch eine Application Note von Xilinx aber diese ist wirklich
komplett unverständlich und der beigelegte VHDL Code etwas vom
schrecklichsten das ich je gesehen habe.

Grüße
Klaus

Autor: FPGA-User (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

zum Thema XILINX XAPPs/Example-Designs kann ich mich nur anschließen:
ganz genau lesen und prüfen, was da gemacht wird !
Beispiel : XAPP 339 (Manchester Encoder/Decoder)

- ist so besch... formatiert, dass kein Mensch das lesen kann
- Design ist asynchron (!) -> was nirgends erwähnt wird
- Source-File schlecht gegliedert -> Verhalten schwer zu
  durchschauen
- es werden Dinge vorausgesetzt, die nicht oder nur ganz kurz
  im XAPP erwähnt werden, z.B.
  * ein Startbit '0' muss immer vorhanden sein, sonst synchronisiert
    es nicht
  * Synchronisation nur auf die erste Flanke, wenn diese nicht
    richtig erkannt wird, dann sind alle bits falsch
.....
da fällt mir nicht mehr viel ein ;-)

Autor: Sven Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin...

da kann ich über. War eine XAPPc, also die confidential, nur gegen
Registrierung blahblah. Hatte ich als Arbeitsvorlage für meinen
DDR-SDRam Controller.

In jedem Datenblatt steht das am Anfang das cen Bit 0-1 springen MUSS.
Die Welt darf untergehen, Timing vermurksen, alles egal, nur dieses Bit
muss springen. Die Statemachine auskodierung der Signale war auch
richtig aufgebaut, nur der State mit dem Sprung wurde per Kommentar, in
einem völliganderen file (!) niemals ausgewählt. An noch andere Stelle
wurde das Signal auf Dauer 1 gelegt. Also nicht mal zu merken, wenn man
sich nicht die ersten 10µs genau ansieht...

Danke.

--
 Sven Johannes

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist so ein SDRAM controller prinzipiell ein Anfaenger-geeignetes Projekt
? Wuerde gerne meine alten SDRAM Module wiederverwenden und habe mich
mal ein bischen in die Specs eingearbeitet. Was mir allerdings
hoellischen Respekt einfloesst, ist die Skew/Jitter-Problematik.

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ein SDRAM Memory Controller zuprogrammieren ist kein Anfängerprojekt.

Gruß,

Dirk

Autor: Christoph Kessler (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich fürchte auch, fertige Projekte sind zu universell, und damit
aufwendig. Zugriffe wahlweise 8  16  32 / 64 Bit oder ähnliches
braucht man nicht, wenn nur eine VGA-Grafik mit 16 Bit/pixel gebaut
werden soll. 1981 hab ich mal einen digitalen Bildspeicher zum Empfang
von slow-scan-TV und Ausgabe als TV-Videosignal gebaut. Damals waren
das 4* 16kbit-DRAMs mit Zugriffszyklen von 300 nsec für 30 DM pro
Stück, nur mittels "Page-mode" kam man auf die benötigten 250 nsec.
Ähnliche serielle Zugriffe auf fortlaufende Adressen haben auch heutige
SDRAM, das spart immer noch Zugriffszeit. Außerdem kann man bei
geschickter Adressierung den Refresh nebenbei erledigen.

Autor: commander (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wie kann ich bei micron die vhdl-codes runterladen, wo gibt es die 
da?

Autor: Christoph Kessler (db1uq) (christoph_kessler)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
www.micron.com Suchfunktion Keyword: VHDL :
FAQs

Does Micron provide VHDL models for modules?
Micron does not provide VHDL models for modules. We have focused our 
modeling resources on higher utilized modeling standards such as IBIS, 
Verilog, and HSPICE.

Does Micron provide VHDL models for DDR parts?
No. Micron no longer supports VHDL models. We can, however, provide a 
generic 8 Meg x 8 model (MT46LC8M8) that can be scaled to the desired 
model dimensions. It’s a good starting point for building a compatible 
DDR model. To obtain this file, contact your Micron representative or a 
Micron applications engineer.

Are Verilog models available for Micron modules?
Verilog models can be created for DDR and DDR2 modules by using a 
Micron-provided wrapper in conjunction with Verilog models of the DRAM 
components used on the specific module you are interested in. Please 
e-mail DRAM Support to receive the wrapper and instructions via e-mail.

Es gibt allerdings VHDL-Code für Flash-Speicher wenn ich recht gesehen 
habe

Autor: Fpga Kuechle (fpgakuechle) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hynix hat(hatte) VHDL für SDRAM chips, schau mal dort. Da die 
funktionall kompatibel zu Micron sind verwende ich Hynix modelle auch 
für Micron chips.

FPGAküchle


Christoph Kessler wrote:
> www.micron.com Suchfunktion Keyword: VHDL :
> FAQs
>
> Does Micron provide VHDL models for modules?
> Micron does not provide VHDL models for modules. We have focused our
> modeling resources on higher utilized modeling standards such as IBIS,
Speicher wenn ich recht gesehen
> habe

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.