Routing

   
Przed przystąpieniem do routowania ścieżek pozostaje zapewnienie mechanizmu spełniającego wymagania czasowe projektu. W tym przypadku na podstawie czasu propagacji ścieżek, czasu przejścia pomiędzy warstwami, zmiennego czasu propagacji sygnału z pinu układu do jego wewnętrznej struktury i wielu innych przygotowano dla wszystkich krytycznych połączeń ścieżki kompensujące zapewniające stałą propagację sygnału dla danego interfejsu. Realizowane jest to w postaci automatycznie generowanych ścieżek widocznych na rysunku poniżej. W tym celu opracowano własny program który ingerował w plik projektu umieszczając w nim ścieżki o odpowiednich parametrach.

   
Jak widać wchodzą one w skład danego NETu jednak nigdy nie mogą zostać zroutowane. Dodatkowo w końcowym etapie projektowania muszą zostać usunięte z projektu.

   
W tak przygotowanym projekcie czas rozpocząć routowanie ścieżek. Po wielu kolejnych przybliżeniach otrzymuje kompletnie połączone elementy których widok dla tej płyty przedstawiono na kolejnych zdjęciach:

   
Routing głównego układu FPGA. Lewą część stanowi SuperSpeed'owy interfejs cyfrowy do układu USB3.0. Wyraźnie widać wyrównania ścieżek w celu zapewnienia zapewnienia właściwego czasu propagacji.

USB3.0

   
Całkowite połączenie USB3.0 do układu FPGA przedstawiono poniżej

   
Widać, że połączenie stanowi szereg spiralnych ścieżek. Ze względów konieczności zapewnienia właściwej impedancji charakterystycznej połączeń konieczne było przyjęcie stosu warstw:

  • ...
  • PowerPlane
  • Signals
  • Signals
  • PowerPlane
  • ...

   
Z tego to powodu doszło kolejne wymaganie polegające na konieczności redukcji przesłuchu pomiędzy sąsiadującymi warstwami. Jest to jeden z głównych powodów dla których w wszystkie ścieżki zostały poprowadzone ręcznie. Dla połączenia USB3.0 z układem FPGA dwie warstwy sygnałowe mają postać:

DDR2

   
Podobnie problem wygląda w przypadku połączenia układu FPGA z pamięciami DDR2 SODIMM. Kompletnie zroutowany układ ma postać:

   
W tym przypadku dwie sąsiadujące warstwy posiadają następujący topologie połączeń:

   
W przypadku DDR2 wymagania co do jakości połączeń powodują, że pojedyncza przelotka na linii sygnałowej wprowadza offset na linii który dla najszybszych pamięci wykracza poza dopuszczalne wartości.

   
Ze względu na inny typ układów dodatkowych FPGA i inną ich obudowę nie było możliwe wykorzystanie wykonanego routowania dla układu podstawowego dla interfejsu DDR2. Konieczne było zaprojektowania topologii ścieżek od nowa. Osiągnięty efekt ma postać:

   
W przypadku wszystkich przedstawionych tu interfejsów DDR2 widać liczne kondensatory blokujące na napięciu zasilania, odniesienia i referencyjnym dla połączenia DDR2-FPGA

PCIE & MAC1G

   
Kolejnym bardzo wymagającym interfejsem płyty jest 8-parowy PCIE. Jego topologia ma postać:

   
Pod układami wyrównania jitter'u i układami zasilania linii GTX układu FPGA widać połączenia różnicowe linii TX i RX interfejsu PCIE. Wyrównanie połaczenia osiągnięto na poziomie mniejszym niż 1mils

   
W przypadku interfejsu MAC1G, poza wyrównaniem ścieżek konieczne było wprowadzenie separacji galwanicznej linii sygnałowych interfejsu Ethernet. Na rysunku dodatkowo widać fragment zasilania +5V w postaci tzw polygon'u. W innych rysunkach w celu większej przejrzystości polygon'y zostały zamaskowane.

Widok warstw płyty

   
Całkowicie połączona płyta ma postać: