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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.