Forum: Platinen DDR2 Design mit Eagle?


von Berndt Eggebrecht (Gast)


Lesenswert?

Hallo liebes Forum

ich stehe vor der Aufgabe, ein DDR2-Design machen zu müssen und bin am 
Planen, was ich tue. Ich soll checken, ob ich das mit den hiesigen 
Mitteln selber machen kann oder es rausgegeben werden muss. Nach 
umfangreichem Studium der Manuals hinsichtlich 
DDR2-RAM-Anschlusstechnik, der notwendigen Massnahmen im Bezug auf 
Spannungen, Referenzen und Terminierungen stellen sich mir einige 
Fragen:


1) Mit welchem Baustein kann ich den DDR2 treiben?

Wenn ich es richtig verstanden habe, brauche ich für einen 400MHz-Takt 
nur 200MHz an den Anschlüssen. Welchen FPGA kann ich dafür nehmen?
Ich habe nur Erfahrung mit Spartan3. Reicht ein Spartan6 dafür aus? Kann 
der die Leitungen schnell genug bewegen, um 400MHz DDR zu packen?


2) Kann ich das Design mit Eagle machen?

Ich habe einiges über Terminierung, Busabschluss und Wellenwiderstand 
gelesen und sehe mich aus der Hüfte nicht in der Lage, die Leiterbahnen 
richtig zu layouten, dass einmal die Impedanz stimmt (50 Ohm / 100 Ohm) 
und anderesmal die Leitungslängen passen.

Eagle unterstützt keine Leiterbahnberechnung, Vermessung oder 
automatisiertes Zeichnen, wie ich meine. Wie bekomme ich die auf 
einander abgestimmten Längen hin? Selber berechnen?

Würdet ihr sagen, dass man das Design mit Eagle machen kann?



3) Ist es u.U. sinnvoller, auf ein DDR3 Design zu gehen? Die Chips sind 
zwar teurer, bieten aber die höhere Bandbreite und Speicherdichte und 
sind wohl auch zukunftsicherer. Frage:

Welche zusätzlichen Anforderungen bestünden an das Design? Ich habe mir 
einige Datenblätter runtergeladen und wenn ich es richtig verstehe, 
laufen die mit bis zu 1066 MHz. Ist das jetzt der verdoppelte oder 
vervierfachte Takt?


Zum Grundverständnis nochmals: Wie bekommt man da die doppelte 
Speicherrate hin?

Die Chips liegen sozusagen parallel, aber um 180 Grad (90 Grad 
verschoben), sodass man mit der doppelten / vierfachen Rate fahren kann, 
während aber jeder Chip für sich nur die normale Datenrate sieht?

Das wären dann 200MHz?

Wie schnell müssen sich dann die Datenleitungen ändern können? Mit dem 
normalen Takt oder dem 2fachen / 4fachen? Die doppelte Busbreite hat es 
ja wohl nicht, oder täusche ich mich?

Bei DDR2 hätte ich jetzt gesagt, dass die Adressen mit z.B. 200MHz 
wechseln, während die Datenleitungen mit 400MHz wechseln und der Takt 
wiederum mit 200 MHz läuft, bei zwei Flanken also wie 400MHz.

Wie ist das bei DDR3?  Wo tritt die Vervierfachung auf?

Laufen dann die Adressen auch mit 200 und die Daten mit 800?

: Verschoben durch Moderator
von Christian R. (supachris)


Lesenswert?

Berndt Eggebrecht schrieb:
> 1) Mit welchem Baustein kann ich den DDR2 treiben?
>
> Wenn ich es richtig verstanden habe, brauche ich für einen 400MHz-Takt
> nur 200MHz an den Anschlüssen. Welchen FPGA kann ich dafür nehmen?
> Ich habe nur Erfahrung mit Spartan3. Reicht ein Spartan6 dafür aus? Kann
> der die Leitungen schnell genug bewegen, um 400MHz DDR zu packen?

Ein Spartan 6 ist da ideal, denn der hat einen integrierten Memory 
Controller Block (oder mehrere je nach Typ), da kannst du den DDRx RAM 
direkt anschließen. Der Spartan 6 schafft maximal DDR3 RAM mit 800Mb/s.

von Tokyo D. (tokyodrift)


Lesenswert?

Christian R. schrieb:
> Ein Spartan 6 ist da ideal, denn der hat einen integrierten Memory
> Controller Block (oder mehrere je nach Typ), da kannst du den DDRx RAM
> direkt anschließen. Der Spartan 6 schafft maximal DDR3 RAM mit 800Mb/s.

