Jak trasować wyjścia pamięci DDR3 oraz CPU

Robert Feranec
|  Created: February 21, 2017  |  Updated: November 4, 2020

Coraz bardziej nieuchronnym staje się to, że projektanci płytek muszą tworzyć układy PCB o wysokiej prędkości podczas pracy z mikrokontrolerami. Dzięki mocy procesorów, takich jak rodzina wielordzeniowych procesorów ARM Freescale iMX6, ale przy bardzo niskim „koszcie za MIPS” (Million Instructions per Second - Milion Operacji na Sekundę), coraz bardziej pożądane jest używanie urządzeń, które zapewnią bogate oprogramowanie i wrażenia użytkownika w twoim produkcie.

Ale korzystanie z tych super-mikro dodanych kontrolerów pamięci niesie ze sobą wyzwania związane z szybkimi, gęstymi interfejsami pamięci z wytycznymi dotyczącymi układu DDR3. Gościnnie na naszym blogu, użytkownik Altium, Robert Feranec z Fedevel Academy, pokaże nam bardzo cenne wskazówki na temat trasowania interfejsu pamięci DDR3, w oparciu o jego sprzętowy projekt iMX6 Rex - kompaktowy i potężny zestaw programistyczny przeznaczony do komputerów jednopłytkowych.

Pamięć DDR3 jest wszechobecna. To prawie pewne, że profesjonalni projektanci układów drukowanych zmierzą się w końcu z obwodem, który muszą trasować z jej wykorzystaniem. W tym artykule znajdziesz wskazówki, jak prawidłowo poprowadzić interfejsy pamięci DDR3, nawet w przypadku bardzo gęstych i ciasno upakowanych projektów obwodów.

Zasady projektowania pamięci DDR3 i grupy sygnałów

Wszystko zaczyna się od zalecanych reguł szybkiego projektowania dla trasowania DDR3 w grupach. Podczas rozplanowania pamięci DDR3 interfejs jest dzielony na grupę poleceń, grupę kontrolną, grupę adresów, a także banki danych 0/1/2/3/4/5/6/7, zegary i inne. Zaleca się, aby wszystkie sygnały należące do tej samej grupy były kierowane „w ten sam sposób”, tj. przy użyciu tej samej topologii i przejść między warstwami.

Rys. 1: Wszystkie sygnały w grupie DATA 6 są kierowane „w ten sam sposób”, przy użyciu tej samej topologii i przejść między warstwami.

Jako przykład rozważ sekwencję trasowania pokazaną na rysunku 1. Wszystkie sygnały z grupy DATA 6 przechodzą z warstwy 1 do warstwy 10, następnie do warstwy 11 i w końcu do warstwy 12. Każdy sygnał w grupie wykonuje te same przejścia warstw i ogólnie przyjmuje taką samą odległość trasowania i topologię.

Jedną z zalet takiego kierowania sygnałów jest to, że podczas dostrajania długości (np. opóźnienia lub strojenia fazowego) długość osi Z w przelotkach może być ignorowana. Dzieje się tak, ponieważ wszystkie sygnały kierowane w ten sam sposób będą miały dokładnie te same przejścia i długości przez przelotki. 

Tworzenie grup pamięci DDR3

Altium Designer® wspiera prosty sposób tworzenia niezbędnych grup sygnałów. Etap ten odbywa się na schemacie projektu. Najpierw wokół każdego zestawu sieci, z których tworzone są grupy, umieszczane jest pomocnicze oznaczenie. Następnie do krawędzi oznaczenia dołącza się dyrektywę dotyczącą klasy sieci obwodu drukowanego, aby nadać grupie klasę sieci, co pozwala zastosować klasę siatki dla grupy. Przykład tego pokazano na rys. 2.

ddr3 memory example tutorial

Rys 2: Oznaczenia pomocnicze i dyrektywy PCB służą do tworzenia grup klas sieciowych dla trasowania DDR3.

Przypisywanie kolorów do grupy pamięci DDR3

Po zaimportowaniu nowych klas sieci na naszą płytkę drukowaną (za pośrednictwem polecenia zmiany inżynierskiej (ECO) w sekcji Projekt » Aktualizuj dokument PCB...), bardzo przydatne jest przypisanie różnych kolorów do każdej grupy, co ułatwia śledzenie tras. Przejdź do panelu płytki drukowanej, kliknij prawym przyciskiem myszy grupę (klasę siatki), do której chcesz przypisać kolor, i wybierz Zmień kolor siatki (Change Net Color) z menu podręcznego, jak pokazano to na rysunku 3.

ddr3 interface example

 Rys 3: Przypisywanie różnych kolorów do każdej grupy może ułatwić śledzenie trasowania.

Po wybraniu koloru kliknij ponownie klasę siatki lub samą siatkę prawym przyciskiem myszy i wybierz opcję Zastąp wyświetlanie » Zaznaczono WŁ. (Display Override » Selected ON). Zapewnia to, że wybrany kolor siatki zastępuje kolor dowolnej warstwy aktualnie używanej przez obiekty tej siatki.

Jeśli nie włączyłeś Zastąpienia koloru siatki (Net Color Override), sieci nie będą miały wybranego koloru. W takim przypadku przełącz opcję Widok » Zastąpienie koloru siatki (View » Net Color Override) lub użyj klawisza F5, aby włączyć to ustawienie globalnie (dla wszystkich sieci). Teraz jesteś gotowy, aby rozwinąć interfejs DDR3 procesora.

Czy planujesz z wyprzedzeniem pracę nad wyprowadzeniem CPU DDR3? 

Wybór odpowiednich przelotek dla konkretnej grupy pamięci i wybór sposobu użycia warstw PCB może znacznie uprościć układ DDR3. Przypisywanie różnych kolorów do każdej grupy pamięci pomaga czytelniej wizualizować interfejs.

CPU memory interface

Rys. 4: Wybór właściwego rozmiaru przelotki może pomóc zaoszczędzić miejsce dla większej ilości ścieżek.

Mikroprzelotka (μVia) zajmuje mniej miejsca w porównaniu do standardowych przelotek między warstwami. To pozwala nam rozprowadzać więcej ścieżek w tym samym obszarze. Mikroprzelotki oszczędzają również miejsce na innych warstwach. Wolne miejsce można wykorzystać na kolejne ścieżki.

Dlaczego warto korzystać z mikroprzelotek do sygnałów adresowych, poleceń i kontrolnych?

Grupa Adresów, Poleceń i Kontrolna ma największą liczbę sygnałów z grup pamięci. Gdybyśmy wybrali przelotki międzywarstwowe, zajęlibyśmy dużo miejsca na wszystkich warstwach. Wybierając mikroprzelotki, potrzebujemy tylko miejsca w Warstwie 3, a ponieważ mikroprzelotka ma mniejszą średnicę, mamy również więcej miejsca, aby poprowadzić sygnały w Warstwie 3.

Microvias

Rysunek 5: Dwie lub trzy ścieżki mogą zmieścić się między mikroprzelotkami, w tej samej przestrzeni potrzebnej na jedną ścieżkę między warstwami.

Dlaczego warto korzystać z przelotek międzywarstwowych dla „najbliższych grup” adresowych, poleceń i grupy kontrolnej?

Niektóre sygnały z grupy adresowej, poleceń i kontrolnej będą wymagały miejsca poniżej „najbliższych grup”.

Closest Groups

Rys. 6: Niektóre ścieżki adresu, poleceń i kontroli muszą zostać poprowadzone pod polami „najbliższych grup”.

Gdy grupa sygnałów adresu, poleceń lub kontroli zostanie przekierowana przez mikroprzelotki w Warstwie 3, pod warstwą w tej grupie pozostanie wolne miejsce. W przestrzeni tej można poprowadzić „najbliższe grupy”.

Microvias and fanout

Ryc. 7: Wolne miejsce pozostawione pod grupami trasowanymi za pomocą mikroprzelotek może być wykorzystane do poprowadzenia „najbliższych grup”.

Dlaczego „grupy zewnętrzne” używają mikroprzelotek?

Z powyższego zdjęcia jasno wynika, że na warstwie 10 zabraknie wolnego miejsca, aby poprowadzić „grupy zewnętrzne”. Tak więc umieszczenie „grup zewnętrznych” na warstwie 3 i użycie mikroprzelotek jest wynikiem planowania obciążenia wyjściowego.

Uwaga: Ta sama „technika planowania obciążenia wyjściowego” warstwy / przelotki / mikroprzelotki może być zastosowana również w innych interfejsach (np. PCI, ISA…). W ten sposób można poprowadzić nawet bardzo upchane i gęste projekty.

Wnioski

Trochę staranności i planowania na przyszłość, a trasowanie i dostrajanie długości obciążenia wyjściowego DDR3 może być procesem bezstresowym, nawet przy najbardziej kompaktowych i gęsto upakowanych wytycznych projektowych. IMX6 Rex jest wspaniałym przykładem tej troski i planowania, zaprojektowanym częściowo jako narzędzie do pokazania, jak to się robi. Postępując zgodnie z planem i krokami Roberta, każdy projekt DDR3 może zostać ukończony w znacznie krótszym czasie i ze znacznie większym prawdopodobieństwem zaprojektowania go poprawnie już za pierwszym razem.

Kompletny projekt Altium z układem DDR3 z powyższych zrzutów ekranu można pobrać ze strony: http://www.imx6rex.com/.

About Author

About Author

Robert is Founder & CEO of FEDEVEL and an expert in Motherboard, Processor and Microcontroller Board Design (x86, ARM, MIPS) based on Intel, VIA, AMD, Freescale, TI and others. He is an advanced Altium Designer user and professional contract design engineer.

most recent articles

Back to Home