Projekt Pi.MX8 - Układ płyty Część 2

Lukas Henkel
|  Utworzono: marzec 21, 2024  |  Zaktualizowano: lipiec 24, 2024
Rozdział IV Pi MX8

Rozdziały

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

W poprzedniej aktualizacji przyjrzeliśmy się definiowaniu odpowiedniego stosu warstw dla modułu oraz dodawaniu trasowania wyprowadzeń dla wszystkich komponentów umieszczonych na płytce. Bazując na wszystkich tych przygotowaniach, jesteśmy teraz prawie gotowi do prowadzenia pierwszych ścieżek. Zanim jednak zaczniemy łączyć jakiekolwiek komponenty na płytce, musimy zdefiniować profile impedancji i ustawić pasujące reguły projektowe dla odpowiedniej szerokości ścieżek.

Test of button

Ustawianie profili impedancji

Ustawienie profili impedancji jest proste w menedżerze stosu warstw. Musimy zdefiniować zarówno pojedyncze, jak i różnicowe profile impedancji. Informacje o potrzebnych wartościach impedancji można uzyskać ze standardów interfejsów oraz przewodników projektowych sprzętu dla procesora NXP i.MX8. Następujące wartości impedancji, zarówno pojedyncze, jak i różnicowe, są używane w projekcie:

Table of Impedances

Na wcześniej zdefiniowanym stosie warstw mamy dostępne cztery warstwy sygnałowe, które możemy wykorzystać do kontrolowanego impedancji trasowania, które to są: warstwa górna, L2, L7 i warstwa dolna. Warstwa górna i dolna mają tylko jedną warstwę odniesienia do masy, podczas gdy L2 i L7 są umieszczone między dwoma warstwami odniesienia. Po wprowadzeniu wartości impedancji i warstw odniesienia geometria ścieżki jest obliczana automatycznie:

Layerstack manager Impedance profile differential 100 Ohm

Menedżer stosu warstw profil impedancji różnicowej 100 Ohm

Podczas definiowania geometrii ścieżek, szczególnie szerokości ścieżek i odstępów dla par różnicowych, ważne jest, aby mieć na uwadze potrzebną przestrzeń do trasowania. Jeśli to możliwe, chcielibyśmy utrzymać ogólną szerokość pary różnicowej na niskim poziomie, aby ograniczyć potrzebną przestrzeń do trasowania. W zależności od gęstości płyty, powinno się to również wziąć pod uwagę przy definiowaniu układu warstw.

Ustawianie zasad projektowania

Pozostał tylko jeden krok, zanim będziemy mogli trasować pierwsze ścieżki, a mianowicie poinformowanie Altium Designer, jakie szerokości ścieżek (i odstępy dla par różnicowych) są wymagane w zależności od interfejsu i warstwy trasowania. Wartości impedancji są przypisywane do odpowiednich interfejsów na schemacie. Tutaj możemy pracować z dyrektywami, aby przypisać sieci do klas sieci lub klas par różnicowych.

Multiple net classes assigned to a design blanket

Wiele klas sieci przypisanych do projektowego obszaru

W edytorze zasad projektowych możemy teraz kierować się na te sieci lub klasy par różnicowych i przypisać odpowiednie geometrie ścieżek. Zamiast ręcznie wprowadzać geometrię ścieżki, możemy wybrać pasujący profil impedancji, który zdefiniowaliśmy w menedżerze układu warstw:

Impedance profile used in the design rule dialog – high priority rule overrides impedance profile

Profil impedancji użyty w dialogu zasad projektowych – reguła o wysokim priorytecie zastępuje profil impedancji

Należy zauważyć, że mamy inną zasadę projektowania, która ma najwyższy priorytet w naszej konfiguracji. Ta zasada projektowania dotyczy tylko określonych pomieszczeń projektowych, które utworzyliśmy w poprzedniej aktualizacji. Te pomieszczenia projektowe są umieszczane bezpośrednio pod komponentami o małym rozstawie wyprowadzeń i pozwalają nam lokalnie stosować szerokość i odstępy ścieżek do 85 um w regionie wyjściowym. Zasady projektowania dla tych pomieszczeń mają najwyższy priorytet, ponieważ musimy zastąpić zdefiniowane profile impedancji. Ponieważ możemy nie być w stanie przestrzegać wymaganej geometrii ścieżek w tych pomieszczeniach, musimy utrzymać je jak najmniejsze i używać geometrii ścieżek, które odbiegają od profili impedancji tylko tam, gdzie jest to absolutnie konieczne. Jeśli utrzymamy te sekcje bardzo małe, ogólny wpływ na integralność sygnału kanału będzie akceptowalny. Jednak będziemy musieli zweryfikować to w naszych symulacjach po układaniu.

Design rooms in red shown underneath fine-pitch BGAs

Pomieszczenia projektowe na czerwono pokazane pod komponentami BGAs o małym rozstawie wyprowadzeń

Routing LPDDR4

Teraz, gdy wszystkie zasady projektowania zostały zdefiniowane, możemy rozpocząć trasowanie pierwszego interfejsu. Na tej płytce zaczniemy od interfejsu DRAM.

Zauważysz, że nie zdefiniowaliśmy jeszcze ogólnej strategii trasowania dla tej płyty. Moglibyśmy to zrobić przed umieszczeniem jakichkolwiek tras i w zależności od osobistych preferencji, nie ma w tym nic złego. Na tej płycie zdecydowałem się najpierw trasować interfejs DRAM, aby zobaczyć, ile miejsca i ile warstw trasowania musimy przeznaczyć na interfejs DRAM. Jeśli uda nam się trasować układ LPDDR4 na dwóch lub trzech warstwach sygnałowych, wtedy możemy przeznaczyć jedną lub dwie warstwy trasowania na inne interfejsy w pobliżu. Ponieważ interfejs DRAM zajmuje dość dużo miejsca, szczególnie na małej płycie jak ta, posiadanie dodatkowej, wolnej warstwy sygnałowej byłoby bardzo pożądane.

Kondensatory odsprzęgające LPDDR4

Spójrzmy szybko na trasowanie kondensatorów odsprzęgających na układzie LPDDR4. Podłączenie kondensatorów odsprzęgających było częścią trasowania wyprowadzeń w poprzednim artykule. Przyjrzyjmy się temu najpierw, aby zobaczyć, czy musimy dodać jakieś dodatkowe VIA lub ścieżki na górnej lub dolnej warstwie. Fakt, że używamy VIA wypełnionych i zakrytych, naprawdę działa na naszą korzyść, jeśli chodzi o trasowanie kondensatorów odsprzęgających.

Każdy pin zasilający na układzie DRAM posiada własną przelotkę (VIA), która może łączyć się ze wszystkimi 10 warstwami płytki. Musimy używać VIA na tych pinach, ponieważ mamy do czynienia z prądami zwrotnymi na wszystkich płaszczyznach masy w układzie warstw. Ponieważ kondensatory sprzęgające są umieszczone po dolnej stronie płytki, musimy również mieć dostępne pady zasilające VDD i VDDQ po dolnej stronie płytki. Układ DRAM ma rozstaw pinów 0,65mm w osi Y. Ten rozstaw pinów pozwala nam umieścić kondensatory sprzęgające bezpośrednio między padami GND a VDD/VDDQ. Ta konfiguracja umożliwia uzyskanie możliwie najniższej indukcyjności pętli. Możemy teraz równomiernie rozłożyć kondensatory sprzęgające wśród pinów zasilających.

Opcjonalne rezystory zakończeniowe zegara są również umieszczone bezpośrednio pod pinami zegara, każdy bezpośrednio połączony z pinami przez VIA.

Decoupling capacitors placed on bottom side of the LPDDR4 IC

Kondensatory sprzęgające umieszczone po dolnej stronie układu LPDDR4

Trasowanie sygnałów LPDDR4

Ponieważ nie potrzebujemy dodatkowych segmentów ścieżek dla kondensatorów sprzęgających, możemy wykorzystać przestrzeń na dolnej warstwie do trasowania sygnałów. Będziemy trzymać się blisko projektu referencyjnego i.MX 8M plus i umieścić wszystkie pary różnicowe DQS na dolnej stronie płytki. Dodatkowo możemy również umieścić sygnały resetowania DRAM i włączenia zegara na dolnej stronie:

DRAM routing bottom side

Trasowanie DRAM od spodu

Kolorowanie sygnałów komend/adresów/kontroli inaczej niż grupy DQ pomaga nam zidentyfikować dobrą strategię trasowania. Sygnały komend/adresów/kontroli w kolorze cyjanowym znajdują się wszystkie za pierwszymi dwoma rzędami pinów sygnałowych na SoC, z wyjątkiem dwóch sygnałów zegarowych. Jeśli chcemy trasować te sygnały na wewnętrznych warstwach, musimy upewnić się, że żadne VIA z dwóch zewnętrznych rzędów pinów sygnałowych nie są na drodze. Możemy połączyć Byte 0 z kanałów A i B oraz sygnały zegarowe, które są wszystkie dostępne na dwóch zewnętrznych rzędach, bezpośrednio na górnej warstwie, bez potrzeby zmiany warstwy:

DRAM top side routing

Trasowanie DRAM od góry

Bajt 1 z kanałów A i B znajduje się w obu przypadkach w kierunku rogu BGA. Jest to idealne, ponieważ pozwala nam przenieść te sygnały na L2 i połączyć je z układem DRAM, jednocześnie pozostawiając wystarczająco dużo miejsca między tymi dwoma grupami trasowania, aby połączyć sygnały komend/adresów/kontroli:

DRAM L2 routing

Trasowanie DRAM L2

Ściśle mówiąc, nie zmieniamy warstwy odniesienia, ale wprowadzamy drugą, przełączając się na L2. Gdy tylko umieścimy ślad z napięciem zmieniającym się w czasie nad płaszczyzną masy, prąd będzie płynął niezależnie od tego, czy obecna jest druga płaszczyzna odniesienia. Aby zapewnić ścieżkę powrotną dla tych prądów, używamy również VIA powrotnych blisko przejść warstw na górnej warstwie. Sygnały, które zmieniają warstwy za dwoma zewnętrznymi rzędami pinów pod BGA, mają już blisko siebie VIA powrotne, które są tworzone przez dwa rzędy pinów masy i VIA masy SoC:

Return path VIAs for the DRAM interface

VIA ścieżek powrotnych dla interfejsu DRAM

Oto jeszcze jeden szczegół, o którym należy pamiętać w kontekście ścieżek powrotnych. Używamy warstwowego układu mikroprzejść (micro VIA) o przesuniętych poziomach. Dlatego dwa kolejne mikroprzejścia muszą być umieszczone w pewnej minimalnej odległości od siebie. Krótki odcinek ścieżki jest potrzebny, aby nawiązać połączenie między dwoma kolejnymi mikroprzejściami. Ten odcinek ścieżki jest umieszczony na płaszczyźnie masy pod górną i dolną warstwą. Musimy uważać, aby nie tworzyć żadnych cięć lub pustek na płaszczyźnie masy, które mogłyby zakłócić ścieżkę powrotną linii sygnałowych:

 Return path management - voids and splits on the left side, improved routing on the right side

Zarządzanie ścieżką powrotną - pustki i podziały po lewej stronie, ulepszona trasa po prawej stronie

Układając mikroprzejścia i odcinki ścieżek zgodnie z siatką BGA urządzenia DRAM, możemy upewnić się, że pod liniami sygnałowymi zawsze znajduje się solidne połączenie z masą:

Ścieżki na górnej warstwie i na L2 są rozmieszczone w równych odległościach co najmniej 0,275 mm od siebie. Ta odległość jest konieczna, aby zapewnić, że nie stworzymy nadmiernego przeplotu między tymi sygnałami. Musimy to również zweryfikować w symulacji po układaniu.

Jedyną rzeczą, która pozostała do zrobienia teraz, aby zakończyć trasowanie interfejsu DRAM, jest strojenie opóźnień. Nie będziemy tego jednak robić teraz. Zamiast tego, strojenie opóźnień zostanie wykonane dla wszystkich interfejsów, gdy trasowanie zostanie zakończone. W przypadku projektów o bardzo wysokiej gęstości lub interfejsów wymagających dużej kompensacji opóźnień, najlepiej jest wykonać strojenie długości wcześniej niż później. Wymagania czasowe dla LPDDR4 nie są jednak zbyt rygorystyczne, więc jestem przekonany, że nie napotkamy żadnych problemów, jeśli zajmiemy się tym później.

Na razie trasowanie DRAM jest zakończone i możemy przejść do fazy planowania układu oraz trasowania wszystkich innych interfejsów. To i więcej będzie częścią następnej aktualizacji projektu otwartoźródłowego modułu obliczeniowego!

About Author

About Author

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.

Powiązane zasoby

Powiązana dokumentacja techniczna

Powrót do strony głównej
Thank you, you are now subscribed to updates.