SDRAM Layout, STM32F7

OP #4947345
Lesenswert?

Hallo!

Ich erstelle auf einer 4-lagigen Platine (Sig - GND - VCC - Sig) ein 
Layout mit STM32F7 und einem SDRAM-Modul (100 MHz).

Stack:
- - - - - - - - - 0.036 mm Kupfer (sig)
================= 0.254 mm FR4
- - - - - - - - - 0.036 mm Kupfer (gnd)
----------------- 0.127 mm Prepreg
- - - - - - - - - 0.036 mm Kupfer (vcc)
================= 0.254 mm FR4
- - - - - - - - - 0.036 mm Kupfer (sig)

Die beiden inneren Lagen werden nur für GND/VCC verwendet und sind 
durchgängig. Ich habe beim Layout Bedenken wegen der (meistens) vier 
Vias in den Signalleitungen zum SDRAM. Ist es trotzdem ok oder sind 
Probleme zu erwarten? Außerdem sind die Leitungen über lange Strecken 
parallel.

Die Signallängen (Daten, Adresse, Takt) sind zwischen 48 mm und 52 mm 
lang, Breite 0.125 mm.

Danke im Voraus,
Adrian
Angehängte Dateien:
Gast #4947369
Lesenswert?

Adrian F. schrieb:
> Die Signallängen (Daten, Adresse, Takt) sind zwischen 48 mm und 52 mm
> lang, Breite 0.125 mm.

Bist du Spezialist für Überlandleitungen ;-)

Deinem Stack solltest du noch mindestens 2 Layer spendieren.
Während dem Routen sollte man zusätzlich wissen was die betreffende
Signal-Leitung für eine Funktion hat, um sie optimal zu verlegen.
Kann man den Namen der Signalleitungen bei deinem CAD einblenden?
#4947603
Lesenswert?

Oh ... auf Lochraster ist dieses oben horizontal unten vertikal ja ganz 
nett, aber hier so es etwas schneller zur Sache geht sollte man sich da 
nichtmehr so feste dran halten.

Du könntest Pins tauschen um etwas zu optimieren und auch Leitungen 
unter dem großen BGA durchführen zum RAM. Vor allem gehen Leitungen auf 
der linken Seite zum RAM, werden aber nicht direkt dorthin gelegt 
sondern gehen zunächst sehr weit nach oben/unten im Bild und dann zum 
RAM.
OP #4948340
Lesenswert?

il Conte schrieb:
> Deinem Stack solltest du noch mindestens 2 Layer spendieren.

Ok, sieht wohl so aus.

il Conte schrieb:
> Kann man den Namen der Signalleitungen bei deinem CAD einblenden?

Ja, ich benutze Altium.

Gustl B. schrieb:
> Du könntest Pins tauschen um etwas zu optimieren und auch Leitungen
> unter dem großen BGA durchführen zum RAM.

Das geht leider nicht, die sind bei dem STM32 fest belegt.


Hier eine neue Version mit 6 Lagen.

Stack:
Low speed 1
GND
High speed 1
High speed 2
VCC
Low speed 2

Ich benutze aber auch die Low speed 1/2 Lagen für den SDRAM, weil es 
sonst nicht passt. Ist das ok?

Anbei ein paar Bilder. Die Leitungen sind zwischen 29 und 32 mm lang.

Grüße,
Adrian
Angehängte Dateien:
#4948393
Lesenswert?

Das sieht schon sehr viel besser aus. Ich kenne mich nicht aus, aber ich 
frage mal in die Runde wie wichtig die Längengleichheit bei 100MHz 
wirklich ist. Gefühlt hätte ich die Meander weggelassen und es auf 4 
Lagen versucht. Vor allem weil die Meander für mich so aussehen, als 
würden sie das Signal nicht unbedingt besser machen.

Mit Pins tauschen meinte ich einzelne Adressleitungen und Datenleitungen 
untereinander.

Selbst bei 10cm Längenunterschied ist das eine Laufzeitdifferenz von 
3.34e-10 Sekunden, also 0,334 ns. Bei 10ns Periodendauer finde ich das 
unkritisch, und bei Dir sind das ohne Meander vielleicht 1-2 cm.
Gast #4948407
Lesenswert?

Adrian F. schrieb:
> Anbei ein paar Bilder.

Deine mäander förmigen Leitungsverlegung  sieht  ästhetisch gut aus.
Ich würde aber aus dem Bauch raus die Notwendigkeit einer solchen
Leiterführung  bei einem HF'ler hinterfragen.
(du redest da in deinem Eingangspost von 100 MHz)

Grob überschlagen bräuchte es ca. 30 cm Unterschied zwischen 2 Signalen
(z.B. zwischen WR und CS) um einen Versatz einer nSec feststellen zu 
können.
Ich vermute mal das die Timings in den Datenblättern sowas tolerieren,
sodass ein Längenausgleich in diesem Frequenzbereich noch nicht nötig 
ist.

Wie gesagt du solltest das hinterfragen.
OP #4948444
Lesenswert?

il Conte schrieb:
> Wie gesagt du solltest das hinterfragen.

Ich habe ein bisschen in Datenblättern gestöbert und Micron schreibt:

> ...
> Match clock traces to data group traces within ±500 mil.
> ...
> For both DDR and SDRAM, also match clock traces to each signal trace in
> the address and command groups to within ±400 mil.
> ...

Wie kritisch das ist, kann ich nicht sagen. Ohne Mäander habe ich einen 
Längenunterschied im Bereich 2.5 cm = 1000 mil.
Gast #4948493
Lesenswert?

Scharfrechner schrieb:
> 30cm -> 1ns im Freiraum
>
> 2.5cm .... weniger ns

2,5cm = ca. 100ps. Das ist bei DDR schn mal 'ne Hausnummer.
Im vorliegenden Fall bei 100MHz (und ich weiß nicht, ich denke der STM 
F4 kann maximal 168MHz, das dürften dan am DRAM 84MHz sein) und einer 
Taktzykluszeit von 10ns, gibt es da wirklich Probleme?

rgds
#4948719
Lesenswert?

@Gustl Buheitel (-gb-)

>Das sieht schon sehr viel besser aus. Ich kenne mich nicht aus, aber ich
>frage mal in die Runde wie wichtig die Längengleichheit bei 100MHz
>wirklich ist. Gefühlt hätte ich die Meander weggelassen

Eben. Bei 20cm/ns machen 10mm Differenz gerade 50ps. Die kann man bei 
100 MHz SDRAM in den Skat drücken. Selbst das Doppelte und mehr.

>Mit Pins tauschen meinte ich einzelne Adressleitungen und Datenleitungen
>untereinander.

Das sollte man sich bei SDRAM GENAU überlegen, das geht nämlich schief 
;-)

https://www.mikrocontroller.net/articles/Speicher#Anschluss_an_den_Mikrocontroller

"ACHTUNG, das geht nur bei einfachen SRAMs. DRAM oder neuere Speicher 
nehmen das fix übel, weil die Ansteuerung durcheinander kommt 
(Adressmultiplexing, Pagemodus, Byteslanes bei DDR-RAM etc.). Bei diesen 
ICs kann man bestenfalls Datenleitungen tauschen, bei DDR-RAMs nur 
innerhalb einer Byte-Lane. Prinzipiell sollte man davon aber nur sparsam 
Gebrauch machen, wenn es dem Layout wirklich hilft. "
Beitrag #5099120 wurde von einem Moderator gelöscht.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren