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
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?
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.
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
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
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.
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.
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 :)
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?
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
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?
Scharfrechner schrieb: > 2.5cm .... weniger ns gemessen an einem 100MHz Zyklus also weniger als ein Hundertstel.
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
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?
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
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!
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.
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)
@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 vom Autor gelöscht.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.