Pi.MX8 Projekt - Layout des Boards Teil 4

Lukas Henkel
|  Erstellt: Juli 23, 2024  |  Aktualisiert am: Juli 24, 2024
PIMX8-Projekt - Kapitel VI

Kapitel

1
Introduction and Overview
| Created: January 18, 2024
2
Component placement and layout planning
| Created: February 06, 2024
3
Board Layout Part 1
| Created: February 22, 2024
4
Board Layout Part 2
| Created: March 21, 2024
5
Board Layout Part 3
| Created: June 24, 2024
6
Board Layout Part 4
| Created: July 23, 2024
7
PCB Assembly
| Coming Soon

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.

Test of button

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.

Stromebenen

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.

Available power plane layers

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 core and memory supply for the SoC

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:

Voltage drop across power polygon

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

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 highlighted and DRAM power rail in purple

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.

Power rails target impedance

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.

Verzögerungsabstimmung

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.

Pin package delay in the schematic symbol

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 delays in table format through the SCHLIB List toolbar

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 delay tuning requirements

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-signal classes for the LPDDR4 tuning

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.

Delay tuning documentation in Excel

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:

Delay tuning address/command/control lines

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:

Clock delay tuning top layer

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 routed to the multiplexer

LVDS zum Multiplexer geroutet

MIPI-DSI routed to the multiplexer

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!

Über den Autor / über die Autorin

Über den Autor / über die Autorin

Lukas is a passionate hardware designer with more than 10 years of experience in the electronics industry. As a co-founder of his own engineering services company, he has had the privilege of working on many exciting projects, taking on challenges ranging from precision analogue design to high-speed PCB layout and power electronics.

As a strong supporter of the open-source philosophy, Lukas has made it his goal to give anyone interested an insight into the construction and functioning of modern electronic devices. Driven by that goal, he has founded the company Open Visions Technology (OV Tech GmbH), which aims to bring highly repairable, fully documented state-of-the-art consumer hardware to the market.

Lukas firmly believes that with today's online access to know-how and tools, anyone with an idea, drive, and passion can create extraordinary things. He is looking forward to being part of an enthusiastic community and is excited to see how people bring their ideas to life.

Ähnliche Resourcen

Verwandte technische Dokumentation

Zur Startseite
Thank you, you are now subscribed to updates.