mikrocontroller.net

Forum: FPGA, VHDL & Co. DDR SDRAM


Autor: Sebastian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich besitze ein Spartan3E und wage mich gerade an die Ansteuerung eines 
DDR SDRAM's(Micron512Mb).Anschließend muss ich in den RAM geschriebene
Werte in irgendeine Weise auf dem Rechner ausgeben(als Hex oder
Textdatei mit RS232 o.ä.).
Nun merke ich gerade beim Durchlesen der Datenblätter des RAM's,das die 
Umsetzung in VHDL keine so einfache Sache wird.Ohne Referenzen oder
Beispielprojekte sehe ich da schwarz.
Vielleicht gibt es ja jemanden der Lust hat mir zu helfen.Wäre sehr
dankbar dafür.



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

Bewertung
0 lesenswert
nicht lesenswert
Da gibts ein Projekt auf Opencores, DDR SDRAM Controller:
http://www.opencores.org/projects.cgi/web/ddr_sdr/overview

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe auch das S3E Board, und habe in dem Zusammenhang einen eigenen
DDR Controller geschrieben.

Er bietet nach "innen" einen 64Bit Wishbone Bus mit 66MHz, nach aussen
entprechend 133MHz DDR bei 16 Bit Breite.

Dokumentation fehlt noch, ebenso wie ein kleiner, einfacher Test-Case 
und ein paar optimierungen. Aber er funktioniert zusammen mit Leon3 in 
einem kompletten SoC auf dem Board.

Siehe:

https://roulette.das-labor.org/trac/browser/vhdl/T...


  j.


Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier hat jemand den OC Controller für das Spartan Board angepasst:

http://www.xdr.com/dash/fpga/

Dann gibt es in der Xilinx Memory Corner noch einen Controller.

Autor: Holger M. (nezaya)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin

An der Ansteuerung des DDR SDRAM's auf dem Spartan3E Kit, bin ich auch 
gerade dran.

Prinzipiell hatte ich vor den LA von Sump [1], auf das Spartan 3E Kit zu 
portieren. Allerdings komme ich im Moment aus Zeitgründen nicht wirklich 
vorran.

Bei Xilinx gibt es nach Anmeldung einen Memory Interface Generator. Ich 
hab ihn mir zwar noch nicht näher angesehen, aber angeblich soll der ein 
Interface zur einfachen Ansteuerung des SDRAM erzeugen können.

Holger M.

[1] 100/200 MHz Logikanalysator (Spartan 3, SRAM)
Beitrag "100/200 MHz Logikanalysator (Spartan 3, SRAM)"

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Den MIG von Xilinx habe ich ausprobiert. Habe den Code weder verstanden, 
noch ihn zum funktionieren gebracht -- habe es wirklich versucht.
Man beachte auch 
http://groups.google.com/group/comp.arch.fpga/brow...


Habe meinen eigenen Controller mal aus dem SoC-Design rausoperiert und 
einem Testcase hinzugetan: 
https://roulette.das-labor.org/trac/wiki/wb_ddr

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zumindest bis MIG 1.5 gibt es mit dem Spartan3e Board Probleme (der 
generierte Code läuft nicht ohne Anpassungen). Version 1.6 soll 
zumindest Verilog-Code erzeugen können. Für VHDL gibt es deshalb ein 
Archiv das  vorgenerierte und angepasste Controller enthält. Einfach mal 
nach "s3e_starter_revd_mig_ddr[1].zip" googeln. Es gibt hier im Forum 
auch einen Thread darüber.

Autor: Marko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi, hat zwar nicht direkt mit dem Thema zu tun,
aber ich hab gester nen uralten EDO-RAM am Mega16
in Betrieb genommen. SIMM30, 2 Ports des µC wurden
verwendet, 1MB RAM.
Es wird zwar in den Dokus immer von Refresh im ms
Bereich geschrieben, aber hab durch Versuche ermittelt,
das man ohne Probleme bzw. Datenverluste mehrere Sekunden
warten kann ohne das ein Bit verloren geht.
5-6 Sekunden sind auf alle Fälle drin.
Ansteuerung mäßig schwierig, Kosten lachhaft.
Hab 27 Bausteine für € 1,99 erstanden.

Autor: Loki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Jörg: Diese links zur "labor..." führen bei mir zu keiner URL. (?)

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Loki:
  Verstehe ich nicht - die Links funktionieren bei mir einbahnfrei.
  Was passiert denn bei dir? Timeout, oder Fehler vom Server?

Autor: Loki (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es besteht ein Problem mit dem Sicherheitszertifikat der Website.

Das Sicherheitszertifikat dieser Website wurde nicht von einer 
vertrauenswürdigen Zertifizierungsstelle ausgestellt.

Die Sicherheitszertifikatprobleme deuten eventuell auf den Versuch hin, 
Sie auszutricksen bzw. Daten die Sie an den Server gesendet haben 
abzufangen.
  Es wird empfohlen, dass Sie die Webseite schließen und nicht zu dieser 
Website wechseln.

Wenn Sie zu dieser durch einen Link weitergeleitet wurden, dann 
überprüfen Sie die Websiteadresse in der Adressleiste, um 
sicherzustellen, dass dies die erwartete Adresse ist.
Wenn Sie zu Websites wie https://example.com wechseln, versuchen Sie 
"www" zu der Adresse hinzuzufügen (https://www.example.com).
Geben Sie keine persönlichen Informationen auf der Website an, wenn Sie 
diesen Fehler ignorieren und den Vorgang fortsetzen.

Weitere Informationen erhalten Sie unter "Zertifikatfehler" in der 
Internet Explorer-Hilfe.

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hat der IE schon recht -- der Server benutzt https, hat aber kein 
teures, offizielles Zertifikat dem Microsoft vertraut.
Mein Zertifikat kommt von  CaCert.org; die beglaubigen, dass der Rechner 
meiner ist -- nur vertraut der IE per default den CaCert Leuten nicht, 
daher die Warnung.


Du kannst an der Stelle ganz beruhigt OK klicken und weitermachen, die 
Verbindung wird sogar auch verschluesselt.

  j.


 * Siehe auch http://www.ccc.de/https/



Autor: fpga (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe versucht den code von Joerg 
(https://roulette.das-labor.org/trac/browser/vhdl/T...) 
in mein s3e-starter zu bringen.
Doch leider bekomme ich beim "implement design" immer folgende 
Fehlermeldung:
"ERROR:LIT:421 - DCM symbol "ctrl0/dcm0/dcm0" (output 
signal=ctrl0/dcm0/clk0u)"

online Hilfe von xilinx:
http://www.xilinx.com/xlnx/xil_ans_display.jsp?iLa...

Da steht:"You can disable this error message by setting the environment 
variable XIL_MAP_ALLOW_VARIABLE_CLKOUT_PHASE_SHIFT" <-- wie geht das 
genau?

kennt jemand eine Lösung für dieses problem?

Autor: Joerg (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Interessant; ich wusste nicht dass sich die S3E DCMs von den S3 DCMs 
unterscheiden -- mir ist nur aufgefallen, dass das Overflow Statusbit 
nie gesetzt wurde. Meine ISE Versionen haben auch nie ein Wort darueber 
verloren...

Also unter Linux setzt du die Environment Variable mit  "export 
XIL_MAP_ALLOW_VARIABLE_CLKOUT_PHASE_SHIFT=1" bevor du ISE startest.
Bei Windows weiss ich es nicht genau -- glaube das ist in den 
Programm-Eigenschaften: also rechts Klick auf das ISE Icon und dort 
suchen.

Es gibt aber noch eine Alternative: Bei dem S3E Board brauchst du den 
Variablen-Phase-Shift gar nicht -- ich habe die richtige 
Phasenverschiebung schon eingetragen. Du kannst also in DDRDCM.vhd in 
Zeile 93 CLKOUT_PHASE_SHIFT => "VARIABLE" auf "FIXED" umstellen.


  j.

Autor: Frager (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gibt es den doanload noch? Bei mir kommt ein Seitenfehler ...

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.