Forum: FPGA, VHDL & Co. DDR3 RAM an FPGA Hardware Frage


von DDR3 (Gast)


Lesenswert?

Hallo,

ich beschäftige mich gegenwärtig mit dem Hardwaredsign von FPGA+DDR3 
Aufbauten, um die Hardware besser zu verstehen und ggf. irgendwann mal 
selbst ein Board zu designen.

Momentan schaue ich mir das Arty Board an.

Schaltplan: 
https://reference.digilentinc.com/_media/reference/programmable-logic/arty/arty_sch.pdf

Es ergeben sich für mich nun folgende Fragen, die ich bisher durch 
Lektüre noch nicht so ganz klären konnte.

1) Mein Verständnis bisher ist, dass die Adressleitungen etc. nicht im 
DDR3 Speicherchip terminiert werden, sondern extern selbst terminiert 
werden, da es auch möglich sein muss mehrere Speicher an einen "Bus" 
anzuschließen. Auf dem Schaltplan (Seite 9) ist der DDR3 Speicher zu 
sehen. Allerdings sehe ich nirgends eine Terminierung dieser 
Adressleitungen.

Dagegen steht bspw. der Schaltplan eines Cyclone 5 Boards (Bemicro CV): 
https://static5.arrow.com/pdfs/2013/9/23/0/52/45/310/arrowd_/manual/c__users_kevinc1_appdata_local_temp_bemicro_cv_f23_201305151.pdf

Auf der ersten Seite sieht man, dass alle Adressleitungen am Ram mit 
Widerständen gegen terminiert werden. Ich habe bei der Lektüre der RAM 
datenbölätter bisher nichts gefunden, was die on chip Terminierung 
dieser Signale möglich macht. Warum sind bei ArtyBoard keine 
Terminierungswiderstände vorgesehen?

2) DDR3 Speicher haben in der Regel eine externe Widerstandsreferenz 
RZQ, die soweit ich sehe häufig mit 270 Ohm angeschlossen wird. Im 
Xilinx Wizard soll man  laut dem Usermanual des Arty Boards RZQ/6 
einstellen, als Terminierung. 270/6 ist 45 => Fast 50 Ohm. Was mich 
daran wundert, ist dass es mit den üblichen Teilern RZQ/6 RZQ/7 gar 
nicht möglich ist auf 50 Ohm zu kommen. Kann mir dieses Konzept jemand 
erklären? Die Clk ist im Schalplan auch nicht mit 100 Ohm differentiell 
terminiert, sondern mit 85 Ohm, was vermutlich an der Leiterplatte des 
Arty Boards liegt, dass hier die Impedanzen anders sind, oder?

3) Einige Signale des DDR Interfaces sind differentiell. die CLK ist mir 
verständlich. Aber warum sind ausgerechnet auch die DQS Signale 
differentiell ausgeführt?

4)
Die DDR3 Signale sind am Ende mit der Wellenimpedanz abgeschlossen. Wird 
bei diesem IO Standard auch die Quellimpedanz auf 50 Ohm angepasst? 
Dadurch, dass die DDR3 Signale idR auf die halbe Versorgung terminiert 
werden, liegt somit der High-Pegel der Signale bei 75% der IO Spannung, 
wenn in der Quelle ebenfalls eine Qellimpedanz von 50 Ohm vorherrscht.
Ist meine Annahme korrekt? Soweit ich sehe wird die Referenz der 
Eingänge auf 50% der Versorgungsspannung gelegt. Das kommt mir irgendwie 
etwas knapp vor, wenn der maximal erreichbare High pegel nur 75% der 
Versorungsspannung sind.

von Hannes (Gast)


Lesenswert?

1. Die Addressleitungen gehoeren nach dem letzten Ram terminiert 
(Stichwort Fly-by-Topologie)

Vielleicht haben die Entwickler des Arty-Boards herausgefunden, dass 
ihnen die Signalintegritaet fuer die niedrigen Taktraten auf dem 
Artix/Spartan7 reicht.

2. DDR3 funktioniert mit 40, 50, 60 Ohm Impedanz. Die Terminierung (und 
damit auch der RZQ/x-Wert) sollte so gewaehlt sein, dass sie zum Layout 
passt. Eventuell hat bei deren Simulation die 85 Ohm etwas schoenere 
Signale erzeugt. Fuer hoehere Datenraten will man bei DDR3 normalerweise 
40 Ohm, bei niedrigeren reichen auch 50.

3. DQS sind Clocks (und fuer die Gesamt-Integritaet wichtiger als CLK!)

4. Bin nicht ganz sicher, wie dies genau in der HW funktioniert. Du 
kommst normalerweise auf 0.75V idle und ziemlich brauchbare 0V/1.5V fuer 
Low/High-Pegel. Wenn die Terminierung nicht passt (z.B. beim Layout 
vergessen wurde) gibt es ordentlich Over/Undershoot. Hier unbedingt 
Datenblatt von RAM und FPGA pruefen, wie viel davon erlaubt ist.

von DDR3 (Gast)


Lesenswert?

Hannes schrieb:
> DQS sind Clocks (und fuer die Gesamt-Integritaet wichtiger als CLK!)

Ah. Vielen Dank. Macht ja auch Sinn, da die Latenzen von 
Addressleitungen (Fly-by-Topologie) und Daten (Point to Point) durch die 
Verdrahtung stark unterschiedlich sein können.

Mir ist am Artix Board noch etwas aufgefallen:

Der FPGA verfügt nicht über einen Referenzwiderstand für die On-Chip 
Terminierung, im Gegensatz zum Cyclone V auf dem bemicro CV. Der FPGA 
wird somit wahrscheinlich auf 50 Ohm (+- Toleranz) intern terminieren, 
oder?

Beim Durchklicken des memory Wizards in Vivado habe ich nur den Punkt 
gesehen, wo man RZQ/6 einstellen soll, was soweit ich verstehe eine 
Config ist, die in den RAM Chip geschrieben wird und dort für die 
Terminierung sorgt, oder?

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.