Vorsicht, um dir die Mühe zu ersparen, nur Spartan6 im BGA gehäuse haben 
den Memory Controller. Die im TQFP Gehäuse nicht!
Steht ganz klein iwo in nem Datenblatt.

Berndt Eggebrecht schrieb:
> 2) Kann ich das Design mit Eagle machen?

Kannst du, tut mir aber weh, allein drüber nachzudenken.

Berndt Eggebrecht schrieb:
> Die Chips liegen sozusagen parallel, aber um 180 Grad (90 Grad
> verschoben), sodass man mit der doppelten / vierfachen Rate fahren kann,
> während aber jeder Chip für sich nur die normale Datenrate sieht?

?? Quatsch.
Der Chip hat 2 Takte, die 180° Phasenverschoben sind. Beide Takte 
arbeiten mit der Frequenz f. Es werden aber bei jeder steigenden Flanke 
beider Takte Daten übertragen. Die Daten gehen also mit 2f durch.

von Reinhard Kern (Gast)


Lesenswert?

Berndt Eggebrecht schrieb:
> richtig zu layouten, dass einmal die Impedanz stimmt (50 Ohm / 100 Ohm)
> und anderesmal die Leitungslängen passen.

Das erstere ist kein Problem, egal welches System: bei gegebenem 
Lagenaufbau kannst du für jede Lage berechnen, welche Breite die 
Leiterbahn für x Ohm haben muss, und damit routest du eben. Für die 
Berechnung gibts Software in Netz. Was anderes machen auch teure 
Layoutsysteme nicht, die klopfen dir nur automatisch auf die Finger, 
wenn du dich nicht dran hältst.

Das mit der Länge ist schon ernster, aber ich kenne eigentlich kein 
System, bei dem man nicht die Länge einer selektierten Leiterbahn 
irgendwo auslesen kann. Eagle kenne ich nicht, aber wenn das da nicht 
geht, ist das schon ein ernsthafter Mangel. Irgendwie müssen die 
Preisunterschiede aber ja gerechtfertigt sein.

Übel ist es, wenn man für Mäander oder Differential Pairs keine 
Softwareunterstützung hat. Differential Pairs kann man manuell 
eigentlich überhaupt nicht exakt verlegen.

Grundsätzlich gilt natürlich: man kann jedes Layout notfalls auch mit 
Tusche und Kurvenlineal zeichnen und mit allen Hilfsmitteln, die seit 
dem letzten Weltkrieg dafür entwickelt wurden wie Klebestreifen, 
Abreibesymbole...

Gruss Reinhard

von Georg A. (georga)


Lesenswert?

Für die 4/5er-Eagles gibts ein Skript, dass die Längen ausgibt, damit 
kommt man eigentlich schon ganz gut zurecht. Das Problem ist ja nicht 
die Länge selbst (kann man beim "Aufstocken" ja gut abschätzen), sondern 
dass man den nötigen Platinenplatz für das Mäandern findet ;)

BTW: War da nicht was beim 6er, dass das in Realtime geht?

von Berndt Eggebrecht (Gast)


Lesenswert?

Tokyo Drift schrieb:
> Der Chip hat 2 Takte, die 180° Phasenverschoben sind. Beide Takte
> arbeiten mit der Frequenz f. Es werden aber bei jeder steigenden Flanke
> beider Takte Daten übertragen. Die Daten gehen also mit 2f durch.
Und beim DDR3?

von Falk B. (falk)


Lesenswert?

@  Berndt Eggebrecht (Gast)

>1) Mit welchem Baustein kann ich den DDR2 treiben?

>Wenn ich es richtig verstanden habe, brauche ich für einen 400MHz-Takt
>nur 200MHz an den Anschlüssen.

Unglückliche Formulierung. Der Takt hat 200 MHz, die Daten 400 Mbit/s.

> Welchen FPGA kann ich dafür nehmen? Ich habe nur Erfahrung mit Spartan3.

Das wird sehr eng, wenn gleich machbar.

>Reicht ein Spartan6 dafür aus?

Ja.

> Kann der die Leitungen schnell genug bewegen, um 400MHz DDR zu packen?

;-)
Ja.

>2) Kann ich das Design mit Eagle machen?

Ja, wenn gleich etwas mehr Mitdenken und Handarbeit als bei den High End 
Systemen nötig ist.

