politechnika warszawska · danych wchodzą procesory, układy fpga, cpld itp.. systemy kontroli...
TRANSCRIPT
Politechnika Warszawska
Wydział Elektroniki i Technik Informacyjnych
Instytut Systemów Elektronicznych
HUBERT KASPRZYK
236488
Praca Inżynierska
PROJEKT SPECJALIZOWANEJ PŁYTY PCB
ZAWIERAJĄCEJ UKŁADY FPGA DLA
ZASTOSOWAŃ APLIKACJI KOSMICZNYCH
Praca wykonana pod kierunkiem:
PROF. NZW. DR HAB. INŻ. KRZYSZTOF POŹNIAK
Warszawa, 2014
Składam serdeczne podziękowania:
Rodzicom za cierpliwość,
dr inż. Maciejowi Linczukowi, dr inż. Grzegorzowi Kasprowiczowi,
mgr inż. Rafałowi Graczykowi, za cenne wskazówki i rady,
Firmie Astri Polska, za umożliwienie wykonania pracy inżynierskiej,
Kolegom, za współpracę w firmie Astri Polska.
Hubert Kasprzyk
Kierunek: Elektronika, Informatyka i Telekomunikacja.
Specjalizacja: Elektronika i Inżynieria Komputerowa.
Data urodzenia: 17.05.1990 rok.
Data rozpoczęcia studiów: 01.10.2010 rok.
Urodziłem się 17.05.1990 roku w Ostrowcu Świętokrzyskim (woj. Świętokrzyskie).
W 1997 roku rozpocząłem naukę w Szkole Podstawowej w Waśniowie. Sześć lat później
zostałem uczniem Gimnazjum w Waśniowie. Podczas nauki w Szkole Podstawowej
i Gimnazjum uczestniczyłem w wielu konkursach i olimpiadach z takich przedmiotów jak:
matematyka, informatyka, geografia, chemia, technika, religia.
W 2006 roku rozpocząłem naukę w Technikum nr 3 w Ostrowcu Świętokrzyskim, na
kierunku Technik Elektronik. Ucząc się w technikum startowałem w olimpiadach technicznych,
takich jak: Olimpiada Wiedzy Technicznej (6 miejsce w Polsce), Olimpiada Innowacji
Technicznych (finalista), Olimpiada Wiedzy o Wynalazczości (awans do finału), Ogólnopolska
Olimpiada Wiedzy Elektrycznej i Elektronicznej, Olimpiada Wiedzy Elektrycznej
i Elektronicznej „Euroelektra” (półfinalista), Konkurs Elektrotechniczny (drużynowo 4 miejsce
w Polsce). Poza olimpiadami technicznymi startowałem również w takich konkurencjach jak:
Mistrzostwa Pierwszej Pomocy PCK (finalista), Olimpiada o Diamentowy Indeks AGH
(półfinalista), a także wiele konkursów mniejszej rangi, z takich przedmiotów jak: matematyka,
fizyka, biologia, j.polski, przysposobienie obronne. Uczestnictwo w olimpiadach dało mi dwa
indeksy na uczelnie wyższe, w tym najbardziej prestiżowa - Olimpiada Wiedzy Technicznej,
dzięki której zyskałem możliwość studiowania na dowolnej uczelni technicznej w Polsce.
W 2009 roku odbyłem zagraniczne praktyki zawodowe w Maladze, w Hiszpanii, co za
skutkowało zdobyciem dokumentu „Europass Mobility”. Rok później ukończyłem szkołę
z wyróżnieniem, zdałem maturę, a także egzamin zawodowy, uzyskując tytuł Technika
Elektronika.
W 2010 roku rozpocząłem studia na Wydziale Elektroniki i Technik Informacyjnych, na
kierunku Elektronika, Informatyka i Telekomunikacja. Po dwóch latach studiowania wybrałem
specjalizację „Elektronika i Inżynieria Komputerowa” w Instytucie Systemów Elektronicznych,
gdzie obecnie kończę pracę inżynierską.
Od 2007 roku jestem wolontariuszem PCK. Początkowo jako Społeczny Instruktor
Młodzieżowy, a później jako ratownik Grupy Ratownictwa PCK. Posiadam kwalifikacje
w zakresie Kwalifikowanej Pierwszej Pomocy i stopień Ratownika PCK.
PROJEKT WIELOWARSTWOWEJ PŁYTY PCB ZAWIERAJĄCEJ TRZY UKŁADY
FPGA DLA ZASTOSOWAŃ APLIKACJI KOSMICZNYCH
Projekt HPC (High Performance Computing for Space Application) ma na celu zaprojektowanie,
wyprodukowanie i przetestowanie systemu pracującego w przestrzeni kosmicznej.
Podstawowym zadaniem jest przetwarzanie obrazu z satelity geostacjonarnego, np. jego
stabilizacja.
Obrazy przesyłane do systemu są wysokiej rozdzielczości: 7000px : 8500px, o głębi 36
bitów (12 bit na każdy kanał RGB). Prędkość transmisji to 10 kl/s. Przetwarzanie jest w czasie
rzeczywistym, w związku z tym urządzenie przetwarzające jest wysokiej wydajności. Sercem
układu są 3 układy FPGA firmy Xilinx: Virtex 6, które umożliwiają szybką obróbkę danych
i przesyłanie ich do urządzeń peryferyjnych z prędkościami kilkudziesięciu Gb/s.
Opracowany układ jest prototypem. Aby była możliwość testowania różnych interfejsów,
których wspólna realizacja nie byłaby możliwa na płycie PCB (ze względu na ograniczone
zasoby Virtex’ów) zostały podłączone 2 gniazda FMC HPC ( FPGA Mezzanine Card High Pin
Count) w standardzie VITA 57.1 [1]. Pozwala to na późniejsze opracowanie rozszerzających
system płyt PCB z wymaganymi interfejsami i ich łatwą wymianę w razie konieczności.
Projekt płyty PCB został zrealizowany na 16 warstwach, z których 8 warstw jest
sygnałowych, 4 warstwy płaszczyzn zasilania i 4 płaszczyzny masy.
PCB MULTILAYER PROJECT CONTAINING THREE FPGA SYSTEMS FOR
IMPLEMENTATION IN SPACE
HPC Project (High Performance Computing for Space Application) aims to design, manufacture
and trial a system working in space. The fundamental task is to process the image of
a geostationary satellite, an example of which can be its stabilization.
Images sent to the system are of high definition: 7000px: 8500px, with the depth of 36 bits
(12 bits for each RGB channel). Transmission speed is 10 frames / s. The processing comes in
the real time, therefore the processing device presents a remarkable efficiency. The three FPGAs
type from Xilinx: Virtex 6 serve as the underpinning of the system, which altogether enable
rapid data processing and transfer it to other peripheral devices at the speed of several dozen of
Gb /s.
The designed system serves as a prototype. In order to test a selection of interfaces, which
joint implementation would not be possible on the PCB (mainly due to the limited resources of
Virtexs) the two sockets HPC FMC were connected to the system (FPGA Mezzanine Card High
Pin Count) at the standard of VITA 57.1 [1]. This serves as a spur to develop the PCB system
expansion with the required interfaces and easy replacement if there comes such a necessity.
The PCB design was completed on 16 layers, 8 of which are signal ones, 4 ones of power
planes and 4 of them of GND plane.
11
1. WSTĘP ........................................................................................................................................... 15
1.1. Rozwój inżynierii kosmicznej w Polsce .................................................................................. 15
1.2. Podstawowe wymagania stawiane projektowi realizowanemu w ramach niniejszej pracy. 15
1.3. Rozwiązania stosowane w budowaniu elektronicznych urządzeń kosmicznych .................. 16
1.4. Analiza sprzętu możliwego do zastosowania w projekcie .................................................... 19
2. GENEZA, CEL, ZAŁOŻENIA .............................................................................................................. 22
2.1. GENEZA PRACY ...................................................................................................................... 22
2.2. CEL PRACY ............................................................................................................................. 24
2.3. ZAŁOŻENIA PRACY ................................................................................................................. 24
3. KONCEPCJA MODUŁU STABILIZACJI OBRAZU ............................................................................... 26
3.1. WYBÓR ELEMENTÓW UKŁADU ............................................................................................. 26
3.1.1. Wstęp ............................................................................................................................ 26
3.1.2. FPGA .............................................................................................................................. 27
3.1.3. Flash konfiguracyjny ...................................................................................................... 28
3.1.4. Pamięć RAM – DDR3 ..................................................................................................... 29
3.1.5. Oscylatory ...................................................................................................................... 29
3.1.6. Konwertery napięcia ..................................................................................................... 30
3.1.7. Warstwa fizyczna interfejsu Gigabit Ethernet ............................................................... 31
3.1.8. Układ buforowania i rozgałęziania sygnału zegara ....................................................... 31
3.1.9. Układ pamięci flash wykorzystywanej przez układy FPGA ............................................ 32
3.1.10. Źródło napięcia referencyjnego dla pamięci DDR3 ....................................................... 32
3.1.11. Bufor sygnałów interfejsu JTAG .................................................................................... 32
3.1.12. Stabilizator napięcia referencyjnego dla układów Virtex 6 ........................................... 33
3.1.13. Zastosowanie przerzutnika typu D w celu synchronizacji włączania napięć ................. 33
3.1.14. Pozostałe elementy zastosowane w projekcie.............................................................. 33
4. REALIZACJA KONCEPCJI ................................................................................................................. 36
4.1. SCHEMAT ELEKTRYCZNY ........................................................................................................ 36
4.1.1. Wstęp ............................................................................................................................ 36
4.1.2. Zasilacze ........................................................................................................................ 39
4.1.3. Sygnały zegarowe .......................................................................................................... 43
4.1.4. Konfiguracja ................................................................................................................... 44
4.1.5. Przechowywanie danych ............................................................................................... 48
4.1.6. Pamięć DDR3 ................................................................................................................. 49
4.1.7. Złącza FMC ..................................................................................................................... 51
4.1.8. Złącza FMC ..................................................................................................................... 53
12
4.1.9. GTX ................................................................................................................................. 53
4.1.10. Gigabit Ethernet ............................................................................................................ 54
4.1.11. Handshake ..................................................................................................................... 57
4.1.12. Zasilanie FPGA ............................................................................................................... 58
4.1.13. Masa FPGA ..................................................................................................................... 60
4.1.14. Złącza SMA ..................................................................................................................... 60
4.1.15. Złącza ERF ...................................................................................................................... 61
4.1.16. Złącza testowe ............................................................................................................... 62
4.2. PCB ......................................................................................................................................... 63
4.2.1. Masa (GND) ................................................................................................................... 63
4.2.2. Zasilanie ......................................................................................................................... 66
4.2.3. Linie transmisyjne .......................................................................................................... 66
4.2.4. Impedancja charakterystyczna ...................................................................................... 67
4.2.5. Laminat .......................................................................................................................... 68
4.2.6. Stos – laminat FR-408 .................................................................................................... 69
4.2.7. Linie sygnałowe ............................................................................................................. 73
4.3. OPIS ZŁĄCZ, PINÓW I PRZEŁĄCZNIKÓW ................................................................................ 77
4.3.1. Rozruch systemu ............................................................................................................ 77
4.3.2. Podłączenie baterii pod układy Virtex ........................................................................... 79
4.3.3. Opis pozostałych złącz „goldpin” ................................................................................... 80
5. URUCHOMIENIE I PODSTAWOWE TESTY PŁYTY PCB ..................................................................... 87
5.1. Wstęp..................................................................................................................................... 87
5.2. Uruchomienie i pomiary napięć zasilających. ........................................................................ 88
5.3. Obserwacja sygnałów zegarowych z oscylatorów. ................................................................ 90
5.4. Konfiguracja układów FPGA .................................................................................................. 94
5.5. Komunikacja pomiędzy układami FPGA (transceivery GTX) .................................................. 95
5.6. Pamięć RAM – DDR3 .............................................................................................................. 96
6. PODSUMOWANIE .......................................................................................................................... 99
7. LITERATURA ................................................................................................................................. 101
8. DODATKI ...................................................................................................................................... 104
8.1. Parametry układów FPGA .................................................................................................... 104
8.2. Specyfikacja układów pamięci flash XCF128XFTG64C: ........................................................ 107
8.3. Specyfikacja zastosowanego układu pamięci H5TQ4G63MFR-H9C .................................... 107
8.4. Specyfikacja oscylatorów ..................................................................................................... 108
8.5. Specyfikacja układów przetwornic napięcia ........................................................................ 108
13
8.6. Specyfikacja układu warstwy fizycznej obsługującej łącze interfejsu Gigabit Ethernet ...... 108
8.7. Specyfiakcja bufora zegarowego ......................................................................................... 109
8.8. Specyfikacja układu pamięci flash ....................................................................................... 109
8.9. Specyfikacja układu regulatora napięcia LTC3413EFE#PBF ................................................ 110
8.10. Specyfikacja układu bufora ............................................................................................. 110
8.11. Specyfikacja układu bufora napięcia ............................................................................... 111
8.12. Specyfikacja układu przerzutnika typu D ........................................................................ 111
8.13. Lista schematów znajdujących się na płycie DVD ........................................................... 112
8.14. Statusy układów FPGA odczytane po koniguracji ........................................................... 113
8.15. Wykresy „oka” dla transceiverów GTX łączących układy FPGA między sobą ................. 118
8.16. Wyniki testów pamięci RAM ........................................................................................... 130
14
15
1. WSTĘP
1.1. ROZWÓJ INŻYNIERII KOSMICZNEJ W POLSCE
Inżynieria kosmiczna jest bardzo intensywnie rozwijającą się dziedziną współczesnej nauki.
Rozwój jej jest wspomagany nowymi technologiami i możliwościami jakie niosą ze sobą
współczesne urządzenia elektroniczne. Osiągnięcia inżynierii kosmicznej oraz współczesnej
elektroniki są wykorzystywane w codziennym życiu, np. system GPS.
Rozwojem inżynierii kosmicznej w Polsce zajmuje się Centrum Badań Kosmicznych
Polskiej Akademii Nauk (CBK PAN) w Warszawie. W 2012 roku Polska stała się
pełnoprawnym członkiem Europejskiej Agencji Kosmicznej ESA. Dzięki temu w CBK PAN
są prowadzone projekty badawcze będące częścią większych europejskich i światowych
projektów naukowych. W dniu 25 lipca 2014 roku, Sejm Rzeczypospolitej Polskiej uchwalił
ustawę o powstaniu Polskiej Agencji Kosmicznej. POLSA (Polska Agencja Kosmiczna) ma
wspomagać polskie firmy i instytucje badawczo – rozwojowe. Jednym z głównych celów
POLSY będzie poprawienie współpracy pomiędzy ośrodkami naukowymi, a przemysłem. W
przyszłości ma to skutkować większym udziałem polskich firm w projektach kosmicznych, co
z kolei przekładać się będzie na pozyskiwanie większych środków finansowych z ESY, do
której Polska wpłaca rocznie ok. 20 mln euro, natomiast odzyskuje w postaci projektów
niewielką część tych pieniędzy (w październiku 2013 roku zawarto 8 pierwszych umów w
ramach projektów finansowanych przez ESA, które opiewały na łączną kwotę ok. 5 mln
euro).
1.2. PODSTAWOWE WYMAGANIA STAWIANE PROJEKTOWI
REALIZOWANEMU W RAMACH NINIEJSZEJ PRACY.
Niniejsza praca powstała jako część europejskiego projektu badawczego pt. „High
Performance Computing for Space Application”. Celem tego projektu jest zbudowanie
urządzenia elektronicznego będącego na wyposażeniu satelity geostacjonarnego i służącego
do stabilizacji położenia satelity, na podstawie widoku nieba.
Stabilizacja obrazu jest ważnym elementem pracy satelity obserwacyjnego. Dzięki temu
łatwiejsza staje się identyfikacja poszczególnych elementów na obrazie. Optyka satelity
będzie przechwytywać obrazy o rozdzielczości 7000px x 8500px. Obraz będzie podzielony na
3 kanały monochromatyczne RGB. Każdy kanał będzie przechwytywał zdjęcia z prędkością
10 kl/s. Jednym z wymagań stawianych projektowanemu urządzeniu będzie przystosowanie
16
go do przetwarzania obrazu w czasie rzeczywistym. Interfejsy wejściowe i wyjściowe będą
musiały umożliwiać transmisję sygnału z następującą prędkością:
Wzór nr 1.1
gdzie:
V – prędkość transmisji,
s – rozdzielczość obrazu (7000px x 8500px),
h – głębia obrazu (12 bit/kanał),
f – częstotliwość przechwytywania obrazu,
n – liczba kanałów.
Podstawiając powyższe parametry do wzoru nr 1.1 otrzymuje się:
Wymiana danych wewnątrz układów pracujących na projektowanej płycie PCB również
musi zapewniać powyższą wydajność. Możliwe jest zastosowanie kilku rozwiązań
umożliwiających taką przepustowość.
1.3. ROZWIĄZANIA STOSOWANE W BUDOWANIU ELEKTRONICZNYCH
URZĄDZEŃ KOSMICZNYCH
Urządzenia pracujące w przestrzeni kosmicznej muszą być przystosowane do
panujących tam warunków. Głównymi problemami są: promieniowanie kosmiczne, duże
różnice temperatur, problemy ze źródłami zasilania i tracenia mocy.
Do obserwacji Ziemi, typowo są używane architektury obsługujące urządzenia
mikrofalowe i optyczne. Nauki i badania kosmiczne pozwalają na wyspecjalizowanie
elementów elektronicznych odpowiednich do pracy w kosmosie. Urządzenia pracujące w
kosmosie składają się z urządzeń, podzielonych na trzy grupy:
Systemy przetwarzania i transmisji danych,
Systemy kontroli,
Systemy oprogramowania.
Podział taki jest wprowadzony ze względu na różne wymagania co do bezpieczeństwa
i bezawaryjności pracy poszczególnych podzespołów. W skład systemów przetwarzania
danych wchodzą procesory, układy FPGA, CPLD itp.. Systemy kontroli zawierają różnorodne
czujniki, które zbierają informacje z otoczenia. Następnie za pomocą systemów transmisji
(odpowiednich interfejsów) są one przesyłane do systemów przetwarzania danych. Po
przetworzeniu dane takie są wysyłane na Ziemię. Systemy oprogramowania to najczęściej
17
wbudowane w urządzenie układy przechowujące oprogramowanie i umożliwiające
konfigurację urządzeń, a także ich rekonfigurację.
W jednym urządzeniu możliwa jest instalacja systemów pochodzących od różnych
producentów. W takim przypadku, konieczne jest wcześniejsze przetestowanie współpracy
pomiędzy tymi systemami, aby mieć pewność, że całe urządzenie będzie działać niezawodnie
i nie będzie problemów z interfejsami służącymi do komunikacji pomiędzy tymi systemami.
Najprostsza architektura przedstawiająca zbieranie informacji i ich transmisję na
Ziemię, przedstawiona jest na rysunku poniżej.
Interfejs sterowania
Rys. 1.1 – podstawowa architektura zbierania i transmisji danych.
W związku z koniecznością zwiększania przepustowości transmisji danych,
produkowane są nowe generacje urządzeń służących do obserwacji ziemi i badań
kosmicznych. Wprowadzają one większą funkcjonalność do układów zarządzania danymi.
Jednym z rozwiązań stosowanych w tym celu, jest implementacja algorytmów
przetwarzających dane na satelicie. Algorytmy takie pełnią następujące funkcje:
Filtrowanie danych – pozwala to zmniejszenie ilości przetwarzanych danych,
Kompresja danych – pozwala tę samą ilość danych zapisać w mniejszej
objętości pamięci, dzięki wykorzystaniu korelacji pomiędzy tymi danymi,
Selekcja danych – pozwala na wybranie jedynie potrzebnych danych do dalszej
obróbki i wysłanie ich na Ziemię,
Szyfrowanie danych.
W celu implementacji tego typu algorytmów wprowadza się pomiędzy urządzenie
zbierające dane, a multiplexer, cyfrowy układ przetwarzania danych (DPU – Digital
Processing Unit).
System zbierania danych 1
System zbierania danych 2
System zbierania danych N
M U L T I P L E X E R
Pamięć
Interfejs wyjściowy
Transmiter
18
System komputerowy przeznaczony do pracy w kosmosie, powinien osiągać duże
wydajności obliczeniowe, przy niewielkim poborze prądu. Ważną cechą jest elastyczność
takiego systemu, aby istniała możliwość przydzielania mu różnych zadań w czasie pracy
w przestrzeni kosmicznej. Typowy system powinien posiadać następujące rozwiązania
technologiczne:
Szybkie i bardzo szybkie linie transmisji danych oraz interfejsy sieciowe,
Komputery typu payload (zbieranie, przetwarzanie danych oraz wysyłanie
informacji),
Cyfrowe procesory sygnałowe,
Moduły rekonfigurowanych procesorów,
Pamięci masowe (do przechowywanie informacji systemu payload),
Kompresja danych,
Szybkie szyfrowanie danych.
Szybkie linie transmisji danych są wykorzystywane do komunikacji pomiędzy układami
zainstalowanymi w obrębie jednego systemu. Zależnie od potrzeb szybkości transmisji
danych mogą być wykorzystywane różnego rodzaju technologie. SpiceWire jest bardzo
dobrze przyjętym i szeroko używanym standardem zapewniającym przepustowości do
160 Mbit/s na kanał. Jeżeli system wymaga większej przepustowości linii transmisyjnych,
powinien być użyty inny standard. Typowo systemy takie oparte są na komercyjnych
rozwiązaniach i przystosowane do pracy w przestrzeni kosmicznej. SpaceFibre zapewnia
transmisję danych rzędu kilku Gbit/s, jednak aby zachować wysoką wydajność, musi być
odpowiednio zoptymalizowany do pracy w przestrzeni kosmicznej. Nad taką optymalizacją
trwają już prace, co daje nadzieje, że w niedługim czasie stanie się on szeroko
wykorzystywanym protokołem w urządzeniach kosmicznych, zapewniającym transmisję
danych do kilku Gbit/s.
Komputery typu payload często są wykorzystywana jako ICU (Instrument Control
Units), które zapewniają interfejsy i funkcje kontrolne urządzenia. Kompletny komputer
powinien zawierać dodatkowy zdalny terminal zapewniający telemetrię i dystrybucję
instrukcji odebranych z jednostki ICU. Oprócz funkcji kontrolnych komputery typu payload
często wykorzystywane są do innych zadań, takich jak: przetwarzanie danych, pośrednia
pamięć, formatowanie i telemetria danych.
Jednym z głównych kryteriów projektowania komputerów kosmicznych jest ich
elastyczność, tak aby mogły być wykorzystywane w wielu różnych projektach kosmicznych.
Prowadzi to do znacznych ograniczeń związanych z wyborem elementów przetwarzających
19
dane (procesory, układy FPGA, itp.), a także odpowiednich interfejsów (CAN, SpW, PCI,
itp.). Ograniczenia te są narzucone, ze względu na zachowanie kompatybilności z innymi
urządzeniami, z którymi ewentualnie mogą współpracować, a także odporność na warunki
panujące w przestrzeni kosmicznej.
Aplikacje przetwarzające i wysyłające dane, takie jak aplikacje telekomunikacyjne czy
systemy obserwacji Ziemi, wymagają układów rekonfigurowalnych, które zapewniają dużą
moc obliczeniową i wysoką sprawnością energetyczną. Systemy takie w zależności od
potrzeb są odpowiednio przystosowywane do pełnionych funkcji. Układy te muszą zapewniać
wysoką przepustowość danych (rzędu kilkuset Mb/s, a nawet kilkunastu Gb/s), sprawność, a
także powinny być odpowiednio zoptymalizowane pod kątem efektywnej transmisji danych.
Technologia taka może być wykonana przy pomocy układów pośredniczących,
współpracujących pomiędzy wieloma procesorami i układami FPGA, co zapewnia wysoką
wydajność.
Specjalną klasą modułów przetwarzających dane, są moduły RPM (Reconfigurable
Processing Modules). Takie moduły jeszcze nie są oferowane w sprzedaży, jednak
w przyszłości mogą być doskonałym rozwiązaniem, dla wielu aplikacji kosmicznych. Moduły
takie są oparte na rekonfigurowalnych układach FPGA lub podobnej technologii
umożliwiającej używanie tego samego urządzenia dla wielu różnych aplikacji kosmicznych.
Ostatnie generacje układów FPGA oferują ogromne ilości zasobów logicznych, co pozwala
uzyskiwać tak dobre wydajności obliczeniowe jak sprzętowe realizacje algorytmów
obliczeniowych. Możliwe to jest dzięki implementacji projektu nowego urządzenia na bazie
tego samego układu FPGA, w zależności od zadania pełniącego przez układ. Implementacja
taka jest realizowana poprzez rekonfigurację układu FPGA. Umożliwia to projektowanie
aplikacji na urządzenia znajdującego się już w przestrzeni kosmicznej i w czasie trwania całej
misji zmianę ich zadań. Po zakończeniu jednej misji, ten sam sprzęt może zostać
rekonfigurowany i przydzielony do kolejnej misji, wykonując w niej inne operacje niż
dotychczas.
1.4. ANALIZA SPRZĘTU MOŻLIWEGO DO ZASTOSOWANIA W PROJEKCIE
Satelity obserwacyjne nie są powszechnie dostępne. W ich posiadaniu są jedynie Stany
Zjednoczone Ameryki Północnej. W Europie powstał pomysł stworzenia systemu obserwacji
nieba oraz Ziemi z satelity geostacjonarnego. Projekt został uruchomiony w lutym 2013 roku,
a w jego realizacji biorą udział firmy z Polski i Francji. Polska część projektu jest realizowana
przez Centrum Badań Kosmicznych PAN i firmę Astri Polska, których zadaniem jest
stworzenie systemu stabilizacji obrazu, na satelicie geostacjonarnym. Na rynku jest dostępne
20
wiele komputerów z szerokimi możliwościami wydajnościowymi. Mając szeroki wybór
urządzeń przetwarzających dane można by się pokusić o poszukiwanie odpowiedniego
urządzenia wśród gotowych produktów. Jednym z zasadniczych problemów
uniemożliwiających wykorzystanie gotowych urządzeń jest ich brak przystosowania do pracy
w przestrzeni kosmicznej. W satelicie obserwacyjnym ważnym zadaniem jest ciągła praca.
Taki wymóg to kolejny problem, z którym wiele dostępnych urządzeń nie radzi sobie, gdyż
istnieje potrzeba rekonfiguracji układów w czasie ich pracy. Brak odpowiedniego urządzenia
na rynku wpłynął na decyzję o projektowaniu własnej płyty PCB, spełniającej stawiane
wymagania.
Projektowanie urządzeń kosmicznych jest podzielone na wiele etapów. Na tych etapach
budowane są różne modele urządzeń. Pierwszy etapem jest stworzenie modelu ziemnego,
nielotnego. Składa się on z elementów ogólnie dostępnych, które posiadają swoje
odpowiedniki kosmiczne. Taki model urządzenia jest budowany w ramach projektu. Kolejne
modele lotne składają się z elementów przystosowanych do pracy w kosmosie. Przykładem
elementów stosowanych w modelu ziemnym są ogólnie dostępne układy FPGA serii Virtex,
które w modelach kosmicznych, lotnych są zamieniane na odpowiednie układy FPGA,
jednokrotnego programowania. W urządzeniach kosmicznych bardzo często stosujemy
powielenie identycznych układów w celu zwiększenia niezawodności. W sytuacji
uszkodzenia jednego z układów, do dyspozycji pozostaje reszta układów. Budując urządzenia
pracujące na Ziemi, wymiana uszkodzonego podzespołu jest tania. W przestrzeni kosmicznej
jest ona niewykonalna. W kosmosie uszkodzone elementy wyłącza się, a ich zadania
przydziela się innym układom. Promieniowanie radiacyjne jest czynnikiem, który negatywnie
wpływa na różnego rodzaju urządzenia, zwiększając ryzyko awarii.
System przetwarzający obraz musi zawierać układ, który będzie wykonywał procesy
przetwarzania. Na rynku dostępnych jest wiele układów, które mogłyby zostać użyte do tego
celu, np.:
Procesory,
Mikrokontrolery,
Układy FPGA,
Układy CPLD.
Procesory są uniwersalnymi urządzeniami, umożliwiające wykonywanie operacji
w szerokim zakresie. Szeroki zakres możliwości przekłada się na spowolnienie ich pracy.
Wybranie procesora nie byłoby zatem najbardziej optymalną formą realizacji przetwarzania
obrazu.
21
Mikrokontrolery zawierają szereg wbudowanych zasobów, jednak nie są przystosowane
do pracy w przestrzeni kosmicznej.
Układy FPGA mogą wydajnie przetwarzać sygnały, poprzez zaprogramowanie ich do
wykonywania dedykowanych operacji. Dzięki temu wykorzystując mniejszą ilość mocy niż w
przypadku procesorów, czy mikrokontrolerów, możliwe jest zrealizowanie wydajnego
urządzenia. Firma Xilinx oferuje układy FPGA, które mogą pracować stabilnie w przestrzeni
kosmicznej. Układy FPGA firm: Xilinx i Altera były testowane przez CBK. Większą
stabilnością i niezawodnością wykazały się układy firmy Xilinx. Układy FPGA firmy Xilinx
są dopuszczone do pracy w kosmosie przez Europejską Agencję Kosmiczną ESA.
Układy CPLD mogą wydajnie przetwarzać sygnały. Ich cechy są podobne do układów
FPGA, posiadają swoje kosmiczne odpowiedniki, jednak zasoby tych układów są mniejsze
w porównaniu z układami FPGA i niewystarczające do zrealizowania niniejszego projektu.
Decydując się na wybór konkretnego rozwiązania należy zapoznać się dokumentacją
układu i dobrać do niego odpowiednie układy peryferyjne. Niezależnie od wyboru potrzebna
jest pamięć RAM, a w przypadku układów nieposiadających nieulotnej pamięci, także pamięć
Flash, która będzie przechowywała dane konfiguracyjne dla układu. Konieczne jest
zapewnienie odpowiednich interfejsów komunikacyjnych, a także odpowiedniego systemu
rozprowadzania sygnału zegarowego. Pozostałe układy i złącza jakie należy zapewnić na
płycie PCB, wynikają ze specyfikacji stawianej prototypowi płyty. Taka płyta powinna
zawierać gniazda, umożliwiające podłączanie różnorodnych modułów zewnętrznych, za
pomocą których będzie można testować wiele interfejsów, a następnie wybrać najbardziej
optymalne rozwiązanie. Warto umieścić niektóre interfejsy bezpośrednio na płycie, tak aby
bez żadnych modułów rozszerzeń, możliwe było komunikowanie się bezpośrednio
z urządzeniami zewnętrznymi. Płyta prototypowa powinna zawierać złącza testowe, na
których możliwe będzie dokonanie pomiarów napięć zasilających w czasie pracy urządzenia.
Mając wybrane poszczególne elementy, które będą pracowały na płycie PCB, należy
sprawdzić jakich napięć zasilających i mocy potrzebują. Znając parametry potrzebne do
zasilenia układów, trzeba dobrać odpowiednie układy w bloku zasilacza, tak aby
wytrzymywały zadane obciążenie i zapewniały odpowiednie napięcia dla poszczególnych
układów.
22
2. GENEZA, CEL, ZAŁOŻENIA
2.1. GENEZA PRACY
Znając wymagania projektowe stawiane przez firmę Airbus Military przystąpiono do
pracy. Osoba odpowiedzialna w projekcie za implementacje algorytmów, oszacowała
zapotrzebowanie na zasoby płyty. Ze względu na równolegle prowadzone prace nad
algorytmami oraz częścią sprzętową płyty, wymagania te były sformułowane dość ogólnie, ze
sporym zapasem.
Początkowo zostały wybrane układy przeznaczone do przetwarzania obrazu. Należało
wziąć pod uwagę wymagania wydajnościowe systemu, a także ograniczenia wynikające
z przeznaczenia systemu do pracy w przestrzeni kosmicznej. Do przetwarzania obrazu zostały
wybrane układy FPGA Virtex 6 [2][3][4][5][6][7]. Szczegółowe informacje dotyczące
wyboru układów FPGA znajdują się w podrozdziale 3.1.1.
Kolejnym etapem było opracowanie architektury systemu, która została zaakceptowana
przez programistę systemu. Zostały wybrane trzy układy Virtex, współpracujące ze sobą.
Jeden z układów FPGA, komunikuje się z pamięcią flash, w której są przechowywane
strumienie danych konfiguracyjnych dla wszystkich układów. Pozostałe dwa układy FPGA,
strumienie konfiguracyjne odbierają z układu Virtex, który jest podłączony do pamięci flash.
Ważnym etapem i decydującym na temat wyboru układów i współpracujących z nimi
układów peryferyjnych było oszacowanie przepustowości systemu. Na urządzeniach
pracujących w przestrzeni kosmicznej, obraz będzie przetwarzany w czasie rzeczywistym.
Wymusza to konieczność uzyskania przepustowości wejściowych i wyjściowych
pozwalających na transmisję obrazów w czasie rzeczywistym (20Gb/s). Komunikacja
pomiędzy układami Virtex, a także z pamięcią RAM, musi być na tyle wydajna, aby możliwe
było przetwarzanie obrazów w czasie rzeczywistym. Po oszacowaniu wydajności konieczne
było oszacowanie pojemności i architektury pamięci DDR3 koniecznej dla prawidłowej pracy
układu. W celu pobierania danych z kamery, a także wysyłania ich do zewnętrznych
urządzeń, konieczne jest użycie odpowiednich interfejsów. Układy Virtex umożliwiają
realizację wielu interfejsów. Najlepszym sposobem na wybranie najbardziej optymalnych
interfejsów jest ich przetestowanie. Ze względu na możliwość testowania różnych interfejsów
powstał pomysł użycia gniazd FMC, umożliwiających rozszerzenie płyty w fazie testów
i przetestowanie różnych interfejsów. Projektując prototyp została przewidziana możliwość
przechowywania dodatkowych ważnych danych w układzie (np. dokumentacji błędów
systemowych oprogramowania, generowanych przez zaimplementowane oprogramowanie).
23
Dane takie mogą być wykrywane i zapisywane w pamięci flash lub na karcie SD. Zbieranie
takich danych umożliwia ich późniejszą weryfikację i wprowadzenie odpowiednich
poprawek. Szczegółowe informacje dotyczące wyboru pamięci flash służącej do konfiguracji
układów, pamięci flash służącej do przechowywania danych, karty SD, pamięci RAM
i gniazd FMC znajdują się w podrozdziałach 3.1.2, 3.1.3, 3.1.8, 3.1.13.
Mając opracowaną architekturę całego systemu, należało przystąpić do wyboru
elementów. Poszczególne elementy musiały współpracować z wybranymi układami FPGA
i posiadać swoje odpowiedniki, umożliwiające pracę w przestrzeni kosmicznej. Szczegółowe
informacje na temat wyboru wszystkich elementów znajdują się w podrozdziale 3.1.
Po wyborze elementów należało przeanalizować ich dokumentacje i oszacować pobór
mocy, a także sprawdzić wymagane napięcia zasilające. Znając te dane, możliwe było
dobranie odpowiednich źródeł zasilania, którymi były przetwornice napięcia, konwertujące
potencjał 5 V, na mniejsze wymagane wartości. Szczegółowe informacje na temat wyboru
przetwornic napięcia znajdują się w podrozdziale 3.1.5.
Na tym etapie zakończyła się faza koncepcji projektu. Należało przystąpić do realizacji
układu. Realizacja koncepcji rozpoczęła się od projektowania schematów ideowych. Zostały
stworzone schematy opisujące połączenia pomiędzy wszystkimi elementami użytymi
w projekcie. Wprowadzane były elementy dyskretne zgodne ze specyfikacjami elementów.
Szczegółowe informacje dotyczące projektowania schematów znajdują się w podrozdziale
3.2.
Po zakończeniu projektowania schematów należało przystąpić do określenia rozmiarów
płyty i rozmieszczenia na nim elementów. Na tym etapie konieczne było oszacowanie liczby
warstw sygnałowych potrzebnych do prowadzenia ścieżek. Mając te dane, możliwe było
zaprojektowanie odpowiedniego stosu warstw, na podstawie którego zostały wyliczone
szerokości ścieżek sygnałowych. Szerokości te musiały być odpowiednie w celu zachowania
wymaganej impedancji charakterystycznej. Szczegółowe informacje dotyczące
zaprojektowane stosu warstw znajdują się w podrozdziale 3.3.6.
Projektowanie połączeń na PCB zostało rozpoczęte od rozprowadzenia napięć
zasilających i masy na płaszczyznach. Warstwy te separują od siebie warstwy sygnałowe.
Konieczność rozprowadzenia dużej ilości napięć, wymagała użycia 4 warstw przeznaczonych
na płaszczyzny zasilania. Dodatkowo użyto czterech warstw przeznaczonych na płaszczyzny
masy, aby odseparować od siebie wszystkie warstwy sygnałowe. Mając rozprowadzone
napięcia i masę, podłączono wszystkie piny zasilające do odpowiednich warstw. Następnie
były łączone piny sygnałowe zgodnie z wcześniej zaprojektowanymi schematami.
Szczegółowe informacje dotyczące linii sygnałowych znajdują się w podrozdziale 3.3.7.
24
Ostatnim etapem pracy było zweryfikowanie poprawności projektu regułami DRC
(Design Rule Check) i wprowadzenie odpowiednich poprawek, a następnie wygenerowanie
dokumentacji produkcyjnej, na podstawie której została wyprodukowana płyta PCB.
2.2. CEL PRACY
Celem pracy było stworzenie płyty PCB zawierającej trzy układy FPGA umożliwiającej
implementację algorytmów estymacji przesunięcia obrazu oraz spełniającej wymagania
projektu „High Performance Computing for Space Application”.
Zgodnie ze specyfikacją dostarczoną przez firmę Airbus Military (francuski partner
w projekcie), należy skonstruować model ziemny urządzenia. Urządzenie to powinno
zawierać:
kilka rekonfigurowalnych układów z logiką programowalną – użycie kilku układów
FPGA w przestrzeni kosmicznej gwarantuje większą niezawodność systemu.
Konfiguracja z pamięci Flash – układy FPGA posiadają ulotną pamięć, a więc po
wyłączeniu zasilania tracą zawartość swojej pamięci,
Wewnętrzną komunikację pomiędzy układami FPGA,
Komunikację z urządzeniami zewnętrznymi poprzez wybór odpowiednich interfejsów,
np.: CAN, Gigabit Ethernet, SpaceFibre, SpW, HSSL,
Zastosowanie gniazda FMC, umożliwiającego rozszerzenie systemu w czasie testów,
Zasoby urządzenia mają wystarczyć do zaimplementowania algorytmów stabilizacji
obrazu.
2.3. ZAŁOŻENIA PRACY
Analizując cele i genezę pracy wybrano odpowiednie oprogramowanie do projektowania płyt
PCB. Zdecydowano się wykorzystać oprogramowanie Altium Designer.
Projekt „High Performance Computing for Space Application” firmy Airbus Military
jest realizowany przez wielu inżynierów równolegle. Praca w tym projekcie polegała także na
współpracy z wieloma inżynierami i uzgadniania wspólnych koncepcji rozwiązań.
W projekcie równocześnie prowadzono prace nad oprogramowaniem i sprzętem.
Optymalizacja projektu wymagałaby najpierw przeprowadzenia prac nad oprogramowaniem,
a następnie wykonania projektu płyty optymalnego dla danych algorytmów. Z powodu ram
czasowych narzuconych w projekcie ten model prac nie mógł zostać zaakceptowany, prace
prowadzono równolegle nad oprogramowaniem i sprzętem. Z tego powodu zaprojektowana
płyta nie jest optymalna pod względem zasobów i kosztów produkcji. Dzięki temu projekt
płyty jest uniwersalny i może być zastosowany w innych projektach badawczych.
25
W chwili pisania niniejszej pracy projekt „High Performance Computing for Space
Application” nie został jeszcze zakończony. Kolejnymi etapami projektu będą: uruchamianie
i testowanie komponentów sprzętowych na płycie, a także uruchamianie finalnych
algorytmów. Przewidywane jest wykonanie kolejnej wersji płyty, z poprawkami
sugerowanymi przez elektroników piszących pliki konfiguracyjne dla układów FPGA.
26
3. KONCEPCJA MODUŁU STABILIZACJI OBRAZU
3.1. WYBÓR ELEMENTÓW UKŁADU
3.1.1. Wstęp
Wybór elementów układu opierał się na wstępnych założeniach, opracowanych
w specyfikacji na podstawie wymagań stawianych projektowanej płycie PCB.
Najważniejszym elementem urządzenia elektronicznego, służącego do wykonywania
obliczeń, jest jednostka zajmująca się tymi operacjami. Mogą to być procesory, układy
FPGA, mikrokontrolery lub układy CPLD.
Na wstępie tej pracy została przeprowadzona analiza poszczególnych rozwiązań.
Najlepszym okazało się zastosowanie układu FPGA, ze względu na duże zasoby, możliwość
sprzętowej realizacji algorytmów, a także możliwość rekonfiguracji układu w czasie
rzeczywistym.
Układy FPGA mogą być konfigurowane za pomocą interfejsu JTAG (wymagane jest do
tego podłączenie układu pod komputer) lub przy pomocy układów zamontowanych na płycie
PCB i bezpośrednio połączonych z układem FPGA. Najlepszym i jednocześnie najprostszym
rozwiązaniem jest zastosowanie pamięci flash, z której układ FPGA będzie sam pobierał
strumienie danych konfiguracyjnych. Wybór pamięci flash jest uzależniony od układu FPGA.
Niezbędnym elementem umożliwiającym poprawną pracę układu FPGA jest pamięć
RAM. Podobnie jak flash, pamięć RAM, musi być dobrana do układu FPGA, zgodnie z jego
specyfikacją.
Układy FPGA są układami cyfrowymi, co wymusza użycie oscylatorów w systemie.
Oscylatory są źródłami referencyjnego zegara. Częstotliwość ta może być powielana lub
dzielona w układach FPGA, dzięki czemu możliwe jest uzyskiwanie sygnałów zegarowych
o różnych częstotliwościach. Sygnały zegarowe służą do synchronizacji przeprowadzanych
operacji pomiędzy układem FPGA, a układami peryferyjnymi oraz pomiędzy układami
FPGA.
Po dokonaniu wyboru podstawowych elementów peryferyjnych dla układu FPGA,
należało przeanalizować ich dokumentację i ustalić jakie napięcia zasilania będą potrzebne
w projekcie. Znając te napięcia, napięcia wymagane dla układu FPGA i obciążenie prądowe
dla każdego z napięć, należało wybrać źródła napięć. Najprostszym rozwiązaniem było
zastosowanie gotowych przetwornic DC/DC, zapewniających odpowiednią moc.
27
Pozostałe elementy użyte w projekcie były wymagane w specyfikacji dostarczonej
przez Airbus Defense & Space. Firma Airbus Defense & Space wymagała aby w systemie
znalazły się elementy takie jak: interfejs Gigabit Ethernet, złącza SMA, złącza FMC.
Układy FPGA oraz układy peryferyjne, do poprawnej pracy wymagały zastosowania
dodatkowych elementów.
W związku z koniecznością synchronizacji kilku układów tym samym sygnałem
zegarowym, konieczne było użycie buforów rozgałęziających sygnał zegarowy. Brak takich
buforów powodowałby nadmierne obciążenie i wzrost impedancji linii.
Niekoniecznym ale przydatnym układem jest pamięć flash, umożliwiająca
przechowywanie istotnych informacji, np. zrzucanie błędów w czasie testowania systemu.
Pamięci RAM wymagają napięcia referencyjnego, równego połowie napięcia zasilania.
Wymusiło to konieczność użycia regulatora DC, zapewniającego na wyjściu wymagane
napięcie.
Złącza FMC są podłączane najczęściej w standardzie VITA 57. Standard ten przewiduje
sygnały dla interfejsu JTAG. Zatem możliwe jest testowanie układów podłączonych do złącz
FMC. Do interfejsu JTAG podłączone są układy FPGA znajdujące się na płycie. Interfejs ten,
może być łączony w konfiguracji Daisy-Chain, jednak wymagałoby to aby w złączach FMC
zawsze była wpięta płytka z rozszerzeniami. Aby umożliwić skanowanie za pomocą JTAG
samych układów FPGA, należało interfejs ten zrównoleglić. Równoległe podłączenie kilku
układów pod JTAG spowodowałoby zbyt duże obciążenie linii. Aby temu zapobiec konieczne
było użycie bufora, za pomocą którego sygnały te zostały rozdzielone.
Układy FPGA wymagają odpowiedniej sekwencji włączania napięć. Dobierając
przetwornice napięcia DC/DC należało uwzględnić tę konieczność. Przetwornice napięcia
zastosowane w projekcie mogą być sterowane zewnętrznym sygnałem, który umożliwia
jednoczesne włączanie i wyłączanie wszystkich napięć wyjściowych. Sygnał ten podawany
jest z przerzutnika typu D, którym steruje użytkownik za pomocą przycisku DIP-SWITCH.
3.1.2. FPGA
Układ FPGA był wybierany z rodziny układów Virtex firmy Xilinx. Pod uwagę brane były
cztery serie tych układów: Virtex 4, Virtex 5, Virtex 6 i Virtex 7.
Głównymi czynnikami, które decydowały o wyborze najbardziej odpowiedniego układu były:
Przepustowość bloków szeregowej transmisji danych GTX (min. 5Gb/s),
Cena,
Częstotliwość pracy,
Pozostałe zasoby.
28
Układ Virtex 4 został wyeliminowany z dalszych rozważań, ponieważ nie spełniał
minimalnych wymagań co do przepustowości bloków typu transceiver GTX. Z wyboru
właściwego układu, został także wykluczony Virtex 7, ze względu na wysoką cenę
w przeliczeniu na jednostkę zasobów (nawet najtańszych modeli).
Pierwsze 3 kryteria spełniły układy Virtex 5, z rodziny FXT, i Virtex 6, z rodziny LXT.
W związku potrzebą wybrania optymalnego układu, przeanalizowano bardziej szczegółowo
modele serii Virtex 5 i Virtex 6. W tabelach 8.1 i 8.2 w dodatku nr 8.1 zostały przedstawione
wszystkie modele tych układów, w zadanym przedziale cenowym.
Uwzględniając wymienione parametry w tabelach 8.1 i 8.2, a także cenę względem tych
parametrów, najbardziej wydajnym i opłacalnym okazał się układ Virtex 6 XC6VLX195T –
1FF1156C [2][3][4][5][6][7].
Podstawowymi elementami systemu są 3 układy FPGA Virtex 6 XC6VLX195T-
1FF1156C.
W dalszej części projektu przeanalizowano parametry wybranego układu mające wpływ
na projekt płyty. W tabeli 8.3 w dodatku 8.1 znajduje się zestawienie podstawowych
parametrów tego układu.
Układy FPGA firmy Xilinx wymagają dużej ilości prądu podczas włączania, w celu
zapewnienia prawidłowej inicjalizacji urządzenia. Rzeczywisty pobór prądu zależy od
kolejności włączania napięć i szybkości zasilacza. Zalecana sekwencja uruchamiania dla
układów Virtex 6 jest następująca: VCCINT, VCCAUX, VCCO. Nie przestrzeganie tej
sekwencji może skutkować fizycznym uszkodzeniem układu FPGA.
Jeżeli zalecana kolejność włączania nie może być przestrzegana, wymagane jest aby
w trakcie konfiguracji, wszystkie piny I/O pracowały w stanie wysokiej impedancji.
Następnie napięcie VCCAUX musi być dostarczone wcześniej niż VCCO lub napięcia te
mogą pochodzić z tego samego źródła.
Podobna sytuacja jest w trakcie wyłączania zasilania. Napięcia zasilające powinny być
wyłączane w odwrotnej kolejności niż przy uruchamianiu.
Szybkość transferu danych przez szeregową linie odbiornika i nadajnika GTX wynosi
5 Gb/s.
3.1.3. Flash konfiguracyjny
Układy FPGA użyte w projekcie posiadają ulotną pamięć, tak więc muszą być konfigurowane
po każdym włączeniu zasilania. Aby możliwa była samodzielna konfiguracja systemu,
należało użyć pamięć flash przechowującą strumienie danych konfiguracyjnych do układów
FPGA. W tym celu został użyta pamięć flash XCF128XFTG64C [4], której charakterystyka
29
znajduje się w dodatku nr 8.2. Powyższa pamięć została wybrana ze względu na zalecenia
firmy Xilinx, znajdujące się dokumentacji wybranego układu FPGA Virtex 6 [4][7].
3.1.4. Pamięć RAM – DDR3
Układy FPGA Virtex 6, współpracują z różnymi typami pamięci RAM [3], takimi jak:
DDR,
DDR2,
DDR3,
QDR.
Standardy DDR i DDR2 zostały zastąpione przez tańsze, szybsze i wydajniejsze
pamięci DDR3, więc nie były brane pod uwagę w chwili wyboru pamięci RAM. Pamięć QDR
jest bardzo szybką pamięcią. Posiada dwie magistrale danych. Jedna z nich służy do zapisu,
druga do odczytu danych. Takie rozwiązanie umożliwia pracę dwukrotnie wydajniejszą niż
w przypadku pamięci DDR. Wadą tego rodzaju pamięci jest bardzo mała pojemność.
Najlepszym rozwiązaniem okazało się użycie pamięci DDR3, która jest szybka i najbardziej
rozpowszechniona na rynku.
Każdy z układów Virtex posiada własną pamięć RAM. Dwa układy mają podłączone
kości pamięci H5TQ4G63MFR-H9C [8] w obudowach FBGA. Pojemność tych pamięci
wynosi 4 Gb, wykonane są w technologii CMOS. Operacje są wykonywane przy zboczach
narastających i opadających, dzięki czemu uzyskuje się transfer 2 bitów na jednej linii,
w jednym takcie sygnału zegarowego.
Specyfikacja zastosowanego układu pamięci znajduje się w dodatku nr 8.3.
Jeden z układów FPGA ma podłączone gniazdo SO-DIMM, które zapewnia
zainstalowanie modułu pamięci RAM, o pojemności do 8 GB.
3.1.5. Oscylatory
System posiada 3 oscylatory LVPECL [9] zapewniające sygnały zegarowe
o częstotliwościach:
50 MHz – wykorzystywany podczas konfiguracji układów FPGA,
100 MHz – wykorzystywany jako główny sygnał zegarowy,
312,5 MHz – wykorzystywany jako dodatkowy sygnał zegarowy, w przypadku
potrzeby implementacji niektórych interfejsów, wymagających takiej częstotliwości.
Oscylatory te zostały wybrane ze względu parametry zgodne ze specyfikacją układów
Virtex 6. Oscylator 100 MHz może być w łatwy sposób transformowany na inne wartości
częstotliwości w układach MMCM (większość wymaganych wartości częstotliwości to
30
wielokrotności 50 MHz). W niektórych przypadkach mogą okazać się potrzebne
częstotliwości takie jak 312.5 MHz lub 625 MHz [2]. W celu łatwego uzyskania tych
częstotliwości został użyty oscylator o częstotliwości 312.5 MHz.
Specyfikacja oscylatorów znajduje się w dodatku nr 8.4.
3.1.6. Konwertery napięcia
Wejściowe napięcie zasilające system to 5 V i 12 V. Dla potrzeb poszczególnych układów,
wymagane jest przekonwertowanie napięcia 5 V na kilka innych, mniejszych wartości. Do
tego celu zostały wykorzystane moduły przetwornic PTH05020WAH [10] i PTH05060WAZ
[11]. Układy te konwertują napięcie wejściowe 5 V, na zadaną wartość napięcia wyjściowego.
Wartość napięcia wyjściowego ustawiana jest za pomocą rezystora (podłączonego do pinów
VOADJUST i GND) o odpowiedniej rezystancji. W zależności od wartości rezystancji
RVOADJUST można uzyskać napięcia wyjściowe z zakresu: 0.8 V od 3.6 V.
Rezystancję rezystora Rset, ustalającego zadane napięcie wyjściowe oblicza się ze
wzoru:
Równanie 3.1.
Przetwornica wymaga dołączenia na wejściu kondensatora elektrolitycznego
o pojemności 1000 µF oraz na wyjściu kondensatora tantalowego 330 µF.
Specyfikacja układów przetwornic napięcia znajduje się w dodatku nr 8.5.
Rys. 3.1 – symulacja włączania i wyłączania modułów z kontrolą Track.
31
3.1.7. Warstwa fizyczna interfejsu Gigabit Ethernet
System posiada 3 interfejsy typu Gigabitowy Ethernet (po jednym dla każdego układu Virtex
6). Pojedynczy blok interfejsu składa się z gniazda Ethernetu i warstwy fizycznej obsługującej
łącze. Warstwa fizyczna jest podłączona do układu FPGA.
Układ scalony w warstwie fizycznej to: Marvell 88E1111 [12]. Układ ten wielokrotnie
był już stosowany do pracy z układami FPGA firmy Xilinx. W związku z tym jest
sprawdzonym układem, co daje gwarancję jego niezawodnej pracy w systemie.
Specyfikacja układu warstwy fizycznej znajduje się w załączniku nr 8.6.
Rys. 3.2 – wykorzystanie układu do pracy z kablem miedzianym (skrętką).
3.1.8. Układ buforowania i rozgałęziania sygnału zegara
Globalne sygnały zegarowe na płycie są doprowadzone do każdego układu FPGA, gdzie
mogą być przetwarzane przez bloki MMCM (menedżery sygnałów zegarowych) na inne
częstotliwości. Każdy sygnał zegarowy, trafia na bufor [13] gdzie jest rozgałęziany na 3 lub 4
sygnały zegarowe, z których każdy jest przesyłany do jednego układu FPGA lub układu
peryferyjnego. Sygnały z oscylatorów są dostarczone do układów Virtex, za pomocą buforów.
Dzięki wykorzystaniu buforów, możliwe było doprowadzenie sygnałów zegarowych do
układów, z jednego generatora LVPECL. Daje to możliwość wykorzystania tego samego
sygnału zegarowego w każdym układzie FPGA, który w tym samym momencie trafia do
każdego z układów.
Wybór odpowiednich buforów był pokierowany koniecznością przesyłania sygnałów
o częstotliwościach kilku GHz, a także możliwość rozgałęziania jednego sygnału na 3 lub
więcej takich samych sygnałów.
Specyfikacja bufora zegarowego znajduje się w załączniku nr 8.7.
32
3.1.9. Układ pamięci flash wykorzystywanej przez układy FPGA
W celu przechowywania niewielkiej ilości danych przetwarzanych przez system została
zamontowana pamięć FLASH: JS28F00AM29EWLA firmy Micron [14]. Jest to
asynchroniczna pamięć FLASH typu NOR. Kryterium wyboru tej pamięci była pojemność.
Specyfikacja układu zastosowanej pamięci znajduje się dodatku nr 8.8.
3.1.10. Źródło napięcia referencyjnego dla pamięci DDR3
Przetwornice napięcia, które zostały użyte w projekcie umożliwiają uzyskanie na wyjściu
napięcia w zakresie 0.8 V do 3.6 V. Jednak potrzebne jest dodatkowo napięcie o wartości
0.75 V, które służy jako potencjał referencyjny dla pamięci DDR3. Aby uzyskać pożądaną
wartość napięcia równą 0.75 V, należało użyć regulatora napięcia. Regulator
LTC3413EFE#PBF [15] umożliwia przekonwertowanie napięcia 1.5 V, na 0.75 V. Regulator
ten został wybrany ze względu niewielki koszt, wydajność prądową 1 A oraz stabilność pracy.
Specyfikacja układu regulatora napięcia została zamieszczona w dodatku nr 8.9.
3.1.11. Bufor sygnałów interfejsu JTAG
Interfejs JTAG umożliwia konfigurowanie układów FPGA i wgranie strumieni
konfiguracyjnych do pamięci Flash. Oprócz tego, za pomocą JTAG, można testować układy
i moduły rozszerzające podłączone do złącz FMC. Aby była możliwość podłączenia do
interfejsu takiej ilości podzespołów, bez ryzyka wzrostu indukcyjności na liniach
Rys. 3.3 – realizacja interfejsu LVPECL.
33
transmisyjnych, należało użyć bufora, który w bezpieczny sposób rozdziela sygnały
i umożliwia doprowadzenie ich indywidualnie do każdego z elementów. Bufor użyty
w projekcie posiada 8 par we/wy [16].
Specyfikacja układu bufora znajduje się w załączniku nr 8.10.
3.1.12. Stabilizator napięcia referencyjnego dla układów Virtex 6
System został zaprojektowany tak, aby była możliwość testowania napięć układu FPGA. Do
stabilizacji i poprawnego odczytu tych napięć został zastosowany stabilizator napięcia:
MCP1726-ADJE/SN [17]. Stabilizatory tego typu były testowane przez firmę Xilinx
z układami FPGA Virtex 6.
Specyfikacja układu znajduje się w dodatku nr 3.11.
3.1.13. Zastosowanie przerzutnika typu D w celu synchronizacji włączania napięć
System wymaga odpowiedniej sekwencji włączania napięć zasilających. Realizacja tego
warunku jest wykonana za pomocą sygnału TRACK we wszystkich przetwornicach napięcia.
Włączenie zasilania układu odbywa się poprzez mikroprzełącznik, którego naciśnięcie
powoduje zmianę stanu przerzutnika. Wyjście przerzutnika steruje tranzystorem, który z kolei
wystawia odpowiedni stan (0 lub 1) na wejścia przetwornic konwertujących napięcia
zasilające. Przerzutnik typu D [18], służy do sterowania włączaniem i wyłączaniem zasilania,
za pomocą jednego przycisku. Przerzutnik D został wybrany z tego względu, że poprzez
podłączenie jego wyjścia na wejście D i sterowanie wejściem CLK, możliwa jest zmiana
sygnałów wyjść na przeciwne z każdym zboczem narastającym CLK. Schemat elektryczny
układu znajduje się na rys. 4.5.
Specyfikacja układu znajduje się w dodatku nr 8.12.
3.1.14. Pozostałe elementy zastosowane w projekcie
W projekcie oprócz elementów wymienionych w rozdziałach od 3.1 do 3.12 zastosowano
także następujące elementy:
Cewki – filtracja napięcia zasilającego,
Diody LED: czerwone i zielone – sygnalizacja procesów konfiguracyjnych układów
Virtex 6, a także dowolnych zdarzeń zaprogramowanych w fazie testów,
Koraliki ferrytowe – filtracja napięcia zasilającego,
Gniazda SMA - 32 gniazda umożliwiające przesyłanie sygnałów o częstotliwościach
RF,
Kondensatory o następującym dielektryku:
34
o elektrolityczne – filtracja napięcia zasilającego, doprowadzonego z zewnętrznego
źródła zasilania,
o tantalowe – filtracja napięcia zasilającego wychodzącego z przetwornic napięcia,
a także filtracja napięcia zasilającego na PCB w miejscach, które wymagały
użycia dużej pojemności (elektrolityczne nie mogły być użyte, że względu na
duży współczynnik ESR i słabe parametry elektryczne dla częstotliwości
wyższych od 100 kHz).
o ceramiczne – filtracja napięcia zasilającego przy każdym z układów systemu,
a także odfiltrowanie składowych stałych z niektórych linii transmisyjnych,
Matryce kondesatorów (scalene w jednej obudowie kilka kondensatorów):
o ceramiczne – filtracja napięcia zasilającego przy układach warstwy fizycznej
interfejsu Gigabit Ethernet.
Rezystory – ustawienie odpowiednich wartości napięć wyjściowych z przetwornic
napięcia, ograniczanie prądów, podciąganie do napięcia zasilającego lub masy
(niektórych pinów) (push-up, push-down).
Przełączniki DIP – SWITCH[19] – używane do ustawiania trybu pracy układów
FPGA, a także włączania i wyłączania niektórych układów:
o 4 przełączane pozycje,
o Konfiguracja przełączników: SPST,
o Max. prąd przepływający przez kontakty: 25 mA,
o Max. napięcie na kontaktach: 24 V,
Złącza typu:
o Header – wyprowadzenie sygnałów pomiarowych, możliwość podłączania
niektórych urządzeń na PCB (poprzez zwarcie odpowiednich pinów):
1 – rzędowe,
2 – rzędowe,
o IDC: T823-114A1S100HEU – złącze dla interfejsu JTAG,
o FMC – HPC (High Pin Count): ASP-134485-01 – możliwość rozszerzania
systemu,
o RJ-45 – gniazda dla interfejsu Gigabit Ethernet,
o Gniazdo kart SD,
o MX-8981-4V-LF – gniazdo prostokątne, służące do podłączenia zewnętrznego
źródła zasilania,
35
o ERF8-050-05.0-S-DV-TR – gniazdo przystosowane do transmisji szybkich
sygnału, w projekcie poprzez to złącze jest dostęp do niektórych transceiverów
typu GTX,
Tranzystor n-kanałowy BSS138 – służący do sterowania sygnałem TRACK
przetwornic napięcia (sekwencyjne włączanie napięć zasilających),
Mikroprzełączniki DTSM31N [20] – służące do włączania system i resetowania
niektórych układów:
o Konfiguracja przełącznika: SPST-NO,
o Obciążalność prądowa: 50 mA,
o Max. dopuszczalne napięcie na stykach: 12 V,
Tranzystory p-kanałowe FDN304P – służące do sterowania diodami LED,
Rezonator kwarcowy FA-238 [21] – wykorzystywany przez warstwę fizyczną
interfejsu Gigabit Ethernet:
o Częstotliwość: 25 MHz,
o Tolerancja częstotliwości: +/- 50ppm,
o Pojemność 12 pF,
Bateria: VL-1220/VCN:
o Rozmiar: 1220,
o Pojemność: 7 mAh,
o Napięcie wyjściowe: 3 V.
36
4. REALIZACJA KONCEPCJI
4.1. SCHEMAT ELEKTRYCZNY
4.1.1. Wstęp
Projekt schematu elektrycznego, podobnie jak cała płytka został wykonany w programie
Altium Designer [22][23]. Na rynku dostępnych jest kilka mniej lub bardziej znanych
programów do projektowania PCB. Do najbardziej znanych należą:
Altium Designer,
PADS,
Eagle,
KiCad.
Eagle i KiCad doskonale nadają się do projektowania prostych obwodów drukowanych.
Posiadają licencje typu freeware, dla niewielkich rozmiarów płytek. Prostota obsługi, a także
łatwy dostęp do tych programów przyczyniają się do ich popularyzacji w środowisku
amatorskim elektroników.
PADS i Altium Designer są rozbudowanymi programami, umożliwiającymi
projektowanie zaawansowanych obwodów drukowanych. Oba programy posiadają zbliżone
możliwości i wbudowane narzędzia projektowe. Zdania na temat tych programów są
podzielone. Część elektroników wybiera PADS, a inni wolą pracować w programie Altium.
Zdecydowaną zaletą programu Altium jest zintegrowanie wszystkich modułów w jednym
programie (PADS posiada osobne programy do projektowania schematów, PCB,
symulowania i wykonywania innych czynności). Dzięki integracji w jednym programie
wszystkich modułów łatwiejsze jest eksportowanie połączeń pomiędzy schematami, a PCB
i odwrotnie. Altium Designer jest programem bardziej rozpowszechnionym w Polsce niż
PADS. Wiele firm elektronicznych projektuje płytki w tym środowisku, co wpływa na
łatwiejszy dostęp do licencji oprogramowania.
Schemat elektryczny został zaprojektowany w oparciu o dokumentację techniczną
układów FPGA i każdego z użytych podzespołów peryferyjnych.
Cały projekt zawiera łącznie 31 arkuszy schematów elektrycznych, które zostały
podzielone na następujące bloki:
Zasilacze,
Sygnały zegarowe,
Konfiguracja,
37
Przechowywanie danych,
Pamięć DDR3,
Złącza FMC,
GTX,
Ethernet,
Handshake,
Zasilanie FPGA,
Masa FPGA,
Złącza SMA,
Złącza ERF,
Złącza testowe.
Etap tworzenia schematów był bardzo ważną częścią, gdyż nawet drobne błędy
popełnione na tym etapie projektu powodują duże problemy podczas uruchamiania całego
urządzenia. Późniejsza eliminacja tych błędów może być trudna lub niemożliwa do
przeprowadzenia. Dlatego ważną częścią projektu było dokładne prześledzenie dokumentacji
wszystkich wykorzystanych elementów i podzespołów oraz stworzenie schematu blokowego,
który znacznie ułatwił późniejsze prace nad schematami elektrycznymi.
Wyprowadzenia rozbudowanych układów, takich jak Virtex 6, są podzielone na banki.
Na schemacie ideowym każdy taki bank jest reprezentowany przez oddzielny blok. Dzięki
temu możliwe jest umieszczanie niewielkiej części schematu (związanej z jednym bankiem)
na jednym arkuszu schematu. Dzięki temu tworzone schematy są znacznie bardziej
przejrzyste. Podział na bloki jest zrealizowany w taki sposób, aby wszystkie piny występujące
w danym bloku fizycznie znajdowały się blisko siebie. Każdy blok ma indywidualnie
podłączone napięcie zasilające, dzięki czemu możliwe jest podłączanie układów
peryferyjnych wymagających różnych napięć zasilania (dany blok musi być zasilany takim
samym napięciem, jak podłączany komponent, aby była zgodność poziomów logicznych
przesyłanych sygnałów). Podobnie jak zasilania, również sygnały zegarowe mogą być
doprowadzane dla każdego bloku osobno. Sygnały te mogą być zewnętrzne, dostarczane
poprzez piny dostosowane do przesyłania sygnałów zegarowych (oznaczenie *CC pinu).
Sygnał zegarowy także można doprowadzić przez bloki MMCM (menedżer zmiany
częstotliwości sygnałów zegarowych) wewnątrz układu Virtex i przetransformować na
wymaganą częstotliwość.
Poniżej znajduje się schemat blokowy całego układu, a także opisy każdego z arkuszy
schematu elektrycznego.
38
Rys. 4.1 – schemat blokowy systemu.
39
4.1.2. ZASILACZE
4.1.2.1. Arkusz przetwornic zasilania
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_1_Power.SchDoc.
Rys. 4.2. przedstawia schemat ideowy przetwornicy [10][11] konwertującej napięcie
5 V na 6 innych napięć potrzebnych w całym systemie: 1.0 V, 1.2 V, 1.5 V, 1.8 V, 2.5 V, 3.3
V. Każdy z układów FPGA posiada osobny moduł zasilający rdzeń, VCCINT = 1.0 V i banki
bloków I/O VCCO = 2.5 V. Dodatkowe napięcie VCCAUX = 2.5 V dostarczane jest do układów
Virtex z dwóch przetwornic. Napięcia dla transceiverów GTX są zapewnione przez osobne
przetwornice, tj. VMGTAVCC = 1.0 V i VMGTAVTT = 1.2 V. Jeden moduł zasila banki GTX
wszystkich trzech układów FPGA. Do uzyskania każdego z napięć: 1.5 V, 1.8 V i 3.3 V użyto
po jednej przetwornicy.
Rys. 4.2 – schemat ideowy przetwornicy napięcia.
40
Każdy z modułów przetwornic na wejściu ma podłączony kondensator elektrolityczny
o pojemności 1000 µF. Na wyjściach znajdują się kondensatory tantalowe 330 µF, o niskim
współczynniku ESR = 25 mΩ. Tak niski współczynnik ESR jest wymagany dla zasilania
układów FPGA użytych w projekcie. Ustalenie napięcia wyjściowego uzyskuje się poprzez
dobranie rezystora o odpowiedniej wartości zgodnie ze wzorem:
Równanie 4.1
Obliczając rezystancje dla wymaganych napięć zostały uzyskane następujące wyniki:
Tabela 4.1 – rezystancje ustawiające wymagane napięcia na przetwornicach.
UWY [V] RSET [kΩ]
1.0 37.4
1.2 17.4
1.5 8.87
1.8 5.49
2.5 2.21
3.3 0.698
Po podaniu stanu niskiego na bramkę tranzystora Q1 następuję zwarcie linii TRACK do
masy, a tym samym jednoczesne uruchomienie wszystkich przetwornic napięcia. Jeśli na
bramce pojawi się stan wysoki (5 V) wówczas TRACK zostanie odłączony od masy i nastąpi
jednoczesne wyłączenie przetwornic. Proces włączania i wyłączania został przedstawiony na
Rys. 3.3.
4.1.2.2. Arkusz przerzutnika typu D i regulacji napięcia 0.75 V
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_1_Vref.SchDoc.
Poniższy schemat przedstawia realizację przetworzenia napięcia 1.5 V na wymagane
napięcie referencyjne dla pamięci RAM o wartości VREF = 0.75 V. Do wytworzenia tego
napięcia został wykorzystany układ: LTC3413EFE#PBF [15].
41
Zewnętrzne źródło zasilania jest doprowadzone poprzez złącze MX-8981-4V-LF. Do
złącza są podłączane: 12 V, 5 V i GND.
Rys. 4.3 – schemat ideowy konwertera napięcia (1.5 V → 0.75 V).
Rys. 4.4 – złącze MX-8981-4V-LF
42
Rys. 4.5 – realizacja ON/OFF za pomocą przerzutnika typu D.
Przerzutnik typu D [18] realizuje funkcję podawania stanu wysokiego lub niskiego na
bramkę tranzystora Q1. Stan początkowy układu jest ustalany poprzez rezystory R254 i R255
oraz kondensator C596. Po dostarczeniu zasilania do przerzutnika następuje ustawienie stanu
wysokiego na wejściu CLR i stanu niskiego na wejściu PRE. Tak więc, zgodnie z Rys. 3.12,
na wyjściu Q pojawia się stan wysoki, który jest podawany na tranzystor Q1. W tej sytuacji
wszystkie przetwornice napięcia są wyłączone. Do upływu czasu naładowania kondensatora
C596 przerzutnik nie reaguje na sygnały podawane na wejścia D i CLK. Po upływie tego
czasu, stan wejścia PRE jest wysoki, a na D jest ten sam stan co na . Wciśnięcie przycisku
S8 powoduje zmianę stanu wyjściowego na przeciwny, a to powoduje uruchomienie
wszystkich modułów zasilających. Wszystkie napięcia wyjściowe przetwornic pojawią się po
ok. 20 ms od czasu podania stanu niskiego na wyjście Q przerzutnika. Kolejne wciśnięcie S8
znowu zmieni stan wyjść na przeciwne i spowoduje to wyłączenie układów zasilających płytę
PCB. Elementy R254 i C596 stanowią układ RC, który odpowiada za resetowanie układu po
włączeniu zasilania. Stała czasowa τ = RC związana jest z czasem ustawienia się
odpowiednich stanów na wyjściach przerzutnika.
43
4.1.3. Sygnały zegarowe
4.1.3.1. Arkusz rozgałęziania sygnałów zegarowych
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_2_CLK.SchDoc.
Poniższy schemat przedstawia zastosowaną w projekcie metodę rozprowadzenia
globalnych sygnałów zegarowych z oscylatorów [9].
Wyjście pary różnicowej jest podłączone do wejścia bufora [13]. Bufor rozdziela sygnał
na 3 sygnały, które są doprowadzone do każdego z układów FPGA. Kondensatory
umieszczone na schematach służą do filtracji niewielkich tętnień pochodzących od zasilania.
Rezystory R100 i R101, a także R102 i R103 stanowią dzielniki napięcia. Zasilane są z szyny
RAIL_1.5 V, tak więc potencjał pomiędzy rezystorami w jednej parze jest równy 0.5 V, gdyż:
Równanie 4.2
Takie napięcie jest wymagane na pinie VT, jeśli pracuje on z oscylatorem LVPECL, co
wynika ze wzoru:
Równanie 4.3
W tym przypadku zarówno oscylator, jak i bufor są zasilane napięciem równym 2.5 V,
tak więc VT = 0.5 V.
Rys. 4.6 – bufory rozgałęziające sygnały zegarowe
44
W podobny sposób jak powyżej są rozprowadzone również sygnały zegarowe
wychodzące z MMCM układów Virtex, które są podawane na wejścia buforów. Łącznie
w projekcie użyto 9 buforów. Dwa z nich służą do rozprowadzenia sygnałów referencyjnych,
natomiast na wejścia pozostałych siedmiu buforów doprowadzone są sygnały zegarowe,
wyjściowe z układów FPGA oraz złącz FMC. Cztery bufory służą do doprowadzenia
sygnałów zegarowych z gniazd FMC do układów FPGA, dwa bufory służą do
rozprowadzenia sygnałów służących do synchronizacji układów Virtex 6 pomiędzy sobą, w
czasie ich pracy. Ostatni bufor umożliwia utworzenie dodatkowej częstotliwości będącej
wspólną dla wszystkich układów Virtex, która może być następnie transformowana ponownie
w menedżerach sygnału zegarowego MMCM lub służyć jako dodatkowa synchronizacja. Jest
to nadmiarowy bufor, który został umieszczony ze względu na to, że całe urządzenie jest
prototypem i przewiduje się, że może zaistnieć potrzeba jego wykorzystania w czasie
uruchamiania i testowania urządzenia.
4.1.4. Konfiguracja
4.1.4.1. Arkusz podłączenia układów FPGA do interfejsu JTAG
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_3_Config_JTAG.SchDoc.
Schematy zawierające elementy konfiguracyjne układów Virtex zostały zaprojektowane
na trzech arkuszach. Poniższy rysunek przedstawia bank 0 jednego układu FPGA - V1.
45
Połączenie kilku układów Virtex z interfejsem JTAG można zrealizować na kilka
sposobów. Jedną z metod jest połączenie typu DaisyChain [5], co oznacza że sygnał
wyjściowy TDO z JTAG trafia na wejście TDI pierwszego układu FPGA. Następnie pin TDO
układu Virtex jest połączony z pinem TDI kolejnego układu. Wyjście TDO ostatniego układu
FPGA trafia na wejście TDI interfejsu JTAG. Sygnały zegara TCK i trybu pracy TMS trafiają
do każdego układu FPGA ze wspólnej linii.
Rys. 4.7 – schemat ideowy banku 0 układu Virtex V1.
Rys. 4.8 – realizacja podłączenia układów Virtex do złącza interfejsu JTAG [5].
46
Interfejs JTAG został również podłączony do gniazd FMC, jednak istnieje możliwość
całkowitego ich ominięcia, lub podłączenia tylko jednego gniazda. Realizacja tego
rozwiązania zostanie przedstawiona w rozdziale 4.7.1. Każdy układ FPGA może pracować
w kilku trybach konfiguracyjnych [5], takich jak:
Master-Serial,
Slave-Serial,
Master SelectMAP (szyna danych x8, x16),
Slave SelectMAP (szyna danych x8, x16, x32),
JTAG/skanowanie,
Master Serial Peripheral Interface (SPI),
Master Byte Peripheral Interface Up or Down (BPI-UP, BPI-DOWN) (szyna danych
x8, x16).
Powyższe konfiguracje można uzyskać za pomocą przełączników S1, S2 i S3.
W konfiguracji master jednego układu FPGA (V1) pamięć Flash, z której przesyłane są
strumienie konfiguracyjne, otrzymuje sygnał zegarowy z urządzenia ustawionego w tryb
master. Pozostałe układy Virtex muszą w tej sytuacji pracować w trybie slave i podobnie jak
pamięć Flash, sygnał zegara konfiguracyjnego otrzymują z układu FPGA V1, który jest
ustawiony w tryb master. Ustawienie źródła sygnału zegarowego do konfiguracji, wybierane
jest za pomocą zworek J43 i J44. Sygnał zegarowy służący do konfiguracji, generowany
w układzie FPGA V1 ma częstotliwość 33 MHz. Jednocześnie w całym systemie tylko jeden
układ może pracować w trybie master.
Innym rozwiązaniem jest ustawienie wszystkich układów w tryb slave. Wtedy
potrzebny jest zewnętrzny sygnał zegarowy. Taki sygnał został podłączony do wszystkich
układów FPGA, jak również do pamięci Flash. Oscylator konfiguracyjny (1) wystawia sygnał
o częstotliwości 50 MHz (z taką mogą być konfigurowane układy w trybie slave).
Dodatkowym atutem oscylatora jest możliwość jego wyłączenia, jeśli układ Virtex V1 miałby
pracować w trybie master.
W celu wizualizacji procesu konfiguracji diody LED zostały podłączone do pinów
DONE i INIT każdego z układów FPGA.
4.1.4.2. Arkusz podłączenia układu V1 do pamięci konfiguracyjnej typu Flash
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w w dodatku
nr 13: HPC_3_Config_Flash.SchDoc.
Pierwszy z układów FPGA jest konfigurowany bezpośrednio za pomocą pamięci Flash
[4]. Konfiguracje układu FPGA można przeprowadzić w 6 trybach opisanych w poprzednim
47
rozdziale. W praktyce z wymienionej wcześniej listy trybów, najkorzystniejszymi są
równoległe konfiguracje i to one były wytycznymi podczas projektowania schematów
konfiguracyjnych.
Virtex 6 posiada 2 bloki (24 i 34) służące do konfiguracji układu. Z bloków tych
wyprowadzone są sygnały poprzez dedykowane piny, które odpowiadają za szynę danych
i szynę adresową. Wyprowadzone są także sygnały (także poprzez dedykowane piny)
sterujące konfiguracją. Każdy z tych pinów może pełnić kilka funkcji, np. blok 34 w trybie
Master SelectMAP obsługuje szynę adresową, która jest połączona z pamięcią Flash.
W trybie Slave SelectMAP za pomocą tych samych pinów uzyskujemy dostęp do sygnałów
szyny danych [16…31]. Po skonfigurowaniu się układu, wszystkie piny są wykorzystywane
do transmisji zwykłych sygnałów I/O.
W zaprojektowanej konfiguracji blok 34 generuje sygnały zawierające adresy, pod
którymi znajdują się strumienie danych w pamięci Flash. Do tego bloku są podłączone 2 pary
różnicowe z gniazd SMA, w razie potrzeby służące do doprowadzenia sygnałów zegara
globalnego (piny GC – Global Clock). Na pinie K9 znajduje się programowy sygnał INIT,
który jest pomocny przy konfiguracji pozostałych dwóch układów Virtex.
Blok 24 obsługuje szynę danych, którą są przesyłane strumienie konfiguracyjne
pomiędzy pamięcią Flash i układem Virtex V1. Do tego bloku podłączony jest również
globalny sygnał zegarowy z oscylatora 312.5 MHz, który wykorzystywany jest jako jeden
z referencyjnych oscylatorów, używanych po zakończonym procesie konfiguracji układów
FPGA. Do bloku 24 podłączone są również wyjścia zegarowe MRCC i SRCC, które łączą się
z gniazdami SMA. Wymieniony wcześniej dodatkowy bufor sygnału zegarowego podłączony
jest do bloku 24 układu FPGA V1. Blok ten pełni funkcję sterowania procesem
konfiguracyjnym poprzez sygnały FCS, FOE, FWE i PLATFLASH.
Przełącznikiem S5 można ręcznie zresetować system w sytuacji niepowodzenia procesu
konfiguracyjnego.
Zastosowane rezystory są rezystorami podciągającymi, odpowiednio do masy lub
zasilania. Kondensatory pełnią funkcję odsprzegającą zasilanie.
Wszystkie sygnały szyny adresowej są podłączone poprzez rezystory do masy.
4.1.4.3. Arkusz konfiguracji układów V2 i V3
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_3_Config_V2_V3.SchDoc.
Schemat z arkusza nr 6 przedstawia konfigurację układów Virtex V2 i Virtex V3, które
pobierają strumienie danych z układu Virtex V1. Z tego powodu układy FPGA V2 i V3 nie
48
wykorzystują szyny adresowej. gdyż pobierają bezpośrednio strumienie danych od układu
V1. Dzięki temu układy V2 i V3 mogą pracować z 32-bitową szyną danych. Układ V1
pobiera strumienie konfiguracyjne dla V2 i V3 z pamięci Flash. Połączenie układu V1
z pamięcią Flash jest zrealizowane za pomocą 16-bitowej szyny danych. Z tego powodu
rozszerzanie szyny danych pomiędzy układami FPGA V1 i V2 oraz V1 i V3 nie miało sensu,
konfiguracja V2 i V3 odbywa się poprzez 16 bitów szyny danych.
Virtex V2 w bloku 24 oprócz danych konfiguracyjnych odbiera również globalny
sygnał zegarowy 312.5 MHz.
Blok 0 jest blokiem obsługującym sterowanie konfiguracją. Na schemacie z arkusza 6,
w blokach 12 i 16 układu V1 znajdują się wszystkie sygnały potrzebne do obsługi bloków 0
układów FPGA V2 i V3.
Konfigurowanie układów FPGA V2 i V3 odbywa się sekwencyjnie, we współpracy
z układem Virtex V1. Kiedy Virtex V1 skonfiguruje sam siebie, wysyła sygnał CSO (Chip
Select Output) z pinu AG30, który jest podawany na CSI (Chip Select Input) układu Virtex
V2. Powoduje to przejście układu V2 w stan odczytu szyny danych. Kilka taktów zegarowych
wcześniej V1 wysyła odpowiednie adresy do pamięci Flash i steruje nią, tak aby
przechwytywać strumienie konfiguracyjne dla układu V2, a następnie przesyła je za pomocą
szyny danych układu V2. Kiedy układ V2 wyśle sygnał DONE, wówczas rozpoczyna się
konfiguracja układu Virtex V3. Virtex V1 wysyła sygnał CSO z pinu F30 na pin odbierający
sygnał CSI w układzie V3. Dalszy proces konfiguracji przebiega dokładnie tak samo jak
w przypadku układu Virtex V2. Po odebraniu sygnału DONE wysłanego z układu V3, cały
system jest skonfigurowany i gotowy do pracy.
Układy V2 i V3 mogą odbierać sygnał zegarowy z zewnętrznego oscylatora 50 MHz,
jak również z układu Virtex V1 poprzez piny AE26 i E31.
4.1.5. Przechowywanie danych
4.1.5.1. Arkusz pamięci FLASH służącej do przechowywania danych
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_4_Data_Flash_V1.SchDoc.
Pamięć Flash [14] została podłączona do układu FPGA V1, aby móc magazynować
przetwarzane informacje. Jeżeli w trakcie testów okaże się, że ilość miejsca w tej pamięci jest
niewystarczalna, istnieje możliwość uzyskania większej ilości miejsca na dane na karcie
pamięci SD, której pojemność może być w dowolnym momencie zmieniona.
49
Pamięć Flash i karta SD są połączone z blokami 22 i 32 układu Virtex V1. Zapis na
kartę pamięci odbywa się w sposób synchroniczny na szynie 1 lub 4 – bitowej (w zależności
od konfiguracji programowej). Gniazdo karty jest połączone z zasilaniem 3.3 V, gdyż jest to
standardowe napięcie dla kart SD.
Pamięć Flash posiada 26-bitową szynę adresową i 16 bitową szynę danych.
Wszystkie operacje są przeprowadzane asynchronicznie. Podczas operacji zapisu, odczytu
i kasowania pamięć korzysta z napięcia równego 3.3 V, natomiast piny I/O mają podłączone
zasilane równe 2.5 V. Pamięć Flash może być resetowana za pomocą sygnału reset
wysyłanego z pinu AN20 układu FPGA V1.
4.1.6. Pamięć DDR3
4.1.6.1. Arkusz podłączenia pamięci DDR3 do układu V1
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_5_DDR3_V1.SchDoc.
Virtex V1 został podłączony do gniazda SO-DIMM, tak aby mógł korzystać z dużej
ilości pamięci. Początkowo przewidywane było podłączenie kości w obudowach FBGA,
jednak ze względu na ograniczoną ilość miejsca na płycie PCB oraz zapotrzebowanie na
pojemność przynajmniej 4 GB, należało zmienić koncepcję i użyć gniazda SO-DIMM.
Komunikacja pomiędzy podzespołami została tak zaprojektowana, aby można było obsłużyć
moduły pamięci do 8 GB.
Moduł pamięci DDR3 posiada 14 – bitową szynę adresową, która jest obsługiwana
przez bank 26 układu V1. W tym samym banku obsługiwana jest również magistrala wyboru
aktywnych banków pamięci RAM, sterowanie pamięcią i sygnałami zegarowymi
doprowadzanymi do DDR3. Wejściowy sygnał zegarowy 100 MHz wprowadzony jest na
piny A31 i B31.
Rys. 4.9 – schemat ideowy karty pamięci SD
50
Pozostałe banki: 25, 26 i 36 komunikują się z 64 – bitową szyną danych pamięci RAM.
Sygnały kontrolne i sygnały maskujące doprowadzone są do każdego z tych banków.
Bank 35 ma podłączone 4 diody LED, które są dodatkowymi diodami sygnalizującymi
dowolne zdarzenia. To jakie zdarzenia będą prezentowane wizualnie za pomocą diod LED,
zależy od potrzeb programistów systemu.
Moduł pamięci DDR3 jest zasilany napięciem 1.5 V. Z tego względu banki układu
Virtex V1, komunikujące się z pamięcią zasilane są tym samym potencjałem.
Pamięć wymaga napięcia referencyjnego 0.75 V dla sygnałów szyny adresowej. To
samo napięcie jest również doprowadzone do pinów referencyjnych banków układu V1.
Do złącza P5 doprowadzone są sygnały ZQ wszystkich pamięci na płycie. Poprzez
odpowiednie zwarcie tych pinów można przeprowadzać kalibrację.
Moduły pamięci RAM DDR3 mają zamontowane terminatory, dlatego nie ma
konieczności wprowadzania do układu dodatkowych rezystorów. Moduły takie są wykonane
w technologii fly-by [24], co oznacza, że dla każdej kości pamięci zainstalowanej na płycie
PCB modułu jest wykorzystywana ta sama linia adresowa. Nie ma jednak możliwości
sterowania wyborem aktywnie pracującej kości. Wszystkie pracują jednocześnie, a zapis do
odpowiedniej z nich, odbywa się poprzez uwzględnienie opóźnień propagacji sygnału. Z tego
powodu adresy i dane są wysyłane w sposób ciągły. Transmisja danych odbywa się
z odpowiednimi opóźnieniami dla każdej linii danych, tak aby docierały one do układu
pamięci w momencie, kiedy dotrze do niej adres zapisu tych danych. Sygnały adresu są
przesyłane równocześnie do każdego układu.
4.1.6.2. Arkusze podłączenia pamięci DDR3 do układów V2 i V3
W niniejszym podrozdziale został opisany fragment schematu znajdującego się w dodatku
nr 13: HPC_5_DDR3_V2.SchDoc i nr 10: HPC_5_DDR3_V3.SchDoc.
Schematy przedstawione na arkuszach 9 i 10 zawierają po dwa układy pamięci RAM:
H5TQ4G63MFR-H9C [8], o pojemności 4 Gb każda, które są połączone z układami Virtex
V2 i Virtex V3. Pamięci te są w obudowach FBGA 96 pin.
Podobnie jak w przypadku FPGA V1, do komunikacji z pamięciami DDR3 zostały
użyte te same banki układu V2. W tym przypadku pierwsze dwa banki (25 i 35) komunikują
się z pierwszym układem pamięci, a banki 26 i 36 niezależnie od poprzednich z drugim
układem pamięci. Realizacja osobnych magistral adresowych upraszcza prowadzenie ścieżek,
a także daje jednoczesny i niezależny dostęp do obydwu układów pamięci w tym samym
czasie.
51
Banki 25 i 26 obsługują magistrale adresowe, a także wysyłają sygnały zegarowe do
pamięci. Do tych banków jest również podłączone sterowanie pamięcią i magistrala wyboru
aktywnych banków pamięci. Bank 25 na pinach A31 i B31 odbiera globalny sygnał zegarowy
z oscylatora 100 MHz. Wszystkie linie adresowe i rozkazów są podłączone przez rezystory
terminujące do napięcia 0.75 V.
Banki 35 i 36 obsługują szyny danych komunikujące się z układami pamięci. Do tych
banków są również podłączone sygnały maski i sygnały kontrolne. Każda szyna danych jest
16 bitowa, a więc łącznie przy 2 kościach, do dyspozycji jest 32 równoległe linie danych.
Układy pamięci pracują z częstotliwością 400 MHz, a informacje są wysyłane zarówno na
narastających i opadających zboczach sygnału zegarowego, co daje łącznie 800 Mb/s
transferu za pomocą jednej linii danych. W związku z 16 bitowymi szynami danych, uzyskuje
się przepustowość 16 x 800 Mb/s = 12800 Mb/s. Możliwe jest wykonywanie tej samej
operacji jednocześnie na obydwu pamięciach, np. zapis danych może być z prędkością 25 600
Mb/s. Jednak ze względu na osobne linie adresowe, może w tym samym czasie być
przeprowadzany zapis do pierwszego układu pamięci oraz odczyt z drugiego układu pamięci.
Wtedy te dwa równoległe procesy odbywają się z prędkościami 12 800 Mb/s.
Do banku 35 są podłączone 4 diody LED. Mogą one służyć do optycznego pokazania
dowolnych komunikatów informujących o ważnych zdarzeniach w czasie pracy całego
systemu.
Wszystkie kondensatory użyte w tych schematach pełnią funkcję integralności
sygnałów.
Układy FPGA V2 i V3 wykorzystują te same banki i te same sygnały są wysyłane do
pinów banków układów V2 i V3. Globalny sygnał zegarowy - 100 MHz, jest podłączony do
pinów A31 i B31 banku nr 25 układu V3. Virtex V3 posiada również podłączone diody LED.
Łącznie w całym systemie zostało umieszone 12 nieprzypisanych diod LED, które poprzez
odpowiednie skonfigurowanie układów FPGA, mogą wysyłać optyczne komunikaty dla
użytkownika.
4.1.7. Złącza FMC
4.1.7.1. Arkusze podłączenia gniazd FMC do układów V2 i V3
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_6_FMC1_V2_Socket.SchDoc i nr 12: HPC_6_FMC2_V3_Socket.SchDoc.
Na arkuszach 11 i 12 przedstawiane są schematy ideowe połączeń gniazd FMC do
układów FPGA V2 i V3. Ze względu na dużą liczbę połączeń schemat połączenia jednego
52
gniazda został podzielony na dwa arkusze schematów. Pierwszy arkusz zawiera bloki złącza.
Drugi arkusz zawiera bloki układu FPGA, do których podłączone jest dane gniazdo.
Połączenia sygnałów pomiędzy arkuszami zostały zrealizowane za pomocą sygnałów „Net
label”. Cały system zawiera 2 gniazda FMC. Jedno z nich jest podłączone do układu Virtex
V2, natomiast drugie do układu Virtex V3. Realizacja połączeń jest dokładnie taka sama
w obu przypadkach. Wykorzystane są te same bloki układów FPGA, a sygnały są wysyłane
do tych samych pinów użytych bloków. Złącza FMC są połączone zgodnie ze specyfikacją
interfejsu VITA 57.1 [1]. każde gniazdo zawiera 400 pinów, na które składają się:
80 par różnicowych I/O,
8 par różnicowych transmiterów szeregowych GTX,
8 par różnicowych receiverów szeregowych GTX,
4 pary różnicowe sygnałów zegarowych GTX,
Interfejs JTAG,
Zasilanie,
GND.
Złącze FMC HPC (High Pin Count) jest kompatybilne ze złączem FMC LPC (Low Pin
Count). FMC LPC zawiera 160 pinów, których sygnały są umiejscowione w tych samych
miejscach na FMC HPC. Mechaniczne rozmiary gniazd są dokładnie takie same w obu
przypadkach. Dzięki realizacji takich gniazd możliwe jest rozszerzanie interfejsów systemu,
zarówno poprzez złącze 400 – pinowe, jak i 160 – pinowe.
Głównym napięciem zasilającym doprowadzonym do gniazd jest 2.5 V, jednak
występują też napięcia 3.3 V i 12 V.
W dolnej części schematu z arkuszu 12 widoczne jest złącze 14 – pinowe typu IDC,
które służy do zewnętrznej komunikacji z interfejsem JTAG. Obok znajduje się bufor
rozdzielający sygnały JTAG, takie jak TCK (sygnał zegarowy), TMS (wybór trybu pracy)
i TDI (szeregowe wejście danych). Rozdzielanie sygnału jest zastosowane ze względu na
podłączenie gniazd FMC do interfejsu. W podstawowej konfiguracji z interfejsem JTAG będą
komunikowały się jedynie układy FPGA. Jednak poprzez odpowiednie ustawienie zworek na
J14 i J15, można przesłać sygnał przez jedno lub oba złącza FMC. W sytuacji kiedy sygnał
interfejsu ma przepływać przez oba gniazda FMC, musi być włączony jeden przełącznik na
S4 ze schematu: HPC_3_Config_JTAG.SchDoc (arkusz 4). Sygnał FMC_HPC_TDI może
być rozłączany od bufora przełącznikiem S4, tak była możliwość całkowitego odseparowania
gniazd FMC, wtedy kiedy nie będzie potrzeba skanowania ich poprzez JTAG.
53
4.1.8. Złącza FMC
4.1.8.1. Arkusze podłączenia sygnałów z gniazd FMC do układów V2 i V3
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_6_FMC1_V2.SchDoc i nr 14: HPC_6_FMC2_V3.SchDoc.
Schematy na arkuszach 13 i 14 przedstawiają bloki układów Virtex V2 i Virtex V3,
które są połączone z gniazdami FMC z wcześniejszego podrozdziału. Do komunikacji ze
złączem wykorzystane są banki: 12, 13, 14, 22, 23 układów V2 i V3. Wszystkie sygnały są
parami różnicowymi. Banki 12, 13 i 14 obsługują sygnały dostępne tylko za pomocą złącza
FMC HPC. Banki 22 i 23, są podłączone do pinów gniazda, które mogą być wykorzystywane
w urządzeniu nakładkowym wyposażonym w złącze FMC LPC.
4.1.9. GTX
4.1.9.1. Arkusz transceiverów GTX układu V1
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_7_GTX_V1.SchDoc.
Blok GTX zawiera wszystkie banki układów typu transceiver GTX występujących
w jednym układzie FPGA. Łącznie jest to 5 banków, po 4 transmitery, 4 receivery i 2 pary
różnicowe sygnałów zegarowych w każdym banku. Jeden GTX umożliwia transmisję danych
z prędkością 5 Gb/s, tak więc cały bank GTX umożliwia transmisję danych z prędkością 100
Gb/s. Blok banków GTX jest zasilany napięciem 1.2 V.
Kondensatory użyte na wejściach receiverów służą do odfiltrowania napięcia stałego
z sygnałów.
Bank 112 nie jest wykorzystywany wewnątrz systemu płyty PCB. Cały bank jest
podłączony do złącz SMA, poprzez które może być zrealizowana komunikacja z peryferiami
spoza płyty PCB.
Bank 113 podobnie jak 112 nie komunikuje się z żadnym interfejsem, ani
komponentem na płycie. Jego wyprowadzenia są połączone z gniazdem ERF, poprzez które w
fazie przeprowadzania testów może być podłączone dowolne urządzenie (interfejs) zgodne
z zastosowanym przez programistę standardem komunikacyjnym. W celu zwiększenia
przepustowości pomiędzy układami GTX mogą się one łączyć z wyprowadzeniami
transceiverów z innych układów FPGA na płycie.
Bank 114 zawiera podłączenie jednej pary gniazd SMA i doprowadzenie sygnałów
z szeregowego interfejsu Ethernet [12]: SGMII. Jeden z interfejsów Ethernet ma możliwość
54
pracy w trzech trybach: SGMII, GMII i RGMII. Bardziej szczegółowo każdy z tych trybów
zostanie omówiony przy okazji opisu interfejsu Ethernet w podrozdziale 4.10.1.
Bank 115 służy do komunikacji w czasie pracy pomiędzy układami Virtex V1 i V2.
Przepustowość tej magistrali wynosi 20 Gb/s.
Bank 116 służy do komunikacji w czasie pracy pomiędzy układami FPGA. Łączy on
układy V1 z V3 i posiada przepustowość 20 Gb/s.
4.1.9.2. Arkusze transceiverów GTX układów V2 i V3
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_7_GTX_V2.SchDoc i HPC_7_GTX_V3.SchDoc.
Arkusz 16 przedstawia schemat ideowy bloku banków GTX układu Virtex V2. W taki
sam sposób są zrealizowane połączenia w układzie V3, co jest zaprezentowane na arkuszu 17
schematów elektrycznych.
Bloki 112 i 113 w obydwu układach służą są podłączone do złącza FMC, dając 40 Gb/s
transferu dla każdego ze złącz.
Bloki 114 układów V2 i V3 nie są wykorzystywane wewnątrz PCB. Ze względu na
dużą wydajność transceiverów GTX, zostały wyprowadzone na złącze ERF. Planowane jest
wykorzystanie sygnałów z tego złącza w późniejszym czasie projektując płytkę
z odpowiednimi interfejsami. Innym sposobem wykorzystania tych sygnałów jest połączenie
między sobą transceiverów w celu zwiększenia przepustowości pomiędzy układami FPGA.
Blok 115 układu Virtex V2 służy do komunikacji w czasie pracy pomiędzy układami
V2 i V3, z przepustowością 20 Gb/s.
Blok 116 układu V2 jest połączony z układem V1 i służy do wymiany danych w czasie
pracy operacyjnej systemu. Magistrala ma przepustowość 20 Gb/s.
Blok 115 układu V3 łączy się z blokiem 115 układu V2.
Blok 116 układu Virtex V3 jest podłączony do układu FPGA V1 wymieniając z nim
dane w czasie obróbki sygnałów, z prędkością 20 Gb/s.
4.1.10. Gigabit Ethernet
4.1.10.1. Arkusze podłączenia interfejsów typu Gigabit Ethernet
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_6_Ethernet_V1.SchDoc, HPC_8_Ethernet_V2 i HPC_8_Ethernet_V3.SchDoc.
Schematy interfejsu Ethernet [12] przedstawione są na powyższych arkuszach.
55
Arkusz HPC_6_Ethernet_V1.SchDoc przedstawia schemat połączeń kontrolera
interfejsu Gigabit Ethernet z układem Virtex V1, który może pracować w 3 następujących
konfiguracjach:
GMII/MII – Gigabit Media Independent Interface. Tryb MII obsługuje prędkości
transmisji 10 i 100 Mb/s, natomiast GMII umożliwia transmisję danych
z prędkościami 10, 100 i 1000 Mb/s. Interfejs ten zapewnia transmisję i odbiór danych
8 bitową ścieżką, która może pracować w trybach half-duplex i full-duplex. GMII
zapewnia 2 sygnały kontrolne: jeden wskazuje na obecność pakietu, a drugi na brak
kolizji. Tryb ten umożliwia podłączenie kilku typów kabli, jednak w przypadku tego
projektu wykorzystywany będzie ekranowany kabel UTP, popularnie nazywany
skrętką.
RGMII – Reduced Gigabit Media Independent Interface. Interfejs ten wykorzystuje
zredukowaną o połowę liczbę pinów, w stosunku do GMII. Redukcja ta została
uzyskana poprzez usunięcie sygnałów kontrolnych, a także transfer danych na obydwu
zboczach sygnału zegarowego. Max. liczba pinów w tej konfiguracji wynosi 12.
SGMII – Serial Gigabit Media Independent Interface. W tym trybie pracy jest
wykorzystywany różnicowy sygnał zegarowy o częstotliwości 625 MHz.
W odróżnieniu do poprzednich konfiguracji, tryb ten wymaga najmniejszej ilości
pinów i charakteryzuje się najmniejszym poborem mocy. Dane przesyłane są jedną
parą różnicową, natomiast drugą parą różnicową transmitowany jest sygnał zegarowy.
Interfejs ten podłączony jest do szeregowego transceivera GTX.
Rysunek 4.9 prezentuje diody LED sygnalizujące tryb pracy, a także zworki do wyboru
trybu pracy. Diody informują o pracy w trybach: TX, RX lub podwójnej – DUPLEX, a także
o prędkości transmisji: 10, 100, 1000 Mb/s.
56
Ustawienia trybów pracy wymagają zwarcia ze sobą odpowiednich zworek, zgodnie
z tabelą 4.2
Tabela 4.2 – ustawienia zworek dla poszczególnych trybów interfejsu.
Tryb Ustawienia zworek
J1 J2 J3
GMII/MII Zworka na 1-2 Zworka na 1-2 Brak
RGMII Zworka na 1-2 Brak Zworka na 1-2
SGMII Zworka na 2-3 Zworka na 2-3 Brak
Do komunikacji z interfejsem Gigabit Ethernet został wykorzystany bank 33 w każdym
z układów FPGA. Do tych banków podłączone są wszystkie sygnały warstwy fizycznej
oprócz szeregowego interfejsu SGMII, który został podłączony do transceivera GTX układu
Virtex V1.
Tranzystory Q6 i Q7 służą do sterowania jedną z diod LED znajdujących się w złączu
RJ-45. Użyte złącze posiada 2 diody LED, z których jedna może świecić dwoma kolorami,
w zależności od kierunku przepływu prądu. Stąd sterowanie kierunkiem przepływu prądu
odbywa się za pomocą tych tranzystorów. Gniazdo RJ-45 wymagało podłączenia koralika
ferrytowego do ekranu.
Rys. 4.10 – diody LED i zworki współpracujące z
interfejsem Gigabit Ethernet.
57
Do pinów XTAL jest podłączony rezonator o częstotliwości 25 MHz. Piny
wykorzystywane przez interfejs SGMII posiadają szeregowo włączone kondensatory pełniące
rolę filtrów składowej stałej. Pozostałe pojemności użyte w tej części projektu to
kondensatory pełniące funkcję integralności sygnału. Rezystory znajdujące się tuż przy
samym układzie 88E1111 pełnią funkcję terminatorów. Diody LED zostały podłączone do
zasilania rezystory ograniczające prąd przepływający przez diody, tak aby nie uległy
uszkodzeniu. Do pinów HSDAC podłączona jest para goldpinów, do których są wysyłane
sygnały testowe z modułu.
4.1.11. Handshake
4.1.11.1. Arkusz handshak-u pomiędzy układami FPGA
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_9_Handshake.SchDoc.
Układy FPGA wymagają sygnałów sterujących, za pomocą których mogą wysyłać do
siebie rozkazy w czasie pracy (np. transmisja, odbiór danych). W tym celu został
zaprojektowany handshake pomiędzy układami FPGA. Cały interfejs komunikacyjny
wykonywany jest w języku opisu sprzętu, jednak koncepcja zastosowania tego typu
handshake-u została zaczerpnięta ze standardu protokołu AXI4 [25] zaprojektowanego przez
firmę ARM.
Tabela 4.3 - Sygnały użyte w projektowaniu handshaku
Sygnał Źródło Opis
ARESET - Asynchroniczny reset globalny. Aktywny w stanie
niskim.
WLAST Master Sygnał ten informuje o ostatnim transferze w procesie
zapisu.
WVALID Master
Sygnał ten informuje o prawidłowym zapisie danych.
Jeśli jest w stanie wysokim dane są dostępne. Jeśli jest w
stanie niskim, dane są niedostępne.
WREADY Slave
Sygnał ten informuje o gotowości do zapisu urządzenia,
do którego mają być wysłane dane. Jeśli jest w stanie ‘1’
to urządzenie jest gotowe, jeśli ‘0’ to urządzenie
niegotowe.
WSTRB Master Sygnał ten informuje, które linie są aktualizowane w
pamięci.
58
WID[0…3] Master Identyfikator adresu zapisu. Grupa sygnałów
identyfikująca adres zapisu.
BVALID Slave
Sygnał ten informuje o dostępności statusu zapisu. Jeśli
jest w stanie ‘1’ to odpowiedź zapisu jest dostępna, jeśli
‘0’ to niedostępna.
BREADY Master
Gotowość odpowiedzi. Sygnał ten wystawia urządzenie,
które nadawało, informując o gotowości do przyjęcia
odpowiedzi.
BRESP[0,1] Slave Odpowiedź zapisu. Sygnał ten wystawia urządzenie,
które odbierało dane, informując o statusie zapisu.
BID[0…3] Slave
Identyfikator odpowiedzi zapisu. Sygnał jest wysyłany z
urządzenia, które dostało pakiet danych, z
identyfikatorem informacji o otrzymaniu tych danych.
RREADY Master Gotowość odczytu. Urządzenie „czytające” wystawia ten
sygnał informując o gotowości odczytu.
RVALID Slave
Poprawność odczytu. Sygnał ten informuje o dostępie do
danych odczytywanych i poprawnie zakończonym
procesie odczytu. Jeśli jest w stanie ‘1’ to dane są
dostępne, jeśli ‘0’ to niedostępne.
RLAST Slave Koniec odczytu. Sygnał ten informuje o ostatnim
transferze w procesie odczytu.
RRESP[0,1] Slave Odpowiedź odczytu. Sygnał ten informuje o statusie
operacji odczytu.
RID[0…3] Slave Grupa sygnałów reprezentująca identyfikator odczytu.
4.1.12. Zasilanie FPGA
4.1.12.1. Arkusze bloków zasilania układów FPGA
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_10_VCC_V1.SchDoc, HPC_10_VCC_V2.SchDoc i HPC_10_VCC_V3.SchDoc.
Schemat z rys. 4.10 przedstawia podłączenie wszystkich trzech układów FPGA do
akumulatora. Bateria (akumulator) nie jest wymagana w każdym trybie pracy systemu. Ze
względu na fakt, że projektowane urządzenie jest prototypem, została ona jednak
zainstalowana. Poprzez zworki istnieje możliwość podłączania i odłączania akumulatora od
59
układów. Zworki mają po 3 piny, ze względu na to, że w sytuacji kiedy układ nie jest
podłączony do akumulatora, to jego piny dedykowane do tego celu, powinny być zwarte do
masy. Jeśli zworki na złączach J7, J8 i J9 są ustawione na pozycjach 1-2, wówczas każdy
Virtex jest podłączony do akumulatora. Przy ustawieniu zworki na miejscach 2-3, piny
VBATT_0 są zwarte do masy.
Rys. 4.11 - podłączenie baterii do układów FPGA
Akumulator w czasie ładowania dostaje napięcie 2.5 V z dzielnika, poprzez diodę
schottky’ego.
Schematy na arkuszach 22, 23 i 24 pokazują sposób podłączenia zasilania do bloków
GTX. Występują tam napięcia VMGTAVCC = 1.0 V i VMGTAVTT = 1.2 V. Wytyczne
firmy Xilinx [6] odnośnie stosowania kondensatorów odsprzęgających mówią o tym, że
powinny być one podłączone w następujący sposób:
330 µF – tantalowy, 1 kondensator na każde źródło zasilania,
47 µF – ceramiczny, 1 kondensator na każde 8 pinów,
0.22 µF – ceramiczny, 1 kondensator na każdy pin zasilający.
Na tych samych schematach znajduje się zasilanie rdzenia i banków I/O, a także
podłączenie dodatkowego napięcia VCCAUX. Banki I/O są zasilane napięciami takimi jakich
wymagają podłączone do nich urządzenia peryferyjne. Większość banków I/O pracuje
z potencjałem 2.5 V, natomiast banki do których jest podłączona pamięć RAM DDR3,
60
zasilane są niższym napięciem wynoszącym 1.5 V. Bank 12 w układach V2 i V3, napięcie
zasilające pobiera ze złącza FMC.
Każdy z banków wymaga 4 kondensatorów odsprzęgających o wartościach:
330 µF – tantalowy, 1 przy każdym źródle zasilania,
47 µF – tantalowy, 1 na każdy bank,
22 µF – ceramiczny, 1 na każdy bank,
0.22 µF – ceramiczny, 1 na każdy bank.
Taki sam zestaw kondensatorów jest wymagany do separacji od źródła zasilania
wszystkich pinów VCCAUX.
Zasilanie rdzenia wymaga integralności sygnałów za pomocą kondensatorów:
330 µF – tantalowy, 4 sztuki na wszystkie piny. Na schemacie znajdują się 3,
a dodatkowy czwarty znajduje się tuż przy przetwornicy napięcia i na schemacie jest
również umiejscowiony razem z przetwornicami (Arkusz 1),
2.2 µF – ceramiczny, 4 sztuki na wszystkie piny zasilające,
0.22 µF – ceramiczny, 8 sztuk na wszystkie piny zasilające.
Blok zasilania układu FPGA, posiada 6 pinów testowych, służących do pomiaru napięć
zasilających. Wszystkie te wyprowadzenia zostały połączone ze złączem typu header.
4.1.13. Masa FPGA
4.1.13.1. Arkusz bloków masy układów FPGA
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_11_GND_V1.SchDoc, HPC_11_GND_V2.SchDoc
i HPC_11_GND_V3.SchDoc.
Każdy Virtex użyty w projekcie posiada 260 pinów masy, które są rozmieszczone
równomiernie w całej przestrzeni wyprowadzeń z układu. Ze względu na tak dużą ilość
pinów, w bibliotece został stworzony osobny blok poświęcony tylko przypisaniu nóżek GND.
Dla bloku masy jednego układu FPGA, został przeznaczony 1 arkusz schematu, na
którym wszystkie piny bloku są podłączone do GND.
4.1.14. Złącza SMA
4.1.14.1. Arkusz złącz SMA
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_12_SMA.SchDoc.
61
Na płycie PCB są zamontowane 32 gniazda SMA. Wszystkie razem stanowią 16 par
różnicowych. Złącza te pełnią funkcję komunikacji z urządzeniami spoza płyty lub też mogą
służyć do połączeń na płycie, które w czasie projektowania PCB nie były przewidziane.
Rys. 4.12 – złącza SMA
Są one przewidziane do następujących zadań:
2 pary: wejście sygnałów zegarowych,
3 pary: wyjścia sygnałów zegarowych,
1 para: referencyjny sygnał zegarowy,
5 par: transmitery GTX,
5 par: receivery GTX.
Sygnał jest przesyłany wewnętrznym pinem złącza, natomiast obudowa jest podłączona
do GND.
4.1.15. Złącza ERF
4.1.15.1. Arkusz złącz ERF
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_13_ERF_GTX.SchDoc.
Każdy Virtex posiada łącznie 20 transceiverów GTX. W projekcie nie zostały
wykorzystane wszystkie transceivery. Na etapie programowania i testowania urządzenia może
się okazać, że będzie potrzebna ich większa ilość. Z tego względu, wszystkie nie
wykorzystane banki GTX zostały podłączone do złącza ERF umożliwiającego transmisję
sygnałów z częstotliwością RF.
Na płycie PCB zostały zamontowane 2 gniazda ERF. Każda para różnicowa,
podłączona do gniazda jest odseparowana masą od sąsiednich par.
62
4.1.16. Złącza testowe
4.1.16.1. Arkusz stabilizacji i wyboru napięcia referencyjnego dla operacji
pomiarów napięć układów FPGA
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_14_Test_Probe.SchDoc.
System monitorowania informuje o temperaturze układu i napięciach wewnątrz FPGA.
Układ U6 [17] konwertuje analogową postać sygnału testowanego na cyfrową. Poprzez
zworkę J11 istnieje możliwość wyboru zewnętrznego napięcia referencyjnego lub
wewnętrznego z układu FPGA. Najwyższą dokładność pomiarów w zakresie
temperatur − 40˚C do 85˚C uzyskuje się z zewnętrznego źródła napięcia referencyjnego.
Za pomocą przełącznika S6 istnieje możliwość włączania lub wyłączania napięcia
wyjściowego od wszystkich źródeł napięcia referencyjnego MCP1726.
Tego samego typu połączenia jak powyżej są zrealizowane dla wszystkich układów
FPGA.
Rys. 4.13 – system monitorowania układów FPGA
63
4.1.16.2. Arkusz złącz typu header służących do pomiaru napięć układów FPGA
W niniejszym podrozdziale został opisany fragment schematu znajdujący się w dodatku
nr 13: HPC_14_Test_Probe_HDR.SchDoc.
Sygnały pomiarowe ze wszystkich układów FPGA zostały doprowadzone do złącz typu
header (2 – rzędowe po 10 pinów). Umożliwia to dostęp do pomiaru napięcia zasilania
TEST_AVDD, a także do referencyjnego potencjału ADR_VREFP. Sygnały DXP i DXN są
połączone z diodą termiczną, która wskazuje temperaturę układu FPGA.
4.2. PCB
4.2.1. Masa (GND)
Fundamentalną zasadą projektowania układów elektronicznych jest określenie napięcia
referencyjnego, będącego wspólnym punktem odniesienia dla wszystkich innych napięć
występujących w układzie. Tak określony punkt nazywany jest „masą”. Może to być punkt
podłączenia zasilania do obwodu lub masy z zewnątrz. Dla danej płytki takie napięcie jest
zawsze traktowane jako 0 V i inne wartości potencjałów mogą być dodatnie lub ujemne
względem tego punktu.
Jednym z największych problemów w obwodach elektronicznych jest zagwarantowanie
poziomu 0 V dla całej powierzchni masy. Ponieważ przewodniki mają niezerową rezystancję
i impedancję, to przepływający przez nie prąd powoduje odkładanie się napięcia. Efektem
tego zjawiska jest to, że potencjał 0 V występuje tylko w miejscu podłączenia źródła
zasilania, natomiast we wszystkich innych punktach „masa” ma wartość inną niż 0 V. Poniżej
został zilustrowany ten przypadek.
Rys. 4.14 – wyprowadzenia punktów pomiarowych na złącze
64
Założenia: rezystancja szyny 0 V wynosi 10mΩ/działkę, odległości pomiędzy punktami
A,B,C,D wynoszą 1 działkę. Zatem potencjały w punktach A,B i C względem punktu D są
następujące:
( )
( )
( )
Rys. 4.15 - Napięcia wzdłuż szyny 0 V.
W powyższym przykładzie zmiany napięcia nie są duże, więc dla pracujących urządzeń
nie będzie to stanowiło najmniejszego problemu. Warunki pracy ulegają znacznemu
pogorszeniu przy wzroście zmian tego napięcia, a dzieje się to w następujących sytuacjach:
Kiedy prądy są rzędu amperów, a nie miliamperów,
Kiedy rezystancja przewodnika szyny 0V jest rzędu Ω, a nie mΩ,
Kiedy wypadkowy spadek napięcia ma znaczącą wartość lub taka konfiguracja
wpływa na pracę układu.
Jeżeli niemożliwa jest do zastosowania konfiguracja z Rys. 5.1 należy wówczas wybrać
punkt źródłowy, bliski miejsca podłączenia zewnętrznego zasilania, a następnie do tego
punktu doprowadzać indywidualnie wszystkie połączenia masy. Taka realizacja została
zaprezentowana na Rys. 4.16.
Rys. 4.16 – realizacja połączeń lini masy w jednym punkcie.
Podłączenie źródła
zasilania
D
Podłączenie źródła
zasilania
I3
Punkt
źródłowy
I2
I1
I1 (10mA) I2 (10mA) I3 (10mA)
A B C
szyna 0 V
65
Rezystywność szyny 0V zależy od:
Szerokości ścieżki,
Grubości ścieżki,
Materiału użytego do wykonania ścieżki.
Szerokość ścieżki można ustalać na tyle dużą, na ile pozwala przestrzeń na płytce PCB.
Grubości materiałów są ustandaryzowane zgodnie z dostępnymi laminatami. Natomiast jeśli
chodzi o materiały, to tutaj jest najmniejszy wybór. Najlepszą przewodność posiada srebro,
jednak pod tym względem niewiele gorsza jest miedź. Ze względu na cenę i dobre
właściwości elektryczne i cieplne to właśnie ten materiał jest najczęściej stosowany do
wykonywania ścieżek. W obwodach o częstotliwościach RF miedziane ścieżki pokrywane są
dodatkowo srebrem. Tabela 5.1 przedstawia przewodności i współczynniki temperaturowe
niektórych materiałów.
Tabela 4.4 – właściwości niektórych materiałów przewodzących prąd.
Metal Przewodność względna
(Cu = 1, w 20˚C)
Temp. współczynnik
rezystancji (/˚C w 20˚C)
Aluminium 0,59 0,0039
Mosiądz 0,28 0,002-0,007
Kadm 0,19 0,0038
Miedź 1,0 0,00393
Złoto 0,65 0,0034
Żelazo 0,177 0,005
Nikiel 0,12-0,16 0,006
Srebro 1,06 0,0038
Cyna 0,13 0,0042
Wolfram 0,289 0,0045
Cynk 0,282 0,0037
W przypadku projektowania wielowarstwowych obwodów najlepszym sposobem
rozwiązania dystrybucji masy jest przeznaczenie jednej lub kilku warstw na płaszczyzny
GND. Dzięki takiemu rozwiązaniu uzyskuje się taki sam potencjał odniesienia w każdym
punkcie płyty. Duża zaletą jest też ekranowanie warstw sygnałowych poprzez płaszczyzny
masy. [26]
66
4.2.2. Zasilanie
Dystrybucja napięć zasilających podlega podobnym regułom, co rozprowadzanie masy.
Podczas projektowania obwodów PCB ważna jest znajomość przepływających prądów przez
szynę zasilającą. Dzięki temu, poprzez odpowiednie dobranie szerokości i długości ścieżki,
można obliczyć spadek napięcia na tej ścieżce. Jest to istotna cecha, gdyż zbyt niskie napięcie
doprowadzone do zasilającego elementu może skutkować jego niestabilną pracą lub
całkowitym brakiem pracy. W przypadku prądu stałego impedancja jest czysto rezystancyjna.
Jednak wraz ze wzrostem częstotliwości napięcia zasilającego, coraz większe znaczenie
odgrywa indukcyjność.
Przykład 4.1.
Ścieżka laminatu o długości 1m posiadająca rezystancję 38mΩ i indukcyjność 1,5µH.
Dla prądu stałego I = 4A, spadek napięcia wynosi:
Dla prądu zmiennego o zmianie amplitudy 4A/µs, spadek napięcia wynosi:
Podobnie jak w przypadku rozprowadzenia masy, tak też dla napięć zasilających
najlepszym rozwiązaniem jest ich dystrybucja na płaszczyznach leżących pomiędzy
warstwami sygnałowymi. Dzięki temu w każdym punkcie płaszczyzny jest takie samo
napięcie i ekranowanie sąsiednich warstw sygnałowych od siebie.
4.2.3. Linie transmisyjne
Linie sygnałowe można podzielić na:
Analogowe,
Cyfrowe,
Zasilania,
RF,
Mikrofalowe.
Linia staje się linią transmisyjną w chwili kiedy zjawiska w niej zachodzące stają się
istotne w procesie projektowania. Jedynym z istotnych czynników jest częstotliwość i długość
fali. Długość fali jest obliczana ze wzoru:
Równanie 4.4
67
Długość fali jest poprawiana po uwzględnieniu przenikalności elektrycznej użytych
materiałów, dając wzór:
√
Równanie 4.5
Jedną z głównych zasad wpływających na to, że linie traktuje się jako transmisyjną jest
to, że długość fali sygnału płynącego przez tą linię powinna być krótsza niż dziesięciokrotna
długość tej linii. W sytuacji projektowania układu cyfrowego, częstotliwość sygnału nie ma
tak dużego znaczenia. Najważniejszym parametrem stają się czasy narastania i opadania
zbocza sygnału. Jeżeli krótszy z czasów narastania i opadania jest mniejszy niż trzykrotny
czas przepływu sygnału wzdłuż danej linii, to taka linia powinna być traktowana jako linia
transmisyjna.
4.2.4. Impedancja charakterystyczna
Impedancja charakterystyczna jest bardzo ważnym parametrem dla linii transmisyjnych. Jest
zależna od wymiarów fizycznych i rodzaju materiałów użytych do budowy warstw
przewodzących i izolacyjnych. Impedancja charakterystyczna jest obliczana za pomocą
wzoru:
√
Równanie 4.6
gdzie:
R – rezystancja szeregowa na jednostkę długości (Ω/m),
L – szeregowa indukcyjność na jednostkę długości (H/m),
G – przewodność bocznikująca na jednostkę długości (mho/m),
C – pojemność bocznikująca na jednostkę długości (F/m).
W idealnym przypadku R = G = 0 i |ωL| = |ωC|. W rzeczywistych liniach straty, które są
zależne od długości linii i częstotliwości sygnału płynącego przez tą linię wpływają
niekorzystnie na sygnał, powodując zmniejszenie mocy docierającej do odbiornika.
Transmisję sygnału w linii transmisyjnej wyjaśniają ogólne prawa teorii obwodów.
Niezakłócony sygnał jest odbierany tylko wtedy, kiedy zarówno źródło sygnału, jak
i odbiornik mają impedancję charakterystyczną, taką samą jak linia transmisyjna. [26]
68
4.2.5. Laminat
Laminaty są wykonane z materiału przewodzącego i różnych dielektryków. Podobnie
połączenia pomiędzy warstwami mogą być wykonywane na różne sposoby.
Warstwy przewodzące są wykonywane z miedzianej folii, która jest pod wpływem
wysokiej temperatury i nacisku przyklejana do podłoża. Grubość folii miedzianej jest
określana w jednostkach masy na stopę kwadratową. Najbardziej popularne są jedno- lub
dwu- jednostkowe grubości. Inne grubości, to: 0.25 oz, 0.5 oz, 3 oz i 4 oz. Grubość 1 oz
wynosi typowo 0.035 mm 0.002 mm. Ważnym czynnikiem wyboru grubości miedzi jest jej
rezystywność.
W tabeli 4.2 są przedstawione właściwości niektórych materiałów.
Tabela 4.5 – właściwości laminatów PCB.
Materiał
Rezystancja
powierzchni
[MΩ]
Stała
dielektryczna
[εr]
Stała
dielektryczna
[tan δ]
Wytrzymałość
dielektryczna
[kV/mil]
Temp. x-
y
[ppm/˚C]
Max.
temp
[˚C]
FR4 Min. 1.104
4.6 – 4.9 Max. 0.035 Min. 1.0 13-16 110-
150
FR408 1.106
3.8 0.01 1.4 13 180
Epoxy-
aramid 5.10
6 3.8 0.022 1.6 10 180
Polyimide 3.4 0.01 3.8 20 300
Poliester 3.0 0.018 3.4 27 105
Laminaty mogą być wykonywane w różnych typach konstrukcji. Ze względu na
konstrukcje, laminaty dzielimy na:
Jednowarstwowe (jednostronne) (single-sided) – proste i tanie, jednak nadają się tylko
do nieskomplikowanych obwodów,
Dwuwarstwowe (dwustronne) (double-sided) – podobnie jak jednostronne, tylko że
ścieżki są rozprowadzone po obu stronach laminatu,
Elastyczne (flexible) – główny materiał jest cienki i elastyczny, może być pokryty
warstwami ochronnymi. Może posiadać miedziowane otwory przelotowe,
Dwuwarstwowa z miedziowanymi otworami (double-sided, plated-through-hole) –
podobna do dwuwarstwowej. Dodatkowo posiada przelotki, z jednej warstwy na
drugą, które są miedziowane i łączą ze sobą obie warstwy,
69
Sztywno – elastyczne (Rigidised Flexible) – takie jak elastyczne. Różnicą jest
przymocowanie części płyty do sztywnego komponentu,
Wielowarstwowe (Multilayer) – wiele warstw materiału jest połączonych laminatem
w jeden stos. Mogą być zastosowane różne rodzaje przelotek, takie jak:
o Przelotowe – przelotka od warstwy Top do Bottom,
o Ślepe – przelotka od warstwy Top lub Bottom do warstwy wewnętrznej,
o Zagrzebane – przelotka pomiędzy warstwami wewnętrznymi,
o Miedziowane – przelotka pokryta miedzią od środka,
o Niemiedziowane – otwór nie pokryta miedzią od środka, może być stosowana
jako do celów mechanicznych, np montażu płytki w obudowie lub montażu
niektórych podzespołów,
Elastyczno – sztywne (Flexi-rigid) – podobne do sztywno – elastycznych, jednak
część sztywna laminatu, należy do struktury wielowarstwowego PCB, z którego
wysunięta jest część elastyczna.
Wybierając odpowiedni laminat należy wziąć pod uwagę następujące czynniki:
Koszt,
Wymiary laminatu (dostępną przestrzeń),
Właściwości elektryczne,
Właściwości mechaniczne,
Dostępność,
Niezawodność i łatwość konserwacji,
Sztywne lub elastyczne – w zależności od potrzeb,
Sztywne lub elastyczne – w zależności od potrzeb. [26]
4.2.6. Stos – laminat FR-408
Płyta PCB dla projektu HPC zbudowana jest z 16 warstw na laminacie FR408. Laminat ten
charakteryzuje się niewielkimi zmianami przenikalności elektrycznej ε w dużym zakresie
zmian częstotliwości pracy sygnałów (do 10 GHz). W zaprojektowanej płycie przewiduje się
pracę na częstotliwościach do 5 GHz. Sygnały o takiej częstotliwości służą do komunikacji za
pomocą transceiverów GTX. Zbocze sygnału w tym przypadku ma wartość 125 ps. Taki czas
narastania odpowiada częstotliwości 8 GHz.
Na wspomniane 16 warstw składa się: 8 warstw sygnałowych i 8 warstw płaszczyzn
zasilania i masy.
70
Układy Virtex 6 charakteryzują się impedancją pinów I/O w zakresie 40Ω - 60Ω.
W związku z zachowaniem kontroli impedancji ścieżki na warstwach wewnętrznych mają
szerokość 0.1mm, co odpowiada impedancji charakterystycznej z=47Ω. Warstwy zewnętrzne
zachowują impedancję w zakresie 45Ω - 55Ω.
Płyta PCB jest prototypem zawierającym 3 układy FPGA: Virtex 6 XC6VLX195T-
1FF1156C. W kolejnych podrozdziałach zostaną opisane poszczególne złącza, które zostały
podłączone do każdego z układów FPGA. W opisie zostaną przyjęte następujące oznaczenia
układów FPGA:
V1 – Virtex 1 (Virtex 6 XC6VLX195T-1FF1156C),
V2 – Virtex 2 (Virtex 6 XC6VLX195T-1FF1156C),
V3 – Virtex 3 (Virtex 6 XC6VLX195T-1FF1156C).
Układ V1 jest układem, który konfiguruje się automatycznie z pamięci Flash,
a następnie przesyła strumienie danych konfiguracyjnych do układów V2 i V3. Z tego
względu jego układy peryferyjne znacznie różnią się od pozostałych dwóch układów. Układy
V2 i V3 pracują w podobny sposób, mają podłączone te same układy peryferyjne.
Najważniejszymi złączami tych dwóch układów FPGA, są złącza FMC HPC, dzięki którym
możliwe jest projektowanie płytek PCB rozszerzających system i umożliwiających testowanie
różnorodnych interfejsów komunikacyjnych. Układy V2 i V3 planowane są do wykorzystania
w komunikacji z urządzeniami zewnętrznymi (pobieranie surowych danych i wysyłanie
danych przetworzonych) za pomocą gniazd FMC.
Płyta PCB zawiera następujące złącza:
3 x Gigabit Ethernet,
2 x FMC HPC,
2 x ERF,
1 x SO-DIMM (DDR3),
1 x MX-8981-4V-LF,
32 x SMA,
1 x SD Card,
3 x Header 2x5,
1 x Header 2x6,
1 x Header 2x7 (JTAG),
Zworki.
Poniżej jest przedstawiony stackup do płytki PCB.
71
4 warstwy płaszczyzn masy,
4 warstwy płaszczyzn zasilania,
8 warstw sygnałowych.
Tabela 4.6 – opis warstw stosu
Nr
warstwy
Symbol Warstwa Materiał Grubość
[mm]
Grubość
[mils]
1 GTL Top layer Cu 0.018 0.709
Prepreg 106 [HS 01]
1080 [HS 01]
0.050
0.076
6.220
2 GP1 GND 1 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
3 G1 Signal-Layer 1 Cu 0.018 0.709
Core 150 µm
Cu 18/18
0.150 9.331
4 GP2 PWR 1 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
5 G2 Signal-Layer 2 Cu 0.018 0.709
Core 150 µm
Cu 18/18
0.150 9.331
6 GP3 GND 2 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
Rys. 4.17 – stackup PCB
72
7 G3 Signal-Layer 3 Cu 0.018 0.709
Core 150 µm
Cu 18/18
0.150 9.331
8 GP4 PWR 2 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
9 G4 Signal-Layer 4 Cu 0.018 0.709
Core 150 µm
Cu 18/18
0.150 9.331
10 GP5 PWR 3 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
11 GP6 GND 3 Cu 0.018 0.709
Core 150 µm
Cu 18/18
0.150 9.331
12 G5 Signal-Layer 5 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
13 GP7 PWR 4 Cu 0.018 0.709
Core 150 µm
Cu 18/18
0.150 9.331
14 G6 Signal-Layer 6 Cu 0.018 0.709
Prepreg 1080 [HS 01] 0.076 6.220
15 GP8 GND 4 Cu 0.018 0.709
Prepreg 1080 [HS 01]
106 [HS 01]
0.076
0.050
6.220
16 GBL Bottom Layer Cu 0.018 0.709
17 GTO Top Overlay
18 GTP Top Paste
19 GTS Top Solder
20 GBS Bottom Solder
21 GBP Bottom Paste
22 GBO Bottom
Overlay
23 GM1 Mechanical 1
24 GM13 Mechanical 13
25 GM15 Mechanical 15
26 GKO Keep_Out
Layer
Grubość całej płytki PCB wynosi 2 mm. Stackup był projektowany, tak aby możliwe
było spełnienie warunków kontroli impedancji ścieżek, a także żeby grubość płytki nie wyszła
zbyt duża. Ważnym czynnikiem były również możliwości izolacyjne dielektryków (jak
najmniejsze przesłuchy pomiędzy warstwami). Najlepszym rozwiązaniem okazało się
zastosowanie rdzeni o grubości 150 µm i pojedynczych prepregów 1080[HS 01], które mają
76 µm grubości. Pod warstwy zewnętrzne należało dodać dodatkowy prepreg 106[HS 01],
73
aby odpowiednio odizolować te warstwy od warstw wewnętrznych, a także spełnić
wymagania technologiczne pozwalające na wykonanie mikrootworów z warstw zewnętrznych
do wewnętrznych 1 i 2 (Top Layer -> Signal Layer 1; Top Layer -> Signal Layer 2; Bottom
Layer -> Signal Layer 6; Bottom Layer -> Signal Layer 5).
4.2.7. Linie sygnałowe
Ścieżki prowadzone są z impedancją w przedziale 40 Ω do 60 Ω (linie różnicowe 90 Ω -
110 Ω). Przedział taki był możliwy do zaakceptowania, gdyż wyprowadzenia sygnałów
z FPGA mają ten sam przedział impedancji. Na warstwach wewnętrznych decydującą rolę
odegrały parametry technologiczne produkcji obwodu. Min. szerokość ścieżki wynosi 4 mils,
co daje nieco powyżej 47 Ω impedancji.
Impedancja zastępcza jest wyliczana z następujących wzorów:
Dla warstw Top i Bottom:
√ √
(
)
Równanie 4.7
Dla warstw wewnętrznych:
√ (
)
Równanie 4.8
gdzie:
d – grubość rdzenia,
s – szerokość ścieżki,
h – wysokość ścieżki.
74
Na płycie PCB zostało rozprowadzone 16 płaszczyzn zasilania. Wymusiło to użycie
czterech warstw do dystrybucji napięć zasilających. Dodatkowo naprzemiennie z warstwami
zasilającymi rozprowadzone są płaszczyzny masy. Pomiędzy warstwami zasilającymi są
warstwy sygnałowe. Wszystkie warstwy sygnałowe z dwóch stron sąsiadują z płaszczyznami
zasilania, a siedem z nich leży w sąsiedztwie płaszczyzny masy. Dzięki temu sygnały zostały
od siebie odseparowane i nie było konieczności prowadzenia krzyżujących się ścieżek na
sąsiednich warstwach.
Największe zagęszczenie ścieżek występuje w miejscach łączenia ze sobą obudów
BGA, tj.:
układy FPGA między sobą,
układy FPGA z gniazdami FMC,
układy FPGA z pamięciami RAM.
Istotne na tym etapie było obliczenie przesłuchów pomiędzy kanałami, w celu dobrania
odpowiedniej odległości ścieżek od siebie. Dla linii różnicowych został dobrany odstęp
pomiędzy ścieżkami, zgodny z zależnością:
Równanie 4.9
gdzie:
s – szerokość ścieżki,
d – odstęp pomiędzy ścieżkami pary różnicowej.
Odległości te zostały dobrane odpowiednio dla każdej z warstw sygnałowych tak aby
impedancja różnicowa znajdowała się w przedziale 90Ω - 110Ω. Odstępy linii sygnałowych
sąsiadujących z parami różnicowymi mają wartość przynajmniej o 2,5 raza większą niż
odstęp ścieżek w parze różnicowej.
Odstępy pomiędzy pozostałymi liniami sygnałowymi wynoszą 8 mils dla warstw
wewnętrznych i 10 mils dla warstw Top i Bottom. W szczególnych miejscach, które
wymagały większego zagęszczenia ścieżek, odległości pomiędzy ścieżkami zostały
nieznacznie zmniejszone, jednak w żadnym przypadku nie były mniejsze od wartości
szerokości ścieżek. Minimalna wartość odstępu pomiędzy ścieżkami możliwa do
wyprodukowania w instytucie ITR wynosi 5 mils. W niektórych miejscach ograniczenia
produkcyjne były priorytetowe. W wielu przypadkach odległości pomiędzy ścieżkami zostały
powiększone, gdyż pozwalało na to dostępne miejsce.
Dokonano analizy przesłuchów sygnałów pomiędzy ścieżkami. Stwierdzono, że
w zaprojektowanej płycie dla odpowiednio dobranych odległości pomiędzy ścieżkami,
75
przesłuchy są na tyle niewielkie, że nie zakłócają pracy urządzenia. Czasy narastania zbocz
(odczytane z dokumentacji układów Virtex 6 [2]) wynosiły:
125 ps – dla szybkich transceiverów szeregowych GTX, które mogą pracować
z częstotliwością do 2.7 GHz,
200 ps – dla pozostałych sygnałów, w szczególności rozważane przy pamięci RAM.
Przesłuchy w większości przypadków miały wartość mniejszą niż: 0.12 V , pochodzącą
od napięcia na sąsiednich ścieżkach. Największe wartości osiągały 0.18 V przy napięciu
zasilającym 1.5 V. Wartości napięć, powstałych w wyniku przesłuchów są bezpieczne i nie
powodują zmian stanów logicznych sygnałów.
Ścieżki o większych długościach musiały być prowadzone na kilku warstwach, ze
względu na przerwy pomiędzy płaszczyznami zasilania i ograniczenia spowodowane
występowaniem innych ścieżek na tej samej warstwie.
Linie różnicowe wymagały kontroli długości, a w niektórych przypadkach konieczna
była korekta długości jednej z linii, tak aby różnica w długości pomiędzy liniami pary
różnicowej nie była większa niż 80 mils. Korekcja długości linii sygnałowych była konieczna
do przeprowadzenia w przypadku ścieżek łączących układy z pamięciami DDR3. Zgodnie
z zaleceniami firmy Xilinx opóźnienia pomiędzy sygnałami, takimi jak:
DQ – linie danych,
A – linie adresowe,
ODT, CAS, RAS, CE, WE, BA linie sterujące,
CK – linie sygnału zegarowego,
Opóźnienia pomiędzy powyższymi sygnałami nie powinny być większe niż 5 ps.
Wszystkie z tych linii zostały wyrównane do takich samych długości. Ścieżki par
różnicowych DQS powinny mieć taką samą długość, jednak nie musiała ona być równa
długości wyżej wymienionych ścieżek sygnałowych.
Po zaprojektowaniu i ostatecznym ustaleniu rozmiarów płytki, posiada ona wymiary
300 mm x 242,5 mm.
76
Rys. 4.18 – widok 3D płyty PCB.
77
4.3. OPIS ZŁĄCZ, PINÓW I PRZEŁĄCZNIKÓW
4.3.1. Rozruch systemu
Poniższy rysunek przedstawia blok zasilania płyty.
Na płycie znajduje się 13 przetwornic napięcia. Są one uruchamiane w sposób
kontrolowany, tak aby wszystkie jednocześnie wystartowały i z taką samą szybkością
narastały napięcia wyjściowe. W celu sprawdzenia poprawności podłączonych przetwornic
istnieje możliwość uruchamiania pojedynczo każdej z przetwornic. Do tego celu służą wyżej
Zworki rozruchowe. Służą do
podłączania sygnału „track” do
przetwornic napięcia.
MX-8981-4V-LF
– zewn. napięcie zasilające
(+5V, GND, GND, +12V).
ON/OFF
Rys. 4.19 - blok zasilania płyty.
78
zaznaczone „goldpiny”. Przy każdym złączu znajduje się opis, do której przetwornicy dana
listwa jest podłączona.
W opisie pinów przyjęto następujące reguły:
Dla pionowego układu pinów, pin nr 1 to pin znajdujący się najniżej (na rysunku).
Dla poziomego układu pinów, pin nr 1 to pin znajdujący się jako pierwszy od lewej
strony (na rysunku).
Tabela 4.7 - konfiguracja podłączeń zworek.
Przetwornica 1-2 2-3
MGTAVTT GND (OFF) TRACK (ON)
UCCO1 GND (OFF) TRACK (ON)
INT3 GND (OFF) TRACK (ON)
INT2 GND (OFF) TRACK (ON)
INT1 GND (OFF) TRACK (ON)
1.8V GND (OFF) TRACK (ON)
3.3V GND (OFF) TRACK (ON)
UCCO3 GND (OFF) TRACK (ON)
UCCO2 TRACK (ON) GND (OFF)
VCCAUX1,2 TRACK (ON) GND (OFF)
MGTAVCC TRACK (ON) GND (OFF)
VCCAUX3 TRACK (ON) GND (OFF)
1.5V TRACK (ON) GND (OFF)
Zewnętrzne napięcie zasilające należy podłączyć do złącza MX-8981-4V-LF. Rozruch
systemu następuje po wciśnięciu przycisku ON/OFF. Wyłączenie systemu następuje po
ponownym naciśnięciu ON/OFF.
79
4.3.2. Podłączenie baterii pod układy Virtex
Na rys. poniżej są zaznaczone zworki służące do podłączenia układów Virtex do baterii.
W sytuacji kiedy układy FPGA nie są podłączone do baterii, należy piny dedykowane do tego
celu zewrzeć do masy (co jest zapewniane poprzez założenie zworki na niżej zaznaczone
„goldpiny”).
Rys. 4.20 - podłączenie baterii pod układy FPGA.
80
4.3.3. Opis pozostałych złącz „goldpin”
Poniżej zostały zaznaczone i opisane złącza „goldpin”.
RST-FLASH – reset powodujący
ponowne rozpoczęcie procesu
konfiguracji układu Virtex V1.
Rys. 4.21 – zworki.
81
Tabela 4.8- opis zworek zaznaczonych na rys. 4.17.
Kolor Nazwa Konfiguracja
Opis 1-2 2-3
CLK0 ON
Założenie zworki podłącza wyjście
oscylatora 50 MHz do układu Virtex V1
i Flash (config_flash) oraz ewentualnie
od układów V2 i V3 (jest to zależne od
ustawienia zworek CLK0_V3
i CLK_V2).
CLK0_V3 CLK0 CLKV1
Wybór źródła sygnału zegarowego,
służącego do konfiguracji układu Virtex
V3. Zgodnie z opisem na płycie,
odpowiednie założenie zworek
umożliwia wybranie sygnału zegarowego
z oscylatora 50 MHz, bądź z wyjścia
MMCM (menedżera clk) układu V1.
CLK0_V2 CLK0 CLKV1
Wybór źródła sygnału zegarowego,
służącego do konfiguracji układu Virtex
V2. Zgodnie z opisem na płycie,
odpowiednie założenie zworek
umożliwia wybranie sygnału zegarowego
z oscylatora 50 MHz, bądź z wyjścia
MMCM (menedżera clk) układu V1.
TVREF1 - -
Złącze wyboru napięcia referencyjnego
dla pomiarów testowych. Możliwy jest
wybór napięcia wyjściowego z regulatora
MCP1726-ADJE/SN (U5) - AVREF1
lub masy tego układu – TGND1.
IO_INIT INIT
W momencie rozpoczęcia konfiguracji
wymagana jest inicjalizacja układów
Virtex i Flash. Dzieje się to
automatycznie w przypadku konfiguracji
układu V1 (poprzez dedykowany pin
z V1, który po konfiguracji jest
niedostępny). Zwarcie tej zworki
82
umożliwia programowe wymuszenie
inicjalizacji układu Flash (po
skonfigurowaniu V1), co jest pomocne
przy konfiguracji układów V2 i V3.
HSWAPEN1 GND UCCO1
Poprzez zworkę zwiera się pin
dedykowany HSWAPEN układu V1 do
masy lub do napięcia 2.5V
ETH1 Piny testowe interfejsu Gigabit Ethernet.
ETH2 Piny testowe interfejsu Gigabit Ethernet.
ETH3 Piny testowe interfejsu Gigabit Ethernet.
J3 Piny te umożliwiają ustawienie jednego
z trzech trybów pracy kontrolera
interfejsu Gigabit Ethernet,
podłączonego pod układ FPGA V1.
Dokładny opis ustawień tych pinów
znajduje się w tabeli poniżej.
J1
J2
Tabela 4.9 - opis ustawień zworek J1, J2 i J3.
Tryb Ustawienia zworek
J1 J2 J3
GMII/MII 1-2 1-2 Brak
SGMII 2-3 2-3 Brak
RGMII 1-2 Brak 1-2
83
Tabela 4.10 - opis złącz zaznaczonych na rys. 4.18.
Kolor Nazwa Konfiguracja
Opis 1-2 2-3
V3_TDO FMC_ON FMC_OFF
Złącze to umożliwia podłączenie
gniazda FMC1 do interfejsu JTAG.
Złącze to jest podłączane szeregowo za
układem V3. W ustawieniu zworki na
pozycjach 2-3, Virtex V3 jest
podłączony bezpośrednio do pinu TDO
interfejsu JTAG.
FMC_TDO FMC2_ON FMC2_OFF
Złącze to umożliwia podłączenie
gniazda FMC2 do interfejsu JTAG.
Złącze to jest podłączane szeregowo za
złączem FMC1. W ustawieniu zworki
na pozycjach 2-3, gniazda FMC1 jest
podłączone do pinu TDO interfejsu
JTAG.
TVREF2 - -
Złącze wyboru napięcia referencyjnego
dla pomiarów testowych. Możliwy jest
wybór napięcia wyjściowego
Rys. 4.22 - zworki i złącza testowe.
84
z regulatora MCP1726-ADJE/SN (U7)
– AVREF2 lub masy tego układu –
TGND2.
Opis złącz dwurzędowych. Zworki ustawiane jedynie na pozycjach łączących oba rzędy
ze sobą, lub całkowity brak zworek.
Kolor Nazwa Pozycja
zworki Opis
ZQ_RAM 5-6, 7-8, 9-
10, 11-12
Złącze umożliwiające kalibrację układów pamięci
DDR3 podłączonych do układów Virtex V2 i V3.
Zakładając zworki na odpowiednie pozycje, zwiera się
piny ZQ układów pamięci RAM. Wymienione
pozycje są połączone z pamięciami RAM, tak jak to
zostało opisane na płycie PCB. Pozycje 5-6 i 7-8
odpowiadają układom pamięci podłączonym do
Virtexa V2. Pozycje 9-10 i 11-12 odpowiadają
pamięcią podłączonym do układu FPGA V3.
TST_V3 -
Złącze testowe. Za pomocą tego złącza można
zrealizować zewnętrzny system monitorowania
parametrów układu FPGA V3.
TST_V2 -
Złącze testowe. Za pomocą tego złącza można
zrealizować zewnętrzny system monitorowania
parametrów układu FPGA V2.
TST_V1 -
Złącze testowe. Za pomocą tego złącza można
zrealizować zewnętrzny system monitorowania
parametrów układu FPGA V1.
85
W niebieskiej ramce zostały zaznaczone przełączniki typu DIP-SWITCH. Trzy z nich:
CFG_V1, CFG_V2 i CFG_V3 służą do ustawienia trybu konfiguracji każdego z układów
FPGA. W pozycji ON poszczególne piny są podłączane do napięcia 2.5V, co odpowiada
logicznej „1” na wejściu dedykowanym układu FPGA. W przypadku ustawienia pozycji OFF,
dany pin jest podciągnięty do masy przez rezystor 4.7kΩ, co odpowiada logicznemu „0” na
tym pinie.
Pierwsze pozycje przełączników ustawiają „1” lub „0” na pinie RDWR_B_0 każdego
z układów FPGA. Służy on do ustawiania kierunku konfiguracyjnej szyny danych. W pozycji
„0”, szyna pracuje jako „wejście”, natomiast w pozycji „1”, szyna pracuje jako „wyjście”.
Pozycjami opisanymi jako M1, M2 i M3 ustawiamy tryb konfiguracji układu FPGA.
Poniższa tabela przedstawia odpowiednie ustawienia przełączników, odpowiadające
poszczególnym trybom konfiguracyji.
Złącze wyboru napięcia referencyjnego dla
pomiarów testowych. Możliwy jest wybór napięcia
wyjściowego z regulatora MCP1726-ADJE/SN
(U6) – AVREF3 lub masy tego układu – TGND3.
Złącze wyboru napięcia kalibracji dla
pamięci RAM. Możliwy jest wybór masy
(GND) lub napięcia referencyjnego
0.75V.
Rys. 4.23 - zworki i przełączniki.
86
Tabela 4.11 - opis ustawień przełączników służących do wyboru trybu konfiguracji układów FPGA.
Tryb konfiguracji M[2:0] Szerokość szyny Kierunek CCLK
Master Serial 000 1 Out
Master SPI 001 1 Out
Master BPI-Up 010 8, 16 Out
Master BPI-Down 011 8, 16 Out
Master SelectMAP 100 8, 16 Out
JTAG 101 1 In(TCK)
Slave SelectMAP 110 8, 16, 32 In
Slave Serial 111 1 In
Pozycje dwóch pozostałych przełączników:
MCP1, MCP3, MCP3 – włączenie lub wyłączenie regulatorów napięcia odniesienia
dla zewnętrznego systemu monitorowania parametrów układów FPGA.
FMC_TDI – ustawienie tego przełącznika w pozycji ON umożliwia 2transmisję
sygnału TDI, interfejsu JTAG, do złącza FMC. Sygnał TDI jest rozdzielany
w buforze.
FMC_TDO – ustawienie tego przełącznika w pozycji ON zwiera linię TDO (interfejsu
JTAG) złącza FMC z linią TDO złącza interfejsu JTAG.
D_FL_WP – zabezpieczenie zapisu pamięci Flash, przechowującej dane
konfiguracyjne. Ustawienie tego przełącznika w pozycji ON wyłącza ochronę,
natomiast ustawienie go w pozycji OFF włącza ochronę.
CLK0_EN – ustawienie tego przełącznika w pozycji ON włącza oscylator służący do
konfiguracji (40 lub 50 MHz).
87
5. URUCHOMIENIE I PODSTAWOWE TESTY PŁYTY PCB
5.1. WSTĘP
Po skończonym etapie projektowania płyty PCB zostały wygenerowane pliki produkcyjne
i wysłane do instytutu tele- i radiokomunikacji (ITR), gdzie została wyprodukowana oraz
zmontowana płyta.
Po odebraniu gotowej płyty z produkcji należało ją uruchomić, przeprowadzić
konfigurację i podstawowe testy umożliwiające sprawdzenie poprawności zaprojektowanej
płyty PCB.
Rys. 5.1 - zdjęcie gotowej płyty PCB.
Przed uruchomieniem płyty PCB należało przygotować stanowisko pomiarowe, a także
założyć radiatory na układy FPGA, ustawić odpowiednio wszystkie przełączniki i zworki.
Zasilanie do płyty zostało podłączone przez złącze MX-8981-4V-LF. Źródłem napięcia był
zasilacz laboratoryjny firmy RIGOL DP1308A . W celu dokonania pomiarów używano
oscyloskopu firmy TEKTRONIX MDO4104B-3 i multimetru firmy FLUKE 289.
88
5.2. URUCHOMIENIE I POMIARY NAPIĘĆ ZASILAJĄCYCH.
Na zasilaczu ustawiono napięcie wyjściowe na wartość 5V, po czym podłączono do
niego przewody zasilające i włączono wyjście zasilacza. Po uruchomieniu płyty zmierzono
wartości napięć wyjściowych z poszczególnych przetwornic, a także zaobserwowano
przebiegi narastania i opadania napięć wyjściowych podczas włączania i wyłączania
urządzenia. Na rys. 3.1 przedstawione są przebiegi jakich spodziewano się w czasie włączania
i wyłączania płyty, natomiast rys. 5.2 i 5.3 przedstawiają zrzuty z oscyloskopu przebiegów
zaobserwowanych podczas testów.
Rys. 5.2 - przebiegi narastania napięć (1.0V i 2.5V) podczas uruchamiania płyty.
89
Rys. 5.3 - przebiegi opadania napięć (1.0V i 2.5V) podczas wyłączania płyty.
Wartości wszystkich napięć zasilających były zgodne z oczekiwanymi. Przebiegi
narastania i opadania napięć podczas włączania i wyłączania urządzenia również były zgodne
z oczekiwaniami. Na rys. poniżej przedstawione są wyniki pomiarów napięć wyjściowych
z czterech przetwornic.
Rys. 5.4 - wartości napięć na niektórych przetwornicach (1.0V, 1.2V, 2.5V i 3.3V).
90
Poniżej znajduje się tabela pomiarowa napięć wyjściowych z poszczególnych
przetwornic DC/DC.
Tabela 5.1 - wyniki pomiarów napięć wyjściowych z przetwornic DC/DC.
Etykieta napięcia Wartość napięcia [V]
RAIL 0.75V 0.7501
VCCINT1 0.9997
VCCINT2 1.0003
VCCINT3 1.0002
MGTAVCC 0.9990
MGTAVTT 1.2041
RAIL 1.5V 1.5092
RAIL 1.8V 1.8007
VCCAUX1,2 2.4881
VCCAUX3 2.4801
UCCO1 2.4856
UCCO2 2.5064
UCCO3 2.4792
RAIL 3.3V 3.2917
5.3. OBSERWACJA SYGNAŁÓW ZEGAROWYCH Z OSCYLATORÓW.
W projekcie zostały użyte trzy oscylatory. Dwa różnicowe o częstotliwościach 100 MHz
i 312.5 MHz oraz jeden z pojedynczym wyjściem o częstotliwości 50 MHz. Poniżej
przedstawiony jest przebieg na wyjściu oscylatora 50 MHz, który jest używany podczas
konfiguracji układów FPGA. Odczytana wartość częstotliwości wynosiła 50.0 MHz (na
rysunku widoczny jest wynik 50.05 MHz, jednak ostatnia cyfra nie była stabilna, co było
spowodowane błędami pomiaru). Natomiast wartości napięć stanów wysokiego i niskiego
miały wartości 3.2 V oraz 0.0 V.
91
Rys. 5.5 - przebieg sygnału zegarowego na wyjściu oscylatora 50 MHz.
Przebieg sygnału zegarowego na wyjściu oscylatora 50 MHz jest zgodny
z oczekiwaniami. W trakcie pomiarów używane były 2 kanały oscyloskopu. Początkowo
przykładana była jedna sonda i obserwowany był sygnał, a następnie w to samo miejsce druga
sonda. Po przyłożeniu drugiej sondy kształt przebiegu ulegał pogorszeniu. Na podstawie tego
eksperymentu stwierdzono, że masa sondy oscyloskopu zaburza kształt sygnału
i obserwowany przebieg bardziej odbiega od idealnego, niż w rzeczywistości jest
generowany.
Na rys. 5.6 przedstawiono przebieg sygnału zegarowego 50 MHz w punktach
znajdujących się tuż pod pinami zegarowymi (piny CCLK do których doprowadzony jest
sygnał zegarowy o częstotliwości 50 MHz) układu FPGA V1 i pamięci flash, przechowującej
strumienie danych konfiguracyjnych. Odczytane częstotliwości wynosiły po 50.0 MHz w obu
punktach pomiarowych. Wartości stanów wysokiego i niskiego były na poziomie (
) .
92
Rys. 5.6 - przebieg sygnału zegarowego na wejściach zegarowych układu FPGA V1 i pamięci flash.
Obserwacja powyższych przebiegów pozwoliła stwierdzić, że sygnały zegarowe są
w fazie, a więc prawidłowo zostały poprowadzone ścieżki (odpowiednio dobrane długości),
którymi sygnały te są przesyłane.
Oscylatory różnicowe po uruchomieniu nie działały prawidłowo. Na rys. 4.6
przedstawiony schemat podłączenia oscylatorów do buforów zegarowych. Problemem
okazało się złe ustalanie napięcia na pinie VT bufora zegarowego. Dzielnik rezystancyjny nie
sprawdził się w tym przypadku. Z tego względu zostały odlutowane rezystory stanowiące
dzielnik (R100 – R103). Podano napięcie 0.5V z zasilacza laboratoryjnego i wstawiono
rezystor o wartości 1 Ω pomiędzy pin VT i GND (brak tego rezystora powodował
podnoszenie się napięcia na pinie VT i w konsekwencji złe wartości napięć dla stanów
wysokiego i niskiego na wyjściu oscylatora). Na rys. 5.7 przedstawiony jest schemat logiczny
bufora zegarowego.
93
Rys. 5.7 - schemat logiczny bufora zegarowego.
Na wejściu bufora znajduje się wewnętrzna rezystancja 100 Ω, zrealizowana za pomocą
dwóch rezystorów. Pomiędzy tymi rezystorami podłączony jest pin VT, na który należało
podać napięcie o wartości 0.5 V. Takie samo rozwiązanie należało zrealizować na wyjściach
bufora.
Po zastosowaniu wszystkich powyższych poprawek, sygnały zegarowe 100 MHz
i 312.5 MHz były prawidłowo generowane przez oscylatory i poprawnie rozdzielane
w buforach zegarowych. Na rys. 5.8 przedstawiony jest przebieg sygnału zegarowego
z oscylatora 312.5 MHz.
Rys. 5.8 - przebieg sygnału zegarowego na wyjściu oscylatora 312.5 MHz.
94
Wartości napięć dla stanów niskiego i wysokiego są zgodne ze standardem LVPECL
(odczytane wartości napięć wynosiły odpowiednio: stan wysoki – 1.5 V, stan niski – 0.75 V).
Odczytana z pomiarów częstotliwość mieściła się w zakresie 310 – 314 MHz (wpływ na
odczyt częstotliwości miały sondy pomiarowe, a także sam odczyt obarczony był błędem
pomiarowym). Uzyskane przebiegi są zgodne z oczekiwaniami. Kształt przebiegów nie jest
idealnym prostokątem, gdyż generowana częstotliwość jest wysoka i widoczne są czasy
narastania i opadania zbocz. Przy wysokich częstotliwościach wpływ na kształt sygnału ma
indukcyjność i pojemność obwodu. Na obserwowane przebiegi niekorzystnie wpływa sonda
pomiarowa, która ma swoja pojemność i zaburza sygnał.
5.4. KONFIGURACJA UKŁADÓW FPGA
Płyta posiada interfejs JTAG, za pomocą którego komunikuje się z komputerem. Przed
podłączeniem interfejsu do płyty, należało ustawić przełączniki CFG_V1, CFG_V2
i CFG_V3 w pozycjach 0101, aby ustawić tryb konfiguracji układów FPGA przez interfejs
JTAG. Komunikacja z komputerem i konfiguracja wszystkich układów FPGA przebiegła
zgodnie z oczekiwaniami. Układy FPGA wystawiły sygnały DONE oznaczające zakończenie
konfiguracji. Odczytane komunikaty po konfiguracji informowały o braku błędów w czasie
konfiguracji. W dodatku 8.14 znajduje się kopia komunikatów wystawionych po konfiguracji
poszczególnych układów FPGA. Na rysunku poniżej przedstawiony jest układ połączeń
układów FPGA, odczytany programem IMPACT (za pomocą interfejsu JTAG).
Rys. 5.9 - układ połączeń układów FPGA, widziany przez JTAG.
Statusy układów FPGA (zamieszczone w dodatkach) informują o braku błędów podczas
konfiguracji (wszystkie pozycje ze słowem ERROR mają stan logiczny „0”). W statusach
rejestrów znajdują się informacje na temat dostarczenia sygnału zegarowego do układów
FPGA (PLL LOCK STATUS), ustawieniu trybu konfiguracji (MODE PIN M[2:0]) –
w przypadku układu Virtex V1, tryb konfiguracji jest ustawiony na „Slave Select Map”,
natomiast układy FPGA V2 i V3, tryb konfiguracji mają ustawiony na „JTAG”. Układ V1 ma
przestawiony tryb konfiguracji, gdyż strumienie danych dla niego zostały wrzucone do
pamięci flash i dzięki takiemu ustawieniu konfiguruje się on automatycznie po włączeniu
zasilania. Ze względu na długi czas wgrywania danych do pamięci flash, została ona tylko
95
przetestowana pod kątem poprawnej komunikacji z układem Virtex V1, możliwością
konfiguracji układu po włączeniu zasilania i utrzymaniem danych w pamięci. W dalszej
części testów, wszelkie rekonfiguracje przeprowadzane są za pomocą interfejsu JTAG.
Ostateczne strumienie danych konfiguracyjnych zostaną zapisane w pamięci flash, po
zakończeniu fazy testów systemu.
5.5. KOMUNIKACJA POMIĘDZY UKŁADAMI FPGA (TRANSCEIVERY GTX)
Płyta PCB zawiera trzy układy FPGA, które muszą się ze sobą komunikować. Komunikacja
pomiędzy układami Virtex 6 została zrealizowana za pomocą szeregowych transceiverów
GTX. Linie te umożliwiają transmisję danych z prędkością do 5 Gb/s. Każdy z układów
FPGA jest połączony czterema takimi liniami z innym układem Virtex. W celu
przetestowania łączy GTX został użyty program ChipScope. Po wygenerowaniu algorytmu
testującego łącza GTX (IP Core – IBERT) przesłano go do układów FPGA. Skonfigurowane
układy sprawdzają czy na ich wejścia zegarowe (banków GTX) są podawane sygnały
taktujące. Jeżeli sygnały te są prawidłowo doprowadzone, wówczas w konsoli IBERT
widoczna jest wartość „LOCKED” przy pozycjach TX PLL Status oraz RX PLL Status. Na
poniższym rysunku przedstawiony jest zrzut ekranu przedstawiający status i ustawienia banku
115 układu FPGA V3.
Rys. 5.10 - widok konsoli IBERT z danymi banku 115 układu FPGA V3.
96
Z powyższego rysunku można odczytać uzyskanie połączenia z innymi urządzeniami,
jak również jego prędkość, dla każdego z transceiverów GTX. Pozycja „Loopback Mode”
umożliwia włączenie pętli dla pojedynczego transceivera GTX, w taki sposób, aby sam do
siebie wysyłał informacje i porównywał je ze sobą. Jeżeli wartość ta jest ustawiona jako
„None” wówczas układ FPGA, może jedynie wymieniać dane z innym urządzeniem. Wartość
pozycji „MGT Link Status”, informuje o szybkości połączenia danego transceivera. Jeżeli
dany GTX nie jest podłączony do innego układu, bądź inny układ nie odpowiada (nie jest
skonfigurowany lub połączenie zostało błędnie zaprojektowane), to wartością tego pola jest
napis: „NO LINK”.
Banki 115 i 116 każdego z układów FPGA zostały przetestowane przy ustawieniu opcji
„Loopback mode” na „None”. Dzięki takiemu ustawieniu jeden układ FPGA wysyłał dane
do drugiego, a następnie tamten natychmiast odsyłał je z powrotem. Virtex generujący dane
porównywał ze sobą strumień wysłany z odebranym i obliczał BER (Bit Error Rate).
Pozostałe transceivery GTX musiały mieć ustawioną opcję ”Loopback mode” na
wartość „Far-End”, a także transmiter danego GTX był połączony kablem koncentrycznym
z receiverem tego samego GTX. Tylko takie ustawienie umożliwiało poprawne
przetestowanie wpływu zakłóceń na linie i obliczenie BER.
W dodatku 8.15 znajdują się wykresy „oka” wszystkich transceiverów GTX łączących
układy FPGA ze sobą, natomiast na załączonym dysku DVD znajdują pliki .csv z wynikami
testów. Wszystkie GTX-y posiadają stopę błędów BER na poziomie ok. (wszystkie
bity były prawidłowo odczytane), w ponad 55% szerokości pasma. Wynik taki jest
zadowalającym wynikiem, zważywszy na to, że przy ustawieniu „Loopback mode” na
wartość „Near-End” (zamknięcie pętli nadajnik - odbiornik wewnątrz układu FPGA), BER
również był na poziomie . Podobne wyniki uzyskał producent układów FPGA –
Xilinx, testując swoją płytę ewaluacyjną z układem Virtex 6 - XC6VLX240T – 1FF1156C
[28], mającym bardzo podobne parametry do układów FPGA użytych w tym projekcie.
5.6. PAMIĘĆ RAM – DDR3
Pamięci RAM zostały uruchomione i przetestowane dla układów FPGA V2 i V3.
Przetestowanie modułu pamięci RAM, współpracującej z Virtex-em V1 było niemożliwe, ze
względu na brak zainstalowanego modułu w chwili uruchamiania płyty i pierwszych testów.
W celu przetestowania pamięci RAM zostały wygenerowane algorytmy w języku
VHDL przy pomocy programów „ISE” i „CoreGenerator” firmy Xilinx. Generując gotowe
algorytmy (IP-Core) należy podać wszystkie parametry układów FPGA i użytych pamięci.
Następnie wystarczy przeprowadzić syntezę i przesłać strumienie danych do układów FPGA.
97
Układy Virtex były konfigurowane przy pomocy programu ChipScope, który umożliwił
jednoczesne przetestowanie pamięci. Algorytmy testujące były generowane jednocześnie
z generacją projektu IP-Core. W początkowej fazie testów przeprowadzana jest kalibracja
pamięci RAM. Po przeprowadzeniu poprawnej kalibracji wystawiany jest status
„phy_init_done” na wartość „1”. W kolejnej fazie program rozpoczyna wysyłanie pseudo-
losowych danych do pamięci i odbieranie tych samych danych, po czym są one porównywane
ze sobą. Jeżeli proces testowania dobiegł końca i odebrane dane są zgodne z wysłanymi,
wówczas wystawiany jest status „Done” na wartość „1” i „Error” na „0” [29]. Wysyłanie
danych rozpoczyna się od adresu zerowego i kończy na ostatnim, tak aby przetestowane
zostały wszystkie komórki pamięci. Taki proces testowania, sprawdza jednocześnie
poprawność połączeń na PCB. Wysyłane są dane wszystkimi liniami danych, wykorzystując
wszystkie możliwe kombinacje linii adresowych. Opóźnienia pomiędzy liniami szyny danych
i szyny adresowej nie powinny być większe niż 5 ps. Aby zapewnić poprawną synchronizację
adresów i danych, konieczne było wyrównanie długości wszystkich tych linii (a także linii
komunikatów, takich jak: RAS, CAS, CS, itp.) łączących układy pamięci RAM z układami
FPGA. Wyżej opisany test umożliwia sprawdzenie poprawnego wyrównania długości
ścieżek, a także przesłuchów pomiędzy ścieżkami i prawidłowego projektu schematu
elektrycznego. Jeżeli byłyby błędy w projekcie, wówczas status „Error” miałby wartość „1”.
Przeprowadzenie testów pamięci w projekcie HPC dało pozytywne wyniki. Statusy
„phy_init_done” i „Done” wystawiły wartości „1”, natomiast status „Error” wystawił
wartość „0”, dla każdego układu pamięci.
Poniżej znajduje przykładowy rysunek przedstawiający statusy wystawione po
testowaniu pamięci RAM, natomiast w dodatku nr 8.16 znajdują się wyniki i ustawienia
podczas testowania pamięci DDR3.
Rys. 5.11 - statusy wystawione po fazie testów pamięci RAM.
98
Z powyższego rysunku można odczytać wartość „/c1_phy_init_done” – 1, świadcząca
o tym, że obie kości pamięci podpięte do jednego układu FPGA prawidłowo się
skonfigurowały. Statusy „Done” i „Error” są wektorami dwubitowymi, gdyż osobno
wystawiane są wartości dla każdej z kości pamięci DDR3. Na powyższym rysunku wektory te
są „zwinięte” i pokazują wartość dziesiętną danego statusu. Jeżeli wartość ta jest równa:
0 – wówczas obie kości pamięci mają wystawiony status „0”,
1 lub 2 – wówczas jedna z kości pamięci ma wystawiony status „1”, natomiast druga
„0”,
3 – obie kości pamięci mają wystawiony status „1”.
Status „/c1_dbg_rdlvl_done” ma wartość „3”. Wartość ta informuje o tym, że obie
kości pamięci RAM zakończyły pomyślnie proces testowania. Status „/c1_dbg_rdlvl_err” ma
wartość „0”. Świadczy to o braku błędów obu kości pamięci w procesie testowania
i zgodności danych odczytanych z wysłanymi.
99
6. PODSUMOWANIE
W ramach pracy zrealizowano projekt płyty PCB spełniający założenia projektowe.
Została zaproponowana koncepcja płyty, która została uzgodniona z elektronikami
zajmującymi się rozwojem opisu sprzętu instalowanego w przyszłości na płycie. Uzgodniony
projekt płyty jest uniwersalny, umożliwia zrealizowanie wielu różnych projektów
badawczych. Spełnił on także wszystkie założenia dostarczone przez firmę Airbus Military.
Zrealizowana płyta zawiera trzy układy FPGA. Wybór układów został przeprowadzony
z uwzględnieniem możliwości finansowych projektu i umożliwia rozwój oprogramowania
z podziałem na kilka współpracujących ze sobą układów FPGA. Projekt umożliwia
zwiększenie niezawodności algorytmów w oparciu o kilka niezależnych układów FPGA.
Dzięki zastosowaniu transceiverów GTX możliwe transmitowanie dużej ilości danych
między układami za pomocą małej ilości linii danych. Koncepcja ta jest wykorzystywana
w oprogramowaniu, które może być podzielone na kilka niezależnych bloków. Możliwa jest
różna konfiguracja płyty umożliwiająca potokowe przetwarzanie danych, jak również
równoległe przetwarzanie danych.
Płyta zawiera kilka pamięci flash, które mogą być wykorzystane zarówno do
konfigurowania płyty, jak i przechowywania danych. Zaproponowano sposób konfigurowania
płyty zapewniający optymalne wykorzystanie pamięci.
Po analizie dostarczonej przez zleceniodawcę projektu dokumentacji zaproponowano
dodanie dodatkowego gniazda FMC do płyty. Gniazdo to zostało dodane i znacznie zwiększa
funkcjonalność płyty. Gniazdo to umożliwia zaimplementowanie interfejsów CAN, Gigabit
Ethernet, SpaceFibre, SpW, HSSL i innych. Gniazdo to także jest przydatne w czasie testów
oprogramowania.
Zaprojektowana płyta swoimi zasobami zapewnia możliwość implementacji
oprogramowania do stabilizacji obrazu pochodzącego z kamery zainstalowanej na satelicie.
Ponadto umożliwia zaimplementowanie algorytmów stabilizacji położenia satelity w oparciu
o analizę obrazu nieba.
Projekt jest rozwojowy, proponowane są nowe zastosowania płyty. Płyta może zostać
zastosowana w celach analizy obrazu, oraz jego kompresji przed przesłaniem na Ziemie.
Autor pracy planuje dalszy udział w realizowanym projekcie „High Performance
Computing for Space Application”. Autor pracy został zatrudniony w firmie Astri Polska na
stanowisku inżyniera projektu i jest odpowiedzialny za udział Astri Polska w niniejszym
projekcie. Przy realizacji projektu autor uzyskał dużą wiedzę z zakresu projektowania
100
urządzeń elektronicznych i planuje tą wiedzę wykorzystać i rozwijać w dalszych etapach
projektu.
W ramach projektu zaplanowane jest wykonanie kolejnej wersji płyty. Płyta ta będzie
zawierać poprawki wniesione zarówno przez elektroników zajmujących się opisem sprzętu
systemu oraz przez autora płyty. Płyta ta będzie także realizowana przez autora niniejszej
pracy.
Projekt był realizowany przez wielu inżynierów odpowiedzialnych za różne części
projektu. Autor projektu włożył duży wkład pracy w uzgadnianie rozwiązań sprzętowych na
płycie z innymi inżynierami projektu. Dzięki temu autor nauczył się pracy zespołowej
i wspólnej realizacji dużych projektów naukowo – badawczych.
Autor niniejszej pracy był także odpowiedzialny za stworzenie dokumentacji do swojej
pracy. Dokumentacja ta będzie wykorzystywana przez innych inżynierów projektu do
tworzenia opisu sprzętu.
101
7. LITERATURA
[1]. VITA 57 1-2008(2010)_FMC.pdf, załącznik na płycie CD,
[2]. Xilinx, Virtex 6 datasheet,
http://www.xilinx.com/support/documentation/data_sheets/ds152.pdf, dokument DS152
(v3.5) May 17, 2013,
[3]. Xilinx, Mememory Interface Solution,
http://www.xilinx.com/support/documentation/ip_documentation/ds186.pdf, dokument
DS186 (v1.7) March 1, 2011,
[4]. Xilinx, Platform Flash XL High-Density Configuration and Storage Device,
http://www.xilinx.com/support/documentation/data_sheets/ds617.pdf, dokument DS617
(v3.0.1) January 07, 2010,
[5]. Xilinx, Virtex 6 FPGA Configuratrion,
http://www.xilinx.com/support/documentation/user_guides/ug360.pdf, dokument
UG360 (v3.7) November 27, 2013,
[6]. Xilinx, Virtex 6 FPGA PCB Design Guide,
http://www.xilinx.com/support/documentation/user_guides/ug373.pdf, dokument
UG373 (v1.2) June 10, 2010,
[7]. Xilinx, Platform Flash XL Configuration and Storage Device,
http://www.xilinx.com/support/documentation/user_guides/ug438.pdf, dokument
UG438 (v2.0) December 14, 2009,
[8]. Hynix, 4Gb DDR3 SDRAM, http://www.farnell.com/datasheets/1641692.pdf,
[9]. TXC, 7 x 5 mm SMD LVPECL CXO BB SERIES,
http://www.txccrystal.com/images/pdf/bb.pdf,
[10]. Texas Instruments, PTH05020W - 5-V Input
http://www.ti.com/lit/ds/slts207c/slts207c.pdf,
[11]. Texas Instruments, PTH05060W -5-V Input,
http://www.ti.com/lit/ds/slts216b/slts216b.pdf,
102
[12]. Marvell, 88E1111 Product Brief, http://www.marvell.com/transceivers/assets/Marvell-
Alaska-Ultra-88E1111-GbE.pdf,
[13]. ON Semiconductor, NB6L14 datasheet,
http://www.onsemi.com/pub_link/Collateral/NB6L14-D.PDF,
[14]. Micron Technology, DATA SHEET,
http://www.micron.com/products/datasheets/087e6d56-ba5a-4cd0-964e-8342641d9547,
[15]. Linear Technology, LTC3413 datasheet,
http://www.farnell.com/datasheets/1692453.pdf,
[16]. Texas Instruments, OCTAL BUFFERS/DRIVERS WITH 3-STATE OUTPUTS,
http://www.farnell.com/datasheets/1764338.pdf,
[17]. Microchip, MCP1726 datasheet,
http://ww1.microchip.com/downloads/en/DeviceDoc/21936c.pdf,
[18]. Texas Instruments, 74AC11074, http://www.farnell.com/datasheets/1763887.pdf,
[19]. OMRON, Slide DIP Switch (SMT Half - pitch)
http://www.farnell.com/datasheets/1759680.pdf,
[20]. DIPTRONICS, datasheet, http://www.tme.eu/pl/details/dtsm31n/mikroprzelaczniki-
tact-pcb/diptronics/#,
[21]. Seiko Epson Corporation, datasheet, http://www.farnell.com/datasheets/1700989.pdf,
[22]. Altium Corporation, Altium Designer, http://www.altium.com,
[23]. Altium Corporation, dokumentacja oprogramowania Altium Designer w zakresie
projektowania PCB, http://wiki.altium.com/display/POPROD/Home,
[24]. EDN Network, artykuł prasowy o technologii fly-by,
http://www.edn.com/design/systems-design/4416627/2/DDR3--A-comparative-study,
[25]. ARM, AMBA AXI and ACE Protocol Specification,
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0022e/index.html,
[26]. Tim Williams, „The Circuit Designer’s Companion”, wyd. Elsevier,
ISBN: 0 7506 6370 7,
103
[27]. Stephen C. Thierauf, „High-Speed Circuit Board Signal Integrity”, wyd. Artech House,
ISBN: 1-58053-131-8,
[28]. Using an IBERT Core with ChipScope Pro Analyzer,
http://www.xilinx.com/support/documentation/sw_manuals/xilinx13_1/ug811_ChipSco
peUsingIBERTwithAnalyzer.pdf, dokument UG811 (v. 13.1) June 1, 2011,
[29]. Xilinx, Mememory Interface Solution, User Guide,
http://www.xilinx.com/support/documentation/ip_documentation/ug406.pdf, dokument
UG406 March 1, 2011
104
8. DODATKI
8.1. PARAMETRY UKŁADÓW FPGA
Porównanie kilku układów FPGA Virtex 5 i Virtex 6.
Tabela 8.1. – porównanie podstawowych zasobów układów Virtex 6.
Virtex 6
Rodzina LXT
Numer seryjny XC6VLX195T-
1FF1156C
XC6VLX240T-
1FF1759C
XC6VLX240T-
1FF1156C
XC6VLX240T-
1FFG784C
XC6VLX195T-
2FFG784C
Liczba komórek
logicznych 199680 241152 241152 241152 199680
Liczba pinów I/O 600 720 600 400 400
RAM [bit] 12681216 15335424 15335424 15335424 12681216
Stopień prędkości 1 1 1 1 2
Liczba
transceiver’ów GTX 20 24 20 12 20
Liczba banków I/O 15 18 18 18 15
Liczba bloków
Ethernet MAC 4 4 4 4 4
Liczba bloków PCI
Express 2 2 2 2 2
Liczba managerów
zegara
MMCMS/CMTs
10 12 12 12 10
DSP48E1 640 768 768 768 640
CPU - zegar [MHz] 700 700 700 700 750
Przepustowość GTX
[Gb/s] 5 5 5 5 6,6
Cena (USD) – za 2
sztuki 1372,9383 1915,753 1676,4036 1463,9746 1489,4098
Cena (USD) – za 5
sztuk 1328,77 1858,709 1624,6967 1417,4557 1442,2478
Tabela 8.2 – porównanie podstawowych zasobów układów Virtex 5.
Virtex 5
Rodzina FXT
Numer seryjny XC5VFX30T-
3FF665C
XC5VFX70T-
1FF1136C
XC5VFX70T-
2FFG1136C
XC5VFX70T-
3FFG665C
Liczba komórek
logicznych
Liczba pinów I/O 360 640 640 360
RAM [bit] 2506752 5455872 5455872 5455872
Stopień prędkości 3 1 2 3
Liczba
transceiver’ów GTX 8 16 16 16
Liczba banków I/O 12 19 19 19
105
Liczba bloków
Ethernet MAC 4 4 4 4
Liczba bloków PCI
Express 1 3 3 3
Liczba managerów
zegara
MMCMS/CMTs
2 6 6 6
DSP48E1 64 128 128 128
CPU - zegar [MHz] 550 400 475 550
Przepustowość GTX
[Gb/s] 6,5 4,25 6,5 6,5
Cena (USD) – za 2
sztuki 825,2499 1057,4346 1315,7328 1664,379
Cena (USD) – za 5
sztuk 807,6761 1028,3446 1273,0801 1612,9545
Tabela 8.3. - zalecane parametry robocze układu Virtex 6.
Symbol Opis Min Max Jednostka
VCCINT
Wewnętrzne napięcie zasilające
względem GND 0.95 1.05 V
Wewnętrzne napięcie zasilające
względem GND, Tj = 0°C to +85°C 0.87 0.93 V
Wewnętrzne napięcie zasilające
względem GND, Tj = –40°C to
+100°C
0.91 0.97 V
VCCAUX Pomocnicze napięcie zasilające
względem GND 2.375 2.625 V
VCCO Napięcie zasilające względem GND 1.14 2.625 V
VIN
2.5 V - napięcie zasilające względem
GND
GND –
0.20 2.625 V
2.5 V i poniżej - napięcie zasilające
względem GND
GND –
0.20
VCCO +
0.2 V
VBATT Napięcie z baterii względem GND 1.0 2.5 V
Tj Zakres temperatur pracy 0 85 ˚C
Tabela 8.4 - zakres napięć sterujących LVPECL.
Symbol Parametr DC Min Typ Max Jednostka
VOH Wyjściowy stan wysoki VCC –
1.025 1.545
VCC –
0.88 V
VOL Wyjściowy stan niski VCC – 1.81 0.795 VCC –
1.62 V
106
Tabela 8.5 - specyfikacja bloków transceiver GTX.
Symbol Opis Pętla
PLL Min Typ Max
Jednostk
a
MGTAVCC
Napięcie zasilające
dla obwodu nadajnika
i odbiornika GTX
względem GND
≤ 2.7
GHz 0.95 1.0 1.06 V
MGTAVTT
Napięcie zasilające
dla obwodu z
terminatorem
nadajnika i
odbiornika GTX
względem GND
1.14 1.2 1.26 V
MGTAVTT
RCAL
Napięcie zasilające
dla rezystora
kalibrującego
kolumny
transceiver’a GTX
1.14 1.2 1.26 V
RIN
Rezystancja
wejściowa pary
różnicowej
80 100 130 Ω
ROUT
Rezystancja
wyjściowa pary
różnicowej
80 100 130 Ω
CEXT
Zalecany zewnętrzny
kondensator
sprzęgający
100 nF
TRCLK
Czas narastania
zbocza
referencyjnego
sygnału zegarowego
200 ps
TFCLK
Czas opadania zbocza
referencyjnego
sygnału zegarowego
200 ps
107
8.2. SPECYFIKACJA UKŁADÓW PAMIĘCI FLASH XCF128XFTG64C:
Pamięć Flash wykorzystywana do konfiguracji charakteryzuje się następującymi
parametrami, które były istotne podczas projektowania PCB.
Transfer strumieni danych z prędkością 800 Mb/s (50 MHz x 16 bit),
Synchronizacja z konfigurowanym układem poprzez sygnał READY_WAIT,
Kompatybilność z oprogramowaniem ISE, za pomocą którego odbywa się przesłanie
strumieni danych poprzez interfejs JTAG,
Możliwość pracy w zakresie temperatur przemysłowych (-40˚C do 85˚C),
Napięcia zasilające:
o VDD = 1.8 V,
o VDDQ = 2.5 V lub 3.3 V,
Rozmiary 10mm x 13mm (obudowa FT64).
8.3. SPECYFIKACJA ZASTOSOWANEGO UKŁADU PAMIĘCI
H5TQ4G63MFR-H9C:
Specyfikacja układów pamięci DDR3 zastosowanych w projekcie płyty PCB.
Napięcie zasilania: VDD = VDDQ = 1.5 V +/- 0.075 V,
Różnicowe wejścia zegarowe,
Programowalne czasy opóźnień: 5, 6, 7, 8, 9, 10, 11, 12, 13
Programowalne czasy zapisu: 5, 6, 7, 8,
Średnie odświeżanie cyklu:
Rys. 8.1 – schemat blokowy układu XCF128XFTG64C
108
o 7.8 µs (0˚C do 85˚C),
o 3.9 µs (85˚C do 95˚C),
Obudowa FBGA 96 pin (dla szyny 16 bit),
Asynchroniczny reset,
Kalibracja ZQ.
8.4. SPECYFIKACJA OSCYLATORÓW
Specyfikacja oscylatorów zastosowanych w projekcie płyty PCB.
Różnicowe wyjścia sygnałowe,
Trójstanowość (włączane wyjście),
Wyjście typu LVPECL,
Napięcie zasilające: 3.3 V,
Stabilność częstotliwości: +/- 50 ppm,
Temperatura pracy: -40˚C do 85˚C,
Pobór prądu: 80 mA,
Czas opadania/narastanie zbocza sygnału: 1 ns / 1 ns.
8.5. SPECYFIKACJA UKŁADÓW PRZETWORNIC NAPIĘCIA
Specyfikacja przetwornic napięcia zastosowanych w projekcie płyty PCB.
Max. prąd wyjściowy: 22 A (dla PTH05020WAH), 10 A (dla PTH05060WAZ),
Napięcie wejściowe: 5 V,
Zakres napięć wyjściowych: 0.8 V do 3.6 V,
Sprawność: do 96%,
Kontrola włączania i wyłączania,
Kontrola napięcia wyjściowego,
Sekwencyjność włączania kilku modułów,
Temp. pracy: -40˚C do 85˚C.
8.6. SPECYFIKACJA UKŁADU WARSTWY FIZYCZNEJ OBSŁUGUJĄCEJ
ŁĄCZE INTERFEJSU GIGABIT ETHERNET:
Specyfikacja układów mikrokontrolera w warstwie fizycznej, zastosowanych w projekcie
płyty PCB.
Standard 10/100/1000BASE-T IEEE 802.3,
Standard: GMII, RGMII, SGMII,
109
Automatyczna detekcja światłowodu lub kabla miedzianego,
Obsługa IEEE 1149.1 JTAG,
Wymagane 2 napięcia zasilania: 2.5 V i 1.0 V,
Tolerancja napięcia 3.3 V na pinach I/O,
Rozpraszana moc: 0.75 W,
Obudowa 128 PQFP.
8.7. SPECYFIAKCJA BUFORA ZEGAROWEGO
Specyfikacja buforów zegarowych zastosowanych w projekcie płyty PCB.
Częstotliwość wejściowa: > 3.0 GHz,
Prędkość transmisji danych: > 2.5 Gb/s,
Błąd synchronizacji sygnału pomiędzy wyjściami: < 20 ps,
Typowy czas narastania i opadania zbocza: 150 ps,
Amplituda różnicowego wyjścia LVPECL: 700 mV,
Zakres napięcia zasilającego: VCC = 2.375 V do 3.63 V,
Temp. pracy: -40˚C do 85˚C,
Obudowa: 16 pin – QFN.
8.8. SPECYFIKACJA UKŁADU PAMIĘCI FLASH
Specyfikacja pamięci flash zastosowanej w projekcie płyty PCB.
2 Gb pojemności,
Napięcia zasilające:
o VCC = 2.7 V do 3.6 V (programowanie, zapis, odczyt),
o VCCQ = 1.65 V do 3.6 V (piny I/O),
Asynchroniczny odczyt:
Rozmiar strony: 16 słów 32 – bitowych,
Niski pobór mocy w trybie czuwania,
Obudowa TSOP, 56 pin,
Temp. pracy: -40˚C do 85˚C,
110
8.9. SPECYFIKACJA UKŁADU REGULATORA NAPIĘCIA LTC3413EFE#PBF
Specyfikacja układu regulatora napięcia zastosowanego w projekcie płyty PCB.
Zasilanie układu: 3.3 V,
Sprawność: do 90%,
Max. prąd wyjściowy: 3 A,
Symetryczne źródło i ograniczenie prądu wyjściowego,
Mała rezystancja wewnętrzna: 85 mΩ,
Nie wymaga diody Schottky’iego,
Napięcie wejściowe: 2.25 V do 5.5 V,
Napięcie wyjściowe: VREF / 2,
Tolerancja napięcia wyjściowego: +/- 1%,
Programowalna częstotliwość przełączania: powyżej 2 MHz,
Kontrola wartości napięcia wyjściowego,
Ochrona przed przegrzaniem.
8.10. SPECYFIKACJA UKŁADU BUFORA
Specyfikacja układu bufora zastosowanego w projekcie płyty PCB.
Napięcie zasilające: VCC = 2 V do 5.5 V,
Opóźnienie sygnału pomiędzy wejściem, a wyjściem dla 5 V: 6 ns,
Rys. 8.2 – schemat logiczny pamięci.
111
8.11. SPECYFIKACJA UKŁADU BUFORA NAPIĘCIA
Max. prąd wyjściowy: 1 A,
Napięcie wejściowe: 2.3 V do 6.0 V,
Regulowane napięcie wyjściowe: 0.8 V do 5.0 V,
Spadek napięcia na wyjściu przy obciążaniu: do 220 mV (dla 1 A),
Tolerancja napięcia wyjściowego: 0.4 %,
Konieczność podłączenia kondensatora ceramicznego 1 µF, w celu zapewnienia
stabilności napięcia wyjściowego,
Pobór prądu w czasie pracy: 140 µA,
Pobór prądu w stanie czuwania: 0.1 µA.
8.12. SPECYFIKACJA UKŁADU PRZERZUTNIKA TYPU D
Napięcie zasilające: VCC = 3 V do 5.5 V,
Max. rozproszenie mocy: 1.25 W,
Temp. pracy: -40˚C do 85˚C.
Dla niskich stanów PRE i CLR, stan wyjściowy jest niestabilny na obu wyjściach.
Rys. 8.3 – schemat logiczny pojedynczej pary we/wy układu.
Tabela 8.6 - funkcje logiczne układu dla jednej pary we/wy.
112
8.13. LISTA SCHEMATÓW ZNAJDUJĄCYCH SIĘ NA PŁYCIE DVD
Lista schematów znajdujących się na płycie DVD, w pliku Schematy.pdf:
HPC_1_Power.SchDoc,
HPC_1_Vref.SchDoc,
HPC_1_CLK.SchDoc,
HPC_1_Config_JTAG.SchDoc,
HPC_1_Config_Flash_V1.SchDoc,
HPC_1_Config_V1_V2.SchDoc,
HPC_1_Data_Flash_V1.SchDoc,
HPC_1_DDR3_V1.SchDoc,
HPC_1_DDR3_V2.SchDoc,
HPC_1_DDR3_V3.SchDoc,
HPC_1_FMC1_V2.SchDoc,
HPC_1_FMC1_V2_Socket.SchDoc,
HPC_1_FMC2_V3.SchDoc,
HPC_1_FMC2_V3_Socket.SchDoc,
HPC_1_GTX_V1.SchDoc,
HPC_1_GTX_V2.SchDoc,
HPC_1_GTX_V3.SchDoc,
HPC_1_Ethernet_V1.SchDoc,
HPC_1_Ethernet_V2.SchDoc,
HPC_1_Ethernet_V3.SchDoc,
HPC_1_Handshake.SchDoc,
HPC_1_VCC_V1.SchDoc,
Tabela 8.7 – stany przerzutnika.
113
HPC_1_VCC_V2.SchDoc,
HPC_1_VCC_V3.SchDoc,
HPC_1_GND_V1.SchDoc,
HPC_1_GND_V2.SchDoc,
HPC_1_GND_V3SchDoc,
HPC_1_SMA.SchDoc,
HPC_1_ERF_GTX.SchDoc,
HPC_1_Test_Probe.SchDoc,
HPC_1_Test_Probe_HDR.SchDoc.
8.14. STATUSY UKŁADÓW FPGA ODCZYTANE PO KONIGURACJI
Virtex V1:
'1': Reading bootsts register contents...
[0] VALID_0 - ERROR OR END OF STARTUP (EOS) DETECTED : 1
[1] FALLBACK_0 - FALLBACK TRIGGERED RECONFIGURATION : 0
[2] IPROG_0 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION :
0
[3] WTO_ERROR_0 - WATCHDOG TIME OUT ERROR : 0
[4] ID_ERROR_0 - FPGA DEVICE IDCODE ERROR : 0
[5] CRC_ERROR_0 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[6] WRAP_ERROR_0 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0
[7] HMAC_ERROR_0 - HMAC ERROR : 0
[8] VALID_1 - ERROR OR END OF STARTUP (EOS) DETECTED : 0
[9] FALLBACK_1 - FALLBACK TRIGGERED RECONFIGURATION : 0
[10] IPROG_1 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION
: 0
[11] WTO_ERROR_1 - WATCHDOG TIME OUT ERROR : 0
[12] ID_ERROR_1 - FPGA DEVICE IDCODE ERROR : 0
[13] CRC_ERROR_1 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[14] WRAP_ERROR_1 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0
[15] HMAC_ERROR_1 - HMAC ERROR : 0
'1': Reading status register contents...
[0] CRC ERROR : 0
[1] DECRYPTOR ERROR : 0
[2] PLL LOCK STATUS : 1
114
[3] DCI MATCH STATUS : 1
[4] END OF STARTUP (EOS) STATUS : 1
[5] GTS_CFG_B STATUS : 1
[6] GWE STATUS : 1
[7] GHIGH STATUS : 1
[8] MODE PIN M[0] : 0
[9] MODE PIN M[1] : 1
[10] MODE PIN M[2] : 1
[11] INIT_B INTERNAL SIGNAL STATUS : 1
[12] INIT_B PIN : 1
[13] DONE INTERNAL SIGNAL STATUS : 1
[14] DONE PIN : 1
[15] IDCODE ERROR : 0
[16] SECURITY ERROR : 0
[17] SYSTEM MONITOR OVER-TEMP ALARM STATUS : 0
[18] CFG STARTUP STATE MACHINE PHASE : 0
[19] CFG STARTUP STATE MACHINE PHASE : 0
[20] CFG STARTUP STATE MACHINE PHASE : 1
[21] RESERVED : 0
[22] SPI FLASH SELECT PIN FS[0] : 1
[23] SPI FLASH SELECT PIN FS[1] : 1
[24] SPI FLASH SELECT PIN FS[2] : 1
[25] CFG BUS WIDTH DETECTION : 0
[26] CFG BUS WIDTH DETECTION : 1
[27] RESERVED : 0
[28] HSWAPEN PIN : 1
[29] BAD PACKET ERROR : 0
[30] RESERVED : 0
[31] EFUSE BUSY STATUS : 0
Virtex V2:
'2': Reading bootsts register contents...
[0] VALID_0 - ERROR OR END OF STARTUP (EOS) DETECTED : 1
[1] FALLBACK_0 - FALLBACK TRIGGERED RECONFIGURATION : 0
115
[2] IPROG_0 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION :
0
[3] WTO_ERROR_0 - WATCHDOG TIME OUT ERROR : 0
[4] ID_ERROR_0 - FPGA DEVICE IDCODE ERROR : 0
[5] CRC_ERROR_0 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[6] WRAP_ERROR_0 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0
[7] HMAC_ERROR_0 - HMAC ERROR : 0
[8] VALID_1 - ERROR OR END OF STARTUP (EOS) DETECTED : 0
[9] FALLBACK_1 - FALLBACK TRIGGERED RECONFIGURATION : 0
[10] IPROG_1 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION
: 0
[11] WTO_ERROR_1 - WATCHDOG TIME OUT ERROR : 0
[12] ID_ERROR_1 - FPGA DEVICE IDCODE ERROR : 0
[13] CRC_ERROR_1 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[14] WRAP_ERROR_1 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0
[15] HMAC_ERROR_1 - HMAC ERROR : 0
'2': Reading status register contents...
[0] CRC ERROR : 0
[1] DECRYPTOR ERROR : 0
[2] PLL LOCK STATUS : 1
[3] DCI MATCH STATUS : 1
[4] END OF STARTUP (EOS) STATUS : 1
[5] GTS_CFG_B STATUS : 1
[6] GWE STATUS : 1
[7] GHIGH STATUS : 1
[8] MODE PIN M[0] : 1
[9] MODE PIN M[1] : 0
[10] MODE PIN M[2] : 1
[11] INIT_B INTERNAL SIGNAL STATUS : 1
[12] INIT_B PIN : 1
[13] DONE INTERNAL SIGNAL STATUS : 1
[14] DONE PIN : 1
[15] IDCODE ERROR : 0
[16] SECURITY ERROR : 0
[17] SYSTEM MONITOR OVER-TEMP ALARM STATUS : 0
116
[18] CFG STARTUP STATE MACHINE PHASE : 0
[19] CFG STARTUP STATE MACHINE PHASE : 0
[20] CFG STARTUP STATE MACHINE PHASE : 1
[21] RESERVED : 0
[22] SPI FLASH SELECT PIN FS[0] : 1
[23] SPI FLASH SELECT PIN FS[1] : 1
[24] SPI FLASH SELECT PIN FS[2] : 1
[25] CFG BUS WIDTH DETECTION : 0
[26] CFG BUS WIDTH DETECTION : 0
[27] RESERVED : 0
[28] HSWAPEN PIN : 0
[29] BAD PACKET ERROR : 0
[30] RESERVED : 0
[31] EFUSE BUSY STATUS : 0
Virtex V3:
'3': Reading bootsts register contents...
[0] VALID_0 - ERROR OR END OF STARTUP (EOS) DETECTED : 1
[1] FALLBACK_0 - FALLBACK TRIGGERED RECONFIGURATION : 0
[2] IPROG_0 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION :
0
[3] WTO_ERROR_0 - WATCHDOG TIME OUT ERROR : 0
[4] ID_ERROR_0 - FPGA DEVICE IDCODE ERROR : 0
[5] CRC_ERROR_0 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[6] WRAP_ERROR_0 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0
[7] HMAC_ERROR_0 - HMAC ERROR : 0
[8] VALID_1 - ERROR OR END OF STARTUP (EOS) DETECTED : 0
[9] FALLBACK_1 - FALLBACK TRIGGERED RECONFIGURATION : 0
[10] IPROG_1 - INTERNAL WARMBOOT (IPROG) TRIGGERED RECONFIGURATION
: 0
[11] WTO_ERROR_1 - WATCHDOG TIME OUT ERROR : 0
[12] ID_ERROR_1 - FPGA DEVICE IDCODE ERROR : 0
[13] CRC_ERROR_1 - CYCLIC REDUNDANCY CHECK (CRC) ERROR : 0
[14] WRAP_ERROR_1 - BPI FLASH ADDRESS COUNTER WRAP AROUND ERROR : 0
[15] HMAC_ERROR_1 - HMAC ERROR : 0
117
'3': Reading status register contents...
[0] CRC ERROR : 0
[1] DECRYPTOR ERROR : 0
[2] PLL LOCK STATUS : 1
[3] DCI MATCH STATUS : 1
[4] END OF STARTUP (EOS) STATUS : 1
[5] GTS_CFG_B STATUS : 1
[6] GWE STATUS : 1
[7] GHIGH STATUS : 1
[8] MODE PIN M[0] : 1
[9] MODE PIN M[1] : 0
[10] MODE PIN M[2] : 1
[11] INIT_B INTERNAL SIGNAL STATUS : 1
[12] INIT_B PIN : 1
[13] DONE INTERNAL SIGNAL STATUS : 1
[14] DONE PIN : 1
[15] IDCODE ERROR : 0
[16] SECURITY ERROR : 0
[17] SYSTEM MONITOR OVER-TEMP ALARM STATUS : 0
[18] CFG STARTUP STATE MACHINE PHASE : 0
[19] CFG STARTUP STATE MACHINE PHASE : 0
[20] CFG STARTUP STATE MACHINE PHASE : 1
[21] RESERVED : 0
[22] SPI FLASH SELECT PIN FS[0] : 1
[23] SPI FLASH SELECT PIN FS[1] : 1
[24] SPI FLASH SELECT PIN FS[2] : 1
[25] CFG BUS WIDTH DETECTION : 0
[26] CFG BUS WIDTH DETECTION : 0
[27] RESERVED : 0
[28] HSWAPEN PIN : 0
[29] BAD PACKET ERROR : 0
[30] RESERVED : 0
[31] EFUSE BUSY STATUS : 0
118
Ry
s.
8.4
– w
yk
res
ok
a d
la G
TX
0 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
2.
8.15. WYKRESY „OKA” DLA TRANSCEIVERÓW GTX ŁĄCZĄCYCH
UKŁADY FPGA MIĘDZY SOBĄ
119
Ry
s.
8.5
– w
yk
res
ok
a d
la G
TX
1 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
2.
120
Ry
s.
8.6
– w
yk
res
ok
a d
la G
TX
2 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
2.
121
Ry
s.
8.7
– w
yk
res
ok
a d
la G
TX
3 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
2.
122
Ry
s.
8.8
– w
yk
res
ok
a d
la G
TX
0 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
3.
123
Ry
s.
8.9
– w
yk
res
ok
a d
la G
TX
1 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
3.
124
Ry
s.
8.1
0 –
wy
kre
s ok
a d
la G
TX
2 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
3.
125
Ry
s.
8.1
1 –
wy
kre
s ok
a d
la G
TX
3 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V1
i V
3.
126
Ry
s.
8.1
2 –
wy
kre
s ok
a d
la G
TX
0 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V2
i V
3.
127
Ry
s.
8.1
3 –
wy
kre
s ok
a d
la G
TX
1 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V2
i V
3.
128
Ry
s.
8.1
4 –
wy
kre
s ok
a d
la G
TX
2 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V2
i V
3.
129
Ry
s.
8.1
5 –
wy
kre
s ok
a d
la G
TX
3 s
łużą
ceg
o d
o k
om
un
ikac
ji
po
mię
dzy
uk
ład
ami
FP
GA
V2
i V
3.
130
Ry
s.
8.1
6 -
wy
nik
i te
stó
w p
amię
ci R
AM
(p
ierw
sze
6 p
rób
ek).
8.16. WYNIKI TESTÓW PAMIĘCI RAM
131
Ry
s.
8.1
7 -
wy
nik
i te
stó
w p
amię
ci R
AM
(śr
od
ko
we
7 p
róbek
).