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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von DDR3 (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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?

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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.