Hallo! Über DDR2 Ansteuerung wurde schon viel debattiert, ich möchte hier meine Fragen doch posten - auch auf die Gefahr hin auf Google verwiesen zu werden. Hat jemand von euch schon mal einen DDR2 Controller für das Spartan-3E Starter Kit implementiert? ISE hegt kein Interesse daran meine ODDR2s und IDDR2s zu platzieren. Ich verwende nur die Constraints aus dem UG230. Der Scratch DDR2 Controller, verwendet wenigstens die ODDR2s. Mir ist auch klar, dass ich einigen Hirnschmalz investieren müsste, um dann das Timing hinzukriegen. Bisherige Versuche gingen schief. Das Plasma Projekt auf OpenCores verwendet, so wie ich das verstanden habe ein Taktsignal von nur 25 MHz (und ein 50MHz Signal). Dazu muss wohl dieses ominöse DLL deaktiviert sein. Was also ist DLL (Delay Locked Loop??)? Wo finde ich bitte Timing Parameter wenn DLL deaktiviert ist? Code hab ich jetzt mal keinen, da irgendwie gar nichts mehr funktioniert. Freu mich auf rege Anteilnahme :)
Also um einen DCM (im Spartan 3e ist da eine DLL drin) wirst du nicht herumkommen. Für die DDR2 RAM Ansteuerung brauchst du 90° phasenverschobene Takte. Hast du denn mal den MIG aus dem Xilinx Core Generator benutzt?
MIG hab ich noch nie benutzt. Mit DLL meinte ich eigentlich die DLL Funktionalität des DDR2 Chips. Diese kann laut Plasma/OpenCores deaktiviert werden und der Chip dann mit 25 MHz betrieben werden. Dient wohl dazu den Chip möglichst einfach zu evaluieren oder so. Mich hätte jetzt interessiert, woher die Infos kommen, dass der Chip z.B. auch mit 25 MHz (oder eben weit unter den 77MHz im normalen Betrieb) funktioniert und wie. MIG funktioniert glaub ich nicht für Spartan-3E. Überhaupt ist diese DDR2 Sache auf dem Spartan-3E alles andere als bequem zu erledigen. Oder ist ein DDR2 Controller allgemein unbequem :) Auf jeden Fall wäre es super, hätte jemand es irgendwie bewerkstelligt die ODDR2s und IDDR2s Primitiva zu integrieren, das würde mir das Gefitzle mit den steigenden und fallenden Flanken ersparen.
Ich habe es nie gepackt, auf dem S3E ein DDR2-design zum Laufen zu bekommen. Meine damaligen Recherchen ergaben Berichte, laut derer des auf dem S3E-brd verbauten Micron RAM einen bug hat bzw es falsch angeschlossen sein könnte. Ich habe das seinerzeit verworfen und nie wieder angefasst. Falls Du was hinbekommst, bitte melden.
Der MIG kann zwar den Spartan 3e, aber nicht alle. Dummerweise wird der 500E-FG320 nicht vom aktuellen MIG unterstützt. Habe aber schon öfters gelesen, dass da eh was nicht stimmt mit dem RAM.
Oje :) Und ich hatte mich schon darauf verlassen den RAM zu nutzen. Solltet ihr zufällig wieder auf die Resourcen stoßen, die ihr gelesen habt, wäre es super, wenn ihr die hier posten könntet. Ich werde versuchen, was diese Woche geht - werde aber nicht all zu lange damit rumspielen, weil ich so schon genug frustriert bin. Besonders wertvoll wären die Infos, uber mögliche Bugs der Platine. Schöne Grüße und besten Dank, Mathias
Vielleicht ist in diesem Zusammenhang interessant der letzte Beitrag (16.02.2012) in folgendem Thread: Beitrag "Projekt 8bit-Rechner mit FPGA-Prototyp-Gerät"
Mathias schrieb: > Hat jemand von euch schon mal einen DDR2 Controller für das Spartan-3E > Starter Kit implementiert? Ich weiß ja nicht, welches Starter Kit Du hast. Ich habe hier das "Spartan-3E FPGA Starter Kit Board" (siehe Bild) von Xilinx bzw. Digilent. Dort ist ein DDR SDRAM verbaut (MT46V32M16), kein DDR2 SDRAM. Ich habe den DDR SDRAM mit 100 MHz Busfrequenz zum kaufen bekommen. Duke
Habe genau dieses. Wow ich bin gerade total verblüfft - denke jetzt schon seit 4 Jahren da ist ein DDR2 Chip drauf :X
Hallo! Hier mal was ich so habe... iddr.vhd ist nur eine Interfacedatei. Die beiden Signale si und so sind records und in iwb.vhd definiert. Der Speicher ist Teil eines ganzen SoC. Ich schreibe aufsteigende Zahlenfolgen in den Speicher, lese anschließend und vergleiche. Zur Zeit spuckt er nur ab und an richtige Werte aus, von denen auch nur die oberen 16 bit stimmen. Super wäre es, wenn wenigstens 16 bit korrekt gelesen und geschrieben wrden könnten. Das hatte auch zeitweise funktioniert. Nur ist das Ding irgendwie sehr anfällig gegenüber keinsten Änderungen. Genausogut könntee es auch ein Zufall gewesen sein :) Ich versuche das Problem auf das Lesen oder Schreiben einzugrenzen. Das gelang mir bis jetzt nicht. Es gibt hier auch eine fertige Implementierung von "das-labor.org" https://www.das-labor.org/trac/browser/fpga/ddr Ich habe es noch nicht getestet, aber es verwendet FDDRRSE Register, die mein Spartan-3E laut Libraries Guide mal nicht besitzt. Andererseits wurde es wohl eben auf einem S-3E Starter Kit getestet. Sehr seltsam...
Hallo! Die aktuelle Implementierung läuft ohne DLL mit 25 MHz auf meinem kompletten System. Evtl. ist sie von Nutzen für Euch. Es gibt noch ein Problem mit den ODDR2s für das SD_DM Signal. Hier musste ich das Taktsignal direkt benutzen. Aber es läuf ;) Schöne Grüße, Mathias
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.