>Ich habe einiges über Terminierung, Busabschluss und Wellenwiderstand
>gelesen und sehe mich aus der Hüfte nicht in der Lage, die Leiterbahnen
>richtig zu layouten, dass einmal die Impedanz stimmt (50 Ohm / 100 Ohm)

Das ist einfach, muss nur die richtige Breite der Leiterbahn bei 
gegbener Lagendicke sein. Die Geometrie rechnet dir jeder Onlinerechner 
schnell aus, siehe Wellenwiderstand.

>und anderesmal die Leitungslängen passen.

Dafür gibt es ein ULP in Eagle. Nicht die komfortabelsete Lösung aber 
OK.

>einander abgestimmten Längen hin? Selber berechnen?

Siehe oben.

>Würdet ihr sagen, dass man das Design mit Eagle machen kann?

Ja.

>3) Ist es u.U. sinnvoller, auf ein DDR3 Design zu gehen? Die Chips sind
>zwar teurer, bieten aber die höhere Bandbreite und Speicherdichte und
>sind wohl auch zukunftsicherer. Frage:

>Welche zusätzlichen Anforderungen bestünden an das Design?

Höhere Frequenzen, ggf. höhere Packungsdichte.

> Ich habe mir
>einige Datenblätter runtergeladen und wenn ich es richtig verstehe,
>laufen die mit bis zu 1066 MHz. Ist das jetzt der verdoppelte oder
>vervierfachte Takt?

Keine Ahnung.

>Zum Grundverständnis nochmals: Wie bekommt man da die doppelte
>Speicherrate hin?

Indem man auf jeder Taktflanke (fallen und steigend) Daten überträgt.

>Die Chips liegen sozusagen parallel, aber um 180 Grad (90 Grad
>verschoben), sodass man mit der doppelten / vierfachen Rate fahren kann,

Vierfach sicher nicht. Das schafft man dur durch breitere Datenbusse.

>Wie schnell müssen sich dann die Datenleitungen ändern können? Mit dem
>normalen Takt oder dem 2fachen / 4fachen?

2fach.

> Die doppelte Busbreite hat es ja wohl nicht, oder täusche ich mich?

???

>Bei DDR2 hätte ich jetzt gesagt, dass die Adressen mit z.B. 200MHz
>wechseln, während die Datenleitungen mit 400MHz wechseln und der Takt
>wiederum mit 200 MHz läuft, bei zwei Flanken also wie 400MHz.

Datern laufen nicht mit MHz siondern Mbit/s. Die Adressen auf dem 
Adressbus laufen nur mit 200 Mbit/s (Single data rate, SDR), die Daten 
aber mit 400 Mbit/s (Dual data rate, DDR).

>Wie ist das bei DDR3?  Wo tritt die Vervierfachung auf?

Keine Ahnung.

>Laufen dann die Adressen auch mit 200 und die Daten mit 800?

Glaub ich nicht.

MFG
Falk

von Captain Chaos (Gast)


Lesenswert?

Hallo Berndt Eggebrecht,

ich stand genauso wie Du vor dieser Aufgabe. Ich sollte damals auch eine 
Platine mit einem FPGA und DDR2/3 Speicher entwickeln und hatte mich 
dazu in diese Materie eingearbeitet. Bei meiner alten Firma stand dazu 
auch nur Eagle zur Verfügung.

Ich bin damals zu der Erkenntnis gekommen, dass ich dies nicht mit den 
vorhandenen Mitteln, der Zeit und der Erfahrung umsetzen konnte. Also 
hatte ich mir eine andere Lösung gesucht. Diese bestand darin eine 
fertige Platine mit genügend DDR-Speicher zu suchen. Ich kann Dir hierzu 
die Platinen von http://www.trenz-electronic.de/de/startseite.html an 
Herz legen.

Ich hatte dann einfach eine Trägerplatine, welche die Spannung und die 
externe Kommunikation herstellt entwickelt. War damals ein wenig 
enttäuscht, hätte gerne einmal so etwas entwickelt um Erfahrungen zu 
sammeln. Aber dies war der beste Kompromiss um das Projekt erfolgreich 
abzuschließen.
Vielleicht hilft Dir diese Info :-) Viel Glück.

von Thomas K. (alerte)


Lesenswert?

Berndt Eggebrecht schrieb:
> Eagle unterstützt keine Leiterbahnberechnung, Vermessung oder
> automatisiertes Zeichnen, wie ich meine. Wie bekomme ich die auf
> einander abgestimmten Längen hin? Selber berechnen?

Das Skript "length.ulp" wurde ja bereits angesprochen, bestimmen der 
Länge von Leiterbahnen geht also relativ problemlos.

Ich (Eagle 5-Nutzer, vielleicht hat Eagle 6 da etwas Erleichterung 
gebracht) sehe da aber eher das Problem, die Leiterbahn exakt auf die 
gewünschte Länge zu bekommen. Das geht nur mit Try & Error mit 
jeweiliger Kontrolle der Länge per length.ulp bzw. mit vorherigem 
Ausrechnen der für die gewollte Länge benötigten Geometrie. Geht sicher, 
aber in jedem Fall eine fummelige Sache.

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Thomas K. schrieb:
> Ich (Eagle 5-Nutzer, vielleicht hat Eagle 6 da etwas Erleichterung
> gebracht) sehe da aber eher das Problem, die Leiterbahn exakt auf die
> gewünschte Länge zu bekommen. Das geht nur mit Try & Error mit
> jeweiliger Kontrolle der Länge per length.ulp bzw. mit vorherigem
> Ausrechnen der für die gewollte Länge benötigten Geometrie. Geht sicher,
> aber in jedem Fall eine fummelige Sache.

Ab der Version 6 gibt es in EAGLE den Befehl "Meander", der einem viel 
Arbeit ersparen kann. Es ist natürlich immer noch kein Vergleich mit den 
Tools, die beispielsweise Altium oder Allegro bieten, aber für 
gelegentliche Multilayer mit impedanz- und längenkontrollierten Layouts 
reicht es aus. Ansonsten einfach einmal in der Demo-Version testen.

von Tokyo D. (tokyodrift)


Lesenswert?

Falk Brunner schrieb:
>>Wie ist das bei DDR3?  Wo tritt die Vervierfachung auf?
>
> Keine Ahnung.

Auch bei DDR3 Speicher gibt es keine Vervierfachung. Weiterhin nur die 
Verdoppelung.
Vervierfachung wäre dann QDR. Habe allerdings noch nie QDR Speicher 
gesehen. Der macht quasi DDR im Dual-Port Mode, laut Wikipedia.

Falk Brunner schrieb:
> Das ist einfach, muss nur die richtige Breite der Leiterbahn bei
> gegbener Lagendicke sein. Die Geometrie rechnet dir jeder Onlinerechner
> schnell aus, siehe Wellenwiderstand.

Allerdings spuckt auch jeder Rechner ein anderes Ergebnis aus. Die 
nutzen alle nur Näherungsformeln, die sich teilweise deutlich 
unterscheiden. Am vertrauenswürdigsten erscheint mir da noch der Open 
Source 2D Field Solver http://sourceforge.net/projects/mdtlc/ .

von Reinhard Kern (Gast)


Lesenswert?

Tokyo Drift schrieb:
> Allerdings spuckt auch jeder Rechner ein anderes Ergebnis aus.

Ja, aber allzugrosse Genauigkeit darf man sowieso nicht erwarten, 
Abweichungen unter 5% sind sehr aufwendig zu fertigen. Ausserdem muss 
das der Layouter auch nicht genauer wissen, denn wenn es tatsächlich auf 
die Impedanz ankommt, führt kein Weg an der Fertigung mit kontrollierter 
Impedanz vorbei, und dann rechnet das der Hersteller unter seinen 
Bedingungen (Materialeigenschaften, verfügbare Prepregs und Cores, 
Fertigungsparameter) nach und korrigiert die Leiterbahnbreite 
entsprechend. Dazu müssen die kritischen Leiterbahnen im Layout 
erkennbar sein, etwa durch einen eigenen Breitencode - man kann z.B. für 
normale Leitungen 200 µ eingeben, für ebenso breite Leitungen mit 50 Ohm 
aber 201 µ. Ebenso gehört dazu beim Hersteller das Vermessen einer 
Kontrollleiterbahn auf korrekte Impedanz und ein Ausdruck darüber für 
jede Leiterplatte.

Wenn man das Geld dafür nicht ausgeben will, bekommt man ziemlich 
zufällige Ergebnisse. Meistens wird das im Bereich +- 5..10% liegen, 
damit kann man in vielen Fällen leben, aber mit Pech könnte es auch mal 
mehr werden. Im Fall der kontrollierten Impedanz haftet der Hersteller 
dafür, was er zugesichert hat.

Gruss Reinhard

von Georg A. (georga)


Lesenswert?

> sehe da aber eher das Problem, die Leiterbahn exakt auf die
> gewünschte Länge zu bekommen.

Sooo exakt muss das auch wieder nicht sein. 1-2mm hin oder her machen da 
nichts aus. Man muss das ganze mal in Relation zum Datenauge sehen. 1ns 
sind auf der Platine so umara 15cm. Bei DDR3-1333 ist selbst ein 
matschiges Datenauge noch ~300ps offen. Reduzieren wir das mal auf 
+-100ps, gibt das immer noch eine Längendifferenz von +-15mm, da muss 
man schon heftige Umwege fahren...

von Christian B. (luckyfu)


Lesenswert?

Dabei gehst du aber von der ungestörten Platine aus. Wenn jetzt z.B. 
noch ein Gehäuse drum rum kommt kann es sein, daß es bei zu lockerem 
Umgang mit dem Längenabgleich ein Problem gibt. Üblicherweise sind diese 
dann besonders tückisch, da sie oftmals nur bei bestimmten Bitmustern / 
Bitmusterfolgen auftreten. Das zu finden ist ziemlicher Sackgang. Da 
investiere ich lieber beim Layout noch 2h mehr und gleiche die Länge auf 
+/- 3mm ab und hab hinterher genug Reserve um sicherzugehen, daß auch 
unter widrigsten Umständen die Signalqualität ausreicht.

von Berndt Eggebrecht (Gast)


Lesenswert?

Georg A. schrieb:
> Bei DDR3-1333 ist selbst ein
> matschiges Datenauge noch ~300ps ßoffen.
Wie kommst du zu dieser Abschätzung?

von Georg A. (georga)


Lesenswert?

Wieso, hab ich mich verschätzt?

1333 -> 750ps Data Cycle-Time. Nachdem die Erkennung der Pegel eine 
recht kleine forbidden area hat (AFAIR so +-100-150mV), kann das Signal 
schon ziemlich versaut sein und bei 300ps gültigem Auge zu >50% aus 
Slew, Ringing und Noise bestehen. Setup+Hold war bei 1333 AFAIR so um 
die 100ps, dh. bei optimalem Training könnte das Auge noch kleiner 
sein... Wenn was das Auge richtig versaut, sind es Probleme der 
Terminierung/Impedanz bzw. Übersprechen. Die 10ps, die pro 1.5mm 
Längenmismatch entstehen, gehen da eher unter.

von Berndt Eggebrecht (Gast)


Lesenswert?

Das mit dem Length Mismatch habe ich nun auch so ziemlich durch. Nach 
meiner Abschätzung sind es maximal 200ps je inch. Mit Eagle bekomme ich 
von der Länge sicher alles auf einen Zehntel Inch hin, wobei ich mir 
noch vergegenwärtigen muss, wie man Krümmungen berechnen muss.

Mich wunderte nur, dass Du da 300ps out of the box parat hattest. So 
ganz habe ich es noch nicht verstanden, gestehe ich.

Georg A. schrieb:
> Setup+Hold war bei 1333 AFAIR so um die 100ps,
wie und wo komme ich zu diesen Werten?

Wenn ich den Jitter betrachte, den mismatch irgendwelcher Kapazitäten 
oder ähnliches - ist es das dann gewesen? (Angenommen, das Signal ist im 
wesentlichen sauber)?

Soweit ich mich eingelesen habe, ist es technisch (k)ein Unterschied, ob 
ich DDR2 oder DDR3 nehme. Ich steuere z.B. mit 200MHz die Adressen und 
gebe in beiden Fällen 400MHz Daten aus. (ok, es sind 400 MBit, aber für 
mich zählt die Frequenz und damit die Reserve).  Jedes physikalische RAM 
im DDR läuft intern mit 200MHz, sie sind nur um 180 Grad verschoben.

Beim DDR3 müssten es dann 90Grad sein und entsprechend 4x200 MHz mit 
denen ich Daten abgegeben werden. Das bedeutet aber doch, dass man nur 
1250ps hätte. Irgendwie blicke ich immer noch nicht durch oder ich habe 
nicht die richtigen Dokumente.

> Bei DDR3-1333
Laut Wikipedia hätte Dein Beispiel "DDR3-1333" = "PC3-10600" eine 
Taktrate von 166 MHz und einen IO-Takt von 666 MHz.

