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


von Tobias D (Gast)


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

von Gorgonzola (Gast)


Lesenswert?

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

von Brutus (Gast)


Lesenswert?

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

von Tobias D (Gast)


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?

von Sven Johannes (Gast)


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

von Tobias D (Gast)


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.

von Klaus F. (kfalser)


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

von FPGA-User (Gast)


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 ;-)

von Sven Johannes (Gast)


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

von The Daz (Gast)


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.

von Dirk (Gast)


Lesenswert?

Hi,

ein SDRAM Memory Controller zuprogrammieren ist kein Anfängerprojekt.

Gruß,

Dirk

von Christoph Kessler (Gast)


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.

von commander (Gast)


Lesenswert?

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

von Christoph db1uq K. (christoph_kessler)


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

von Fpgakuechle K. (Gast)


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

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.