Willkommen zu einem neuen Beitrag über das Pi.MX8 Compute-Modul SoM-Projekt! In diesem Update werden wir die letzten Handgriffe an unserem PCB-Design vornehmen und das Design für die Prototypenproduktion vorbereiten.
Im letzten Artikel haben wir das Routing der Signallagen abgeschlossen. Dies war der zeitaufwendigste Teil des PCB-Layouts für das Pi.MX8-Modul. Wir haben jedoch noch zwei Aufgaben vor uns, die ebenso viel Sorgfalt erfordern: das Routing der Stromebenen und die Abstimmung der Signalverzögerungen.
Beginnen wir mit den Stromebenen. Normalerweise bevorzuge ich es, die Abstimmung der Verzögerungen als letzten Schritt durchzuführen, da die für die Längenabstimmung benötigten Mäander oft den verbleibenden Platz auf der Platine füllen. Zum Beispiel könnte das Platzieren zusätzlicher VIAs (was manchmal notwendig sein kann, wenn Stromnetze geroutet werden) uns dazu zwingen, Längenabstimmungsprimitive anzupassen, um den notwendigen Platz zu schaffen. Indem wir den verbleibenden Platz zuletzt mit Längenabstimmungsprimitiven füllen, können wir zusätzliche Nacharbeiten vermeiden.
Verfügbare Stromebenen
Wenn wir uns den Lagenaufbau ansehen, können wir feststellen, dass uns zwei dedizierte Ebenen für die Stromversorgung zur Verfügung stehen. Diese Ebenen sind durch ein dünnes Prepreg von den benachbarten Masseebenen getrennt. Diese Stapelung erhöht die Kapazität der niederinduktiven Ebenen und kann dazu beitragen, die Impedanz des Power Distribution Networks (PDN) bei hohen Frequenzen zu verringern.
Zuerst sollten wir die Stromschienen mit hohem Stromfluss verlegen. In unserem Fall sind dies die Kern- und Speicherschienen für den i.MX8 SoC und den DRAM-Controller mit dem LPDDR4 IC.
PMIC-Kern- und Speicherversorgung für den SoC
Die VCC_ARM- und VCC_SOC-Schienen verwenden Fernmessung, was bedeutet, dass der Feedback-Knoten der Buck-Konverter nicht zu den Ausgangskondensatoren in der Nähe des MIC geführt wird, sondern zu den Strompads des i.MX8. Dies dient dazu, den Spannungsabfall über die Stromebene oder das Polygon zu kompensieren. Da der Strom in diesen Schienen relativ hoch sein kann und der PMIC diese Spannungen präzise regeln muss, ist es wichtig, die Spannung direkt an der Last zu "messen". Die folgende Abbildung zeigt den Spannungsabfall über ein Strompolygon:
Spannungsabfall über Strompolygon
Das Power-Polygon für die VCC_ARM-Schiene ist auf Schicht 6 verlegt. Die Spur, die nahe am Umriss des Polygons verläuft, ist das Fernmesssignal. Idealerweise würden wir die Spannung differentiell messen, um die parasitären Effekte, die durch den Rückstrompfad eingeführt werden, zu kompensieren und um das Feedback weniger anfällig für Störungen zu machen, aber in unserem Fall wird dies nicht notwendig sein. Wir werden den Empfehlungen des Referenzdesigns folgen.
VCC_SOC-Polygon
Die Feedback-Spur verwendet einen 'Net-Tie' in der Nähe der Pins des SoC, um das Feedback-Netz mit dem Power-Netz zu verbinden. Ohne einen Net-Tie müssten wir manuell eine saubere Isolation zwischen der Feedback-Spur und dem Power-Polygon sicherstellen. Dieser Ansatz ist fehleranfällig. Der Net-Tie ist einfach ein Footprint, der aus einem kurzen Leiterbahnsegment mit zwei kleinen Pads an jedem Ende besteht. Indem der Komponententyp auf Net-Tie gesetzt wird, erzeugt Altium Designer keinen Kurzschlussfehler für diese Komponente.
Das VCC_ARM-Polygon und die DRAM-Power-Schiene sind auf ähnliche Weise auf Schicht 5 verlegt.
VCC_ARM hervorgehoben und DRAM-Power-Schiene in Lila
Die verbleibenden Stromschienen werden auf den Schichten 5 und 6 verteilt. Die 1,8V und 3,3V Systemleistungspolygone erstrecken sich über das gesamte Board, da viele mit diesen Schienen verbundene Komponenten über das Board verteilt sind.
Der letzte Schritt der Stromschienenverlegung besteht darin, eine AC- und DC-PDN-Analyse einzurichten und zu überprüfen, ob die Ergebnisse innerhalb der durch den Hardware-Design-Leitfaden des SoC festgelegten Impedanzwertgrenzen liegen.
Die AC-Simulation muss die Entkopplungskondensatoren mit einem genauen Äquivalentmodell, die Ausgangsmerkmale des Buck-Reglers und die Geometrie des Layouts umfassen. Wir werden in diesem Artikel nicht auf die Einrichtung der Simulation eingehen, müssen sie aber als obligatorischen Verifizierungsschritt im Kopf behalten.
Zielimpedanz der Stromschienen
Die DC-Simulation erfordert nur die Geometrie des Layouts und die Lastmerkmale des SoC als Eingabe, um den Spannungsabfall über die Leistungspolygone zu berechnen und Bereiche mit übermäßiger Stromdichte hervorzuheben.
Mit dem abgeschlossenen Layout des Stromnetzwerks können wir nun zum letzten Punkt auf unserer To-do-Liste übergehen - die Verzögerungsabstimmung.
Es gibt viele Schnittstellen auf dem Pi.MX8-Modul, die strenge Zeitvorgaben haben und eine Verzögerungsabstimmung erfordern. Wir werden uns die kritischsten Schnittstellen ansehen und herausfinden, wie wir X-Signals nutzen können, um Verzögerungen sogar über mehrere Komponenten hinweg abzustimmen.
Beginnen wir mit der DRAM-Schnittstelle. Der i.MX8 Hardware-Design-Leitfaden liefert alle Informationen, die wir für die Verzögerungsabstimmung benötigen. Bevor wir irgendwelche Leiterbahnen anpassen können, müssen wir zunächst überprüfen, ob die Gehäuseverzögerung im Schaltplansymbol der Bibliothek enthalten ist.
NXP stellt Gehäuseverzögerungszeiten zur Verfügung, das ist die Zeit, die ein Signal benötigt, um vom i.MX8 BGA-Ball zum Siliziumchip zu gelangen. Die unterschiedlichen Längen auf dem Interposer beeinflussen die Gesamtverzögerungszeit, daher ist es wichtig, sie zu berücksichtigen.
Gehäuseverzögerung im Schaltplansymbol
Wir können den Schaltplanbibliothekslisten-Editor verwenden, um alle Gehäuseverzögerungen aus dem i.MX8 Hardware-Design-Leitfaden-Dokument auf einmal mit dem Dialogfeld „Smart Grid Paste“ einzufügen.
Pin-Verzögerungen im Tabellenformat über die SCHLIB-List-Werkzeugleiste
Die Anforderungen an die Verzögerungsabstimmung für die LPDDR4-Schnittstelle sind im i.MX8-Hardware-Design-Leitfaden dargelegt. Der Leitfaden gruppiert die Verzögerungsabhängigkeiten in Uhr-, Steuerungs-/Befehls- und Bytegruppen. Die Zeitfenster für jede Gruppe werden auf die Uhr- und Strobe-Signale bezogen. Alle differentiellen Signale müssen zwischen den komplementären Signalen im Paar auf 1ps abgeglichen werden.
LPDDR4-4000 PCB Verzögerungsabstimmungsanforderungen
Die Signale in der Adress-/Befehls-/Steuerungsgruppe müssen zwei Zeitvorgaben erfüllen. Eine Vorgabe definiert die maximale Verzögerung zwischen jedem Signal innerhalb der Gruppe, während die zweite Vorgabe das maximale Verzögerungsfenster der gesamten Gruppe in Bezug auf das Uhrensignal definiert.
Deshalb verwenden wir mehrere X-Signalgruppen, um sicherzustellen, dass die richtigen Signale innerhalb der Designregeln anvisiert werden.
X-Signalklassen für die LPDDR4-Abstimmung
Bei der Verwendung von verzahnten Verzögerungsabstimmungsregeln halte ich zusätzlich die Gesamtverzögerungswerte in einem Excel-Blatt zur Dokumentation fest. Dieser Schritt ist jedoch optional und hängt von persönlichen Vorlieben ab, da die Zeitvorgaben alle innerhalb der Altium Designer-Regelkonfiguration definiert werden können.
Verzögerungsabstimmungsdokumentation in Excel
Sobald die X-Signal-Klassen definiert und die Designregeln festgelegt sind, können wir beginnen, die Verzögerung im Layout abzustimmen. Abgesehen von der Abstimmung der Verzögerung innerhalb eines Paares müssen die meisten Anpassungen an den Adress-/Befehls-/Steuerleitungen vorgenommen werden:
Verzögerungsabstimmung bei Adress-/Befehls-/Steuerleitungen
Die Datenleitungen selbst benötigen sehr wenig bis gar keine Abstimmung. Rund um die auf der obersten Schicht gerouteten Uhrensignalpaare haben wir genügend Platz, den wir für die Verzögerungsabstimmung nutzen können:
Verzögerungsabstimmung der Uhr auf der obersten Schicht
Wie beim Stromversorgungsnetzwerk müssen wir Verifikationssimulationen für die DRAM-Schnittstelle durchführen. Wir sind besonders daran interessiert, ob wir Übersprecheffekte sehen können, da Teile der Routings relativ dicht beieinander liegen. Die Faustregel ist, einen Abstand vom 3-fachen der Dielektrikumdicke zu benachbarten Leiterbahnen einzuhalten. Wir werden in diesem Artikel jedoch nicht auf die Simulationseinrichtung und -details eingehen.
Nachdem die Verzögerungsabstimmung der DRAM-Schnittstelle abgeschlossen ist, werfen wir einen Blick auf eine weitere Anwendung für X-Signale. Das PiMX8-Board verfügt über zwei Schnittstellen, die ein externes Display ansteuern können - LVDS und MIPI-DSI.
MIPI-DSI verwendet ebenfalls Low Voltage Differential Signaling (LVDS), sodass wir einen Multiplexer verwenden können, um zwischen diesen Schnittstellen zu wählen, da sie die gleichen Hardware-Spezifikationen teilen. Wenn wir einen Multiplexer verwenden, um zwischen den Schnittstellen umzuschalten, müssen wir auch beachten, dass jegliches Routing nach dem Multiplexer (auf der gemeinsamen Seite) die Verzögerung sowohl der stromabwärts gelegenen MIPI-DSI- als auch der LVDS-Schnittstellen beeinflussen wird. Dies kann berücksichtigt werden, indem eine separate X-Signal-Klasse für die MIPI-DSI-Schnittstelle und die LVDS-Schnittstelle erstellt wird, was mehr Freiheit bei der Verzögerungsanpassung auf der PCB ermöglicht.
In diesem Beispiel hätte es möglicherweise vermieden werden können, diesen Ansatz zu benötigen, wenn das gesamte Routing auf der gemeinsamen Seite auf ein enges Verzögerungsfenster, sowohl zwischen den Paaren als auch von Paar zu Paar, abgestimmt worden wäre. Durch die Verwendung von zwei separaten X-Signal-Klassen haben wir jedoch eine bessere Kontrolle über das Zeitbudget jeder Schnittstelle.
X-Signale ermöglichen es uns, die Lücke über den Multiplexer zu überbrücken und die Längenanpassung für jede Schnittstelle über die gesamte Signallänge vor und nach dem Multiplexer durchzuführen.
Der gleiche Ansatz wird bei der PCIe-Schnittstelle verwendet, um die Lücke über die seriellen AC-Kopplungskondensatoren zu überbrücken.
LVDS zum Multiplexer geroutet
MIPI-DSI zum Multiplexer geroutet
Alle Hochgeschwindigkeitsschnittstellen auf dem Pi.MX8-Board werden mit X-Signalen auf Verzögerung abgestimmt, da sie eine präzisere Pfadlänge des gesamten Signals bieten. Wir werden nicht jede Schnittstelle separat betrachten, da die Einrichtung der Verzögerungsabstimmungsregel und die Anpassung der Verlegung eine sich wiederholende Aufgabe ist, die sich in ihrem allgemeinen Ansatz zwischen den Schnittstellen nicht wesentlich unterscheidet.
Dies war der letzte Schritt, um die Verlegung auf dem Pi.MX8-Board abzuschließen. Die nächste Phase besteht darin, eine gründliche Überprüfung der Entwurfsregeln durchzuführen und das Fertigungsdatenset zu exportieren.
Im nächsten Update werden wir uns die Boards ansehen und mit dem Zusammenbau einiger Prototypen beginnen. Dies wird der letzte Schritt sein, um das Pi.MX8-Modul zum ersten Mal einzuschalten, also bleiben Sie dran!