Bei 666MHz stehen die Daten maximal 1,5ns an. Warum nimmst Du mit 750ps 
nur den halben Wert?

von Berndt Eggebrecht (Gast)


Lesenswert?

Reinhard Kern schrieb:
> führt kein Weg an der Fertigung mit kontrollierter
> Impedanz vorbei, und dann rechnet das der Hersteller unter seinen
> Bedingungen (Materialeigenschaften, verfügbare Prepregs und Cores,
> Fertigungsparameter)

Wird dann da die Leiterbahndicke modifiziert? Breiter werden geht ja 
wohl kaum, weil sich sonst die Abstände ändern.

von Georg A. (georga)


Lesenswert?

Schau doch mal in ein DDR3-Datenblatt, die von Micron sind zwar lang (so 
200 Seiten), aber recht schön lesbar... Da steht auch Setup/Hold etc. 
drin.

> Bei 666MHz stehen die Daten maximal 1,5ns an. Warum nimmst Du mit 750ps
> nur den halben Wert?

Weil die -1333 die Anzahl der Megatransfers pro Sekunde sind. Der Takt 
von CK/CK# ist dann 666MHz.

von Berndt Eggebrecht (Gast)


Lesenswert?

Schon klar, es sind 2x666, aber oben war die Sprache von 750ps. Die 
wären für echte 1333 Taktzahl relevant, oder?

Beim 666Takt z.B. wäre es ja konkret so, dass 1500 ps abzüglich 
Umschalten, Jitter, statischem Versatz und dynamischem Laufzeitversatz 
zur Verfügung stünden. Rührt daher der Schätzwert von 50% typischem 
Auge?

Ich habe inzwischen ein Datenblatt von Micro gelesen, dass mich wieder 
etwas stutzig macht:

Es wird ausgeführt, dass bei 233MHz Taktfrequenz im RAM insgesamt ein 
matching der Leiterbahnen von 15ps-Genauigkeit von Nöten ist, weil der 
Treiber von >1000ps benötigt und etliche Varianzen von Kapazitäten und 
Impedanzfehlern reinkommen. Ich muss nochmal suchen, wo das war. Was 
mich daran irritert, war die Bezugnahme auf jesweils den einfachen Takt 
und nicht den effektiven DDR3-Takt.

von Georg A. (georga)


Lesenswert?

750ps pro Datenzyklus, sind ja zwei bei 666MHz=1.5ns. Grösser als die 
750ps kann das Datenauge gar nicht werden ;)

von Reinhard Kern (Gast)


Lesenswert?

Berndt Eggebrecht schrieb:
> Wird dann da die Leiterbahndicke modifiziert? Breiter werden geht ja
> wohl kaum, weil sich sonst die Abstände ändern.

Natürlich die Breite - soviel Platz muss sein. Wenn du selbst sorgfältig 
gearbeitet hast, geht es ja nur um geringe Änderungen. Du must halt in 
deinen Rules genügend Reserve einkalkulieren, vertust du dich dabei, 
schickt dir der Hersteller dein Layout zurück mit der Bemerkung, dass er 
es so nicht fertigen kann. Ich nutze bei HS-Schaltungen die technischen 
Grenzen der Fertigung nie voll aus.

Abgesehen davon hängt der genaue Wert ja auch vom Lagenaufbau ab, der 
Hersteller kann den ja so ändern, dass die Leiterbahnen schmäler werden. 
Er muss ja sowieso deine Vorgaben anpassen an seine Produktion, es sind 
eben nur bestimmte Core- und Prepreg-Dicken überhaupt verfügbar. Daraus 
muss er ein Konzept filtrieren, das die richtige Impedanz erzeugt und 
mit deinen Vorgaben nicht allzusehr auf Kriegsfuss steht, was durchaus 
in echte Denkarbeit ausarten kann.

Du hast recht, wenn du dich so verrechnet hast, dass keine Anpassung 
möglich ist, dann kannst du dir das Layout als Grafik an die Wand 
hängen.

Gruss Reinhard

von Berndt Eggebrecht (Gast)


Lesenswert?

Georg A. schrieb:
> 750ps pro Datenzyklus, sind ja zwei bei 666MHz=1.5ns. Grösser als die
> 750ps kann das Datenauge gar nicht werden ;)

Ja, ok, nun habe ich den DDR-Aspekt wieder unterschlagen.

Reinhard Kern schrieb:
> Lagenaufbau
-ok, mit der Fertigung blicke ich jetzt langsam durch. Bleiben die 
Restfragen zum DDR3. Wer kennt sich da aus? - Aus den Datenblättern 
werde ich nicht schlau.

Als Beispiel nehme ich 166 MHz

      Clk   Adr   Daten
DDR1  166   166   2x166 = 333
DDR2  333   166   4x166 = 666
DDR3  666   166   8x166 = 1333 -> Auge 750ps
Bei einem   233   8x233 = 1867 -> Auge 553ps

Stimmt das so?

von Robert K. (Firma: Medizintechnik) (robident)


Lesenswert?

Korrektur:

Sieht vernünftig aus. Die Fortsetzung wäre dann:

DDR3  667   167   8x167 = 1333 -> Auge <750ps
DDR3  800   200   8x200 = 1600 -> Auge <625ps
DDR3  933   233   8x233 = 1867 -> Auge <535ps
DDR3 1067   267   8x267 = 2133 -> Auge <470ps

Das sind aber die maximalen Augenbreiten!

von Berndt Eggebrecht (Gast)


Lesenswert?

So, ich habe das Datenblatt wiedergefunden. In der APP "183TN4611.pdf" 
von Micron findet sich u.a. folgende Darstellung:

-----------------------------------------------------------------
Component           Setup  Hold  Units Comment
-----------------------------------------------------------------
Total skew          1,875  1,875 ps    266 MHz period = 3.75ns per half
Transmitter skew     -790   -790 ps    Vendor data sheet
Receiver skew        -500   -500 ps    Vendor data sheet
ISI                  -105   -105 ps    Simulation
Crosstalk            -165   -165 ps    Simulation
VREF noise           -200   -200 ps    Calculation from spec
Termination-R toler   -20    -20 ps    Simulation
Path length mismatch  -30    -30 ps    Calculation from spec
CIN mismatch          -50    -50 ps    Simulation
Remainder              15     15 ps    Margin

-----------------------------------------------------------------

266 MHz sind Periode 3,75 und die Hälfte, mit Rücksicht auf DDR sind 
1,875ns -> so weit ok!

Aber warum bezieht man sich auf die 266MHz? Das sind doch die Adressen. 
Die Daten laufen doch viel schneller, nämlich mit dem 4fachen! Beim 
Beispiel der 200Mhz wären es 1600 MHz Datentakt DDR, also 800!

Wieso bezieht man sich dennoch auf die 200. Das kommt doch dann niemals 
hin.(????)

Noch eine Frage:

Was ist denn hier ISI?

Was ich auch nicht verstehe, warum ist die absolute skew wichtig? - ich 
dachte, nur die Variation, sei von Bedeutung.

von Georg A. (georga)


Lesenswert?

DDR, nicht DDR2/3... Die gehen also von einem 133MHz DDR aus. Deswegen 
sind das alles so grosse Werte ;)

ISI = Inter Symbol Interference, die Störungen durch die Daten einen 
Takt vorher.

von Berndt Eggebrecht (Gast)


Lesenswert?

Wenn ich das Ganze für ein anderes Timing aufziehe, komme ich nicht hin. 
Z.B. sind oben in der Tabelle gehörige 0,5ns skew beschrieben. Das passt 
aber mit den Timings für das Auge nicht.

DOkumente habe ich inzwischen inspiziert und es ist auch klar, dass es 
ein DDR3- Design werden wird.

von Matthias (Gast)


Lesenswert?

(ich weiß nicht, ob es schon genannt wurde) Um das Augendiagramm bei den 
genannten Frequenzen aufzunehmen, benötigst Du zudem ein hochwertiges 
Oszilloskop. Und damit ist jetzt kein Gerät im unteren vierstelligen 
Bereich gemeint...

von Berndt Eggebrecht (Gast)


Lesenswert?

Geeigente Messmittel stehen mit aus einer Nachbarabteilung zur 
Verfügung. Zudem bin ich dort in Sachen DDR3 fündig geworden:

Beitrag "Re: Erfahrungen mit Sundance - FPGA - boards"

Das Design ist unterwegs und in Produktion. Hoffen wir mal das Beste. 
Werde mich nun mit der Ansteuerung auseinandersetzen.

von Matthias (Gast)


Lesenswert?

So, und wie schauen die Ergebnisse nun aus?

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.