mikrocontroller.net

Forum: FPGA, VHDL & Co. DDR2 Length Matching Guidelines


Autor: Yafes61 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe mal paar Fragen zum Längenableich der DDR2 Signale.

Aktuell habe ich ein PCB-Design mit einem Virtex 5 FPGA und einem DDR2
SDRAM SO-Dimm 200 Pin zu realisieren.

Nun habe ich alle Leiterbahnem vom FPGA zum DDR2 Socket geroutet und
will den Leitungsabgleich durchführen. Dabei häufen sich paar Fragen.

Im Dokument UG388
(https://www.xilinx.com/support/documentation/user_guides/ug388.pdf) ab
Seite 41 finde ich folgende Regeln:
 1 - DQ/DM = DQS +/- 3.81mm (150mil)
 2 - DQS_P/DQS_N = +/- 0.254mm (10mil)
 3 - CK_/CK_N +/- 0.254mm (10mil)
 4 - DQS_P/DQS/N = CK_P/CK_N +/- 6.35mm (250mil)
 5 - ADDR/CNTL/etc. = CK_P/CK_N +/- 7.62mm (300mil)

Sind evtl. die obigen Regeln zu hart angesetzt? Fehlen mir evtl. Regeln
zum Leitungsabgleich?
Sämtliche Regeln wie Routen der Signale auf mehreren Lagen, Crosstalk
bzw. Abstand der Signale zueinander, Power / Gnd Planes habe ich
versucht soweit es geht zu berücksichtigen.

So wie ich die Regel 1 verstehe orientieren sich die DQ/DM Signale an
das zugehörige DQS Strobe diff. pair Signal, richtig?
Sodass der Leitungsunterschied von DQ/DM zum CK_P/CK_N vernachlässigt
werden kann, da die Regel 4 das übernimmt, richtig?

Leider finde ich keine Angaben zur maximal Länge der Leitungen. Ist das
überhaupt begrentzt?

Welche Signale könnte man ignorieren bzgl. des Längenabgleichs?
(z.B. SDA, SDL, BA, CAS, RAS, ODT, CS, WE, CKE)

Danke im voraus.

Yafes

Autor: Sebastian R. (sebastian_r569)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Yafes61 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja leider hatte ich im falschem Forum gepostet.

Habe schon den webmaster per Email versucht zu kontaktieren. Der im µC & 
Elektronik Forum muss gelöscht werden.

Autor: soso... (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Yafes61 schrieb:
> habe mal paar Fragen zum Längenableich der DDR2 Signale.

Da fragst du im falschen Forum. Hier sind die meisten Leute noch damit 
beschäftigt, die Notewndigkeit von Vorwiderständen bei LED anzuzweifeln.

Meine Empfehlung wäre es, nach Application notes vorzugehen. Micron ist 
in der Hinsicht recht gut. Beispiele:
https://www.micron.com/support/~/media/c40b5a5e4afd4bdfa285edf8e5ca1017.ashx
https://www.micron.com/support/~/media/f9b2fb1d2b8c4efc8078247232e25b56.ashx

und so weiter.

Du kannst auch bei den Herstellern von FPGAs und Applikationsprozessoren 
schauen. In der i.M6 Dokut meine ich auch, Vorgaben gesehen zu haben.

Autor: Achim S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yafes61 schrieb:
> Welche Signale könnte man ignorieren bzgl. des Längenabgleichs?
> (z.B. SDA, SDL, BA, CAS, RAS, ODT, CS, WE, CKE)

SDA und SCL kannst du getrost ignorieren, die gehen nicht an die DRAMs 
sondern sind vergleichsweise schnarchlangsame I2C-Signale zum 
SPD-EEPROM.

BA, CAS, RAS, ODT, CS, WE, CKE: das sind alles Adress- (BA) bzw. 
Control-Leitungen (alle anderen), für die Regel 5 gilt.

Yafes61 schrieb:
> Leider finde ich keine Angaben zur maximal Länge der Leitungen. Ist das
> überhaupt begrentzt?

Doch, da gibt es natürlich auch Begrenzungen (ergeben sich z.B. durch 
die maximal erlaubten Laufzeiten und die davon beeinflussten 
Schaltzeitpunkte der DQS-Signale im Read). Aber wenn du nur ein SODIMM 
anschließt und das nicht unnötig weit weg vom FPGA platzierst und wenn 
du es schaffst, die Leitungsimpedanzen korrekt über die gesamte 
Leitungslänge einzuhalten, dann ist der Gesamtabstand wenig kritisch.

Autor: Yafes61 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Doch, da gibt es natürlich auch Begrenzungen (ergeben sich z.B. durch
> die maximal erlaubten Laufzeiten und die davon beeinflussten
> Schaltzeitpunkte der DQS-Signale im Read). Aber wenn du nur ein SODIMM
> anschließt und das nicht unnötig weit weg vom FPGA platzierst und wenn
> du es schaffst, die Leitungsimpedanzen korrekt über die gesamte
> Leitungslänge einzuhalten, dann ist der Gesamtabstand wenig kritisch.

Der Lagenaufbau ist so gestaltet das die Impedanzwiderstanden für single 
und diff. signale eingehalten sind.

Ich habe auch versucht so nah wie möglich das SODIMM ans FPGA zu 
platzieren. Letztendlich komme ich auf ca. maximale 6.3cm Leitungslänge.

Eine weitere Frage:
Wenn man für single ended Singale den Leitungsabgleich durchführt ist es 
egal wo man das macht? Quasi am SODIMM oder unmittelbar in der Nähe zum 
FPGA? Oder einfach mitten drim im Signal?

Autor: Achim S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yafes61 schrieb:
> Der Lagenaufbau ist so gestaltet das die Impedanzwiderstanden für single
> und diff. signale eingehalten sind.

Geht in Ordnung. (Zumindest wenn der PCB-Hersteller dann auch 
tatsächlich das liefert, was du geplant hast. Und wenn im Layout nicht 
versehentlich eine Leiterbahn eine Bezugsebene durchschneidet oder 
dergleichen ;-)

Yafes61 schrieb:
> Letztendlich komme ich auf ca. maximale 6.3cm Leitungslänge.

ist ok

Yafes61 schrieb:
> Wenn man für single ended Singale den Leitungsabgleich durchführt ist es
> egal wo man das macht? Quasi am SODIMM oder unmittelbar in der Nähe zum
> FPGA? Oder einfach mitten drim im Signal?

Aus dem Bauch heraus würde ich versuchen, das für einzelne Signalgruppen 
(z.B. die DQs eines DRAM-Bausteins) in der selben Region zu machen. Aber 
eigentlich ist es für single ended Signale imho tatsächlich egal, wo die 
Länge ausgeglichen wird, so lange in dem Bereich die Leitungsimpedanzen 
tatsächlich stimmen.

Unmittelbar unter dem FPGA wird es oft ein bisschen eng, aber dann 
ergibt es sich ziemlich von selbst, dass man nicht ausgerechnet dort den 
Längenausgleich macht.

Autor: Yafes61 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achim S. schrieb:
> Geht in Ordnung. (Zumindest wenn der PCB-Hersteller dann auch
> tatsächlich das liefert, was du geplant hast. Und wenn im Layout nicht
> versehentlich eine Leiterbahn eine Bezugsebene durchschneidet oder
> dergleichen ;-)

Der Lagenaufbau ist mit Absprache und den Berechnungen für die 
Impedanzen mit dem dem Tool Polar vom Fertiger durchgeführt worden. 
Müsste also passen.

Autor: Stephan C. (stephan_c)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Solange die Leitungen kürzer sind, brauchst du nicht unbedingt die Länge 
ausgleichen. Bei DDR2 hatte ich da bisher noch keine Probleme.
Ich glaube die längste Leitung, in einem meiner Designs, hatte eine 
Länge von ca. 35mm und die kürzeste vielleicht so um die 10-15mm.

Da war dann aber auch nur ein Chip am Bus.
Auf einem Modul sitzen aber mehrere Chips und die Leitungen sind dadurch 
wesentlich länger und du solltest die Leitungslängen auf jeden Fall 
anpassen.

Welches Layout-Tool hast du denn?

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.