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.
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:
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:
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.
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.
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:
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.
Pomieszczenia projektowe na czerwono pokazane pod komponentami BGAs o małym rozstawie wyprowadzeń
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.
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.
Kondensatory sprzęgające umieszczone po dolnej stronie układu 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:
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:
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:
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:
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:
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!