Spartan-3E Starter Kit + DDR2

Gast #2609057
Lesenswert?

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 :)
Gast #2609251
Lesenswert?

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.
Gast #2609315
Lesenswert?

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.
Gast #2609687
Lesenswert?

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
Gast #2611077
Lesenswert?

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
Angehängte Dateien:
Gast #2616971
Lesenswert?

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...
Angehängte Dateien:
Gast #2647447
Lesenswert?

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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren