Forum: Platinen SDRAM Layout, STM32F7


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 A. F. (elagil)


Angehängte Dateien:

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

von il Conte (Gast)


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

von Gustl B. (-gb-)


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

von A. F. (elagil)


Angehängte Dateien:
  • preview image for 1.PNG
    1.PNG
    24,2 KB, 1233 Downloads
  • preview image for 2.PNG
    2.PNG
    23,6 KB, 978 Downloads
  • preview image for 3.PNG
    3.PNG
    23,5 KB, 678 Downloads
  • preview image for 4.PNG
    4.PNG
    23,7 KB, 676 Downloads

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

: Bearbeitet durch User
von Gustl B. (-gb-)


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

: Bearbeitet durch User
von il Conte (Gast)


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

von A. F. (elagil)


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

von Mampf F. (mampf) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Gustl B. schrieb:
> wie wichtig die Längengleichheit bei 100MHz
> wirklich ist

Soweit ich weiß, muss nur der Clock länger als die längste 
Adress/Datenleitung sein, damit die Setup-Time eingehalten werden kann 
:)

von il Conte (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Adrian F. schrieb:
> Match clock traces to data group traces within ±500 mil.

Bei welcher Clock Frequenz ?

Wie hoch ist die Clockfrequenz in deiner Appllikation?

Bearbeitest du das für deine Firma?

von Scharfrechner (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Adrian F. schrieb:
> Wie kritisch das ist, kann ich nicht sagen.

.... ääähhh wie war das noch gleich ...

30cm -> 1ns im Freiraum

2.5cm .... weniger ns

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Mampf F. schrieb:
> Soweit ich weiß, muss nur der Clock länger als die längste
> Adress/Datenleitung sein, damit die Setup-Time eingehalten werden kann
> :)

Kann sein, kenne mich damit nicht aus, im FPGA würde man das anderes 
lösen, hier könnte man dann eben nur die Clockleitung länger machen oder 
etwa nicht?

von Scharfrechner (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Scharfrechner schrieb:
> 2.5cm .... weniger ns

gemessen an einem 100MHz Zyklus also weniger als ein Hundertstel.

von 6a66 (Gast)


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

von A. F. (elagil)


Bewertung
0 lesenswert
nicht lesenswert
il Conte schrieb:
> Bei welcher Clock Frequenz ?

100 MHz

> Wie hoch ist die Clockfrequenz in deiner Appllikation?

Bis zu 108 MHz (216 MHz Takt vom STM32)

> Bearbeitest du das für deine Firma?

Das ist ein Projekt für die Uni

6a66 schrieb:
> Taktzykluszeit von 10ns, gibt es da wirklich Probleme?

Schadet der Längenausgleich denn?

von 6a66 (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Adrian F. schrieb:
> Schadet der Längenausgleich denn?

Er kostet :) Fläche und Lagen.
Wer auf Nummer sicher geht macht ihn.
Wer es kann macht es ohne :)

rgds

von A. F. (elagil)


Bewertung
0 lesenswert
nicht lesenswert
6a66 schrieb:
> Er kostet :) Fläche und Lagen.
> Wer auf Nummer sicher geht macht ihn.

Ich glaube, dann behalte ich in :)

Die Fläche der Platine ist festgelegt und groß genug und mit vier Lagen 
wird es nicht sauber.

Danke für die Kommentare!

von il Conte (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Adrian F. schrieb:
> Schadet der Längenausgleich denn?

Lass es auf einen Versuch drauf ankommen!
Hast du auch die Möglichkeit  hinterher die Timings mit geeigneten
Messmitteln zu verifizieren?
Wenn ja, berichte uns dann.

von il Conte (Gast)


Bewertung
0 lesenswert
nicht lesenswert
il Conte schrieb:
> Lass es auf einen Versuch drauf ankommen!

Mal mit und mal ohne Mäander meinte ich.
oder nur mal den 'Clock' Vorschlag von  Mampf F.(mampf) implementieren.
(das hört sich plausibel an)

von Falk B. (falk)


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

von Gustl B. (-gb-)


Bewertung
0 lesenswert
nicht lesenswert
Ok, wusste ich nicht, vielen Dank!

Beitrag #5099120 wurde vom Autor gelöscht.

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]
  • [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.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

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