Zaliczenie wykładu Flashcards
Wymień trzy kategorie układów programowalnych (podział pod względem złożoności architektury) i scharakteryzuj krótko każdą z nich.
SPLD - Simple Programmable Logic Devices: Najprostsze i najstarsze układy programowalne. Ich głownym komponentem jest matryca bramek odpowiedzialna za przetwarzanie sygnałów. W tej kategorii układów. W tej katergorii układów zawierają się takie podkategorie jak PROM, PLA, PAL, GAL.
CPLD - Complex Programmable Logic Devices: Są bardziej złożone od układów SPLD, oferują większą pojemnośćlogiczną. Składają się z wielu bloków podobnych do układów SPLD połączonych magistralami w jedną strukturę. Końcówka I/0 układu połączenie zarówno z blokami jak i z magistralą.
FPGA - Field-Programmable Gate Array: Układy oparte o koncepcję morza bramek (ang. sea of gates), są zbudowane z bloków z bramkami logicznymi przedzielonych połączeniami programowalnymi. Bloki z biegiem czasu stawały się coraz bardziej złożone, co umożliwiło zmniejszenie opóźnień układów wynikających z dużej liczby połączeń między blokami. Z tego samego powodu udoskonalono także polączenia między komórkami (np. poprzez routing).
Jakiej kategorii układów programowalnych dotyczy podział na: coarse grade, medium grade i fine grade. Scharakteryzuj krótko cechy wyżej wymienionych rodzajów układów.
Podział dotyczy architektur układów FPGA, a poszczególne kategorie przedstawiają się następująco: fine grade (drobne uziarnienie) :
Bloki połączone ze sobą mają bardzo prostą budowę, składają się z prostego układu programowalnego (2-3 wejścia) i przerzutnika. Mimo elastyczności rozwiązania nadal występowują w układach o takiej architekturze duże opóźnienia. medium grade (średnie uziarnienie):
Bloki o bardziej złożonej budowie niż fine grade opisują układy o większej ziarnistości. Wykorzystuje się w nich multipleksery, czyli połączenia aktywne, co zmniejszyło opóźnienia. coarse grade (grube uziarnienie):
Bloki o największej złożoności, charakteryzujące się bardzo dużą liczbę wejść (np. 32). Budowa wewnętrzna bloku jest skomplikowana, za to opóźnienia występujące w układach je wykorzystujących zmalały.
Jaki rodzaj pamięci konfiguracji dominuje w układach CPLD, a jaki w FPGA.
W układach CPLD dominują pamięci nieulotne z możliwością elektrycznego kasowania EEPROM (E2PROM) oraz FLASH.
W układach FPGA dominuje pamięć ulotna wymagająca każdorazowego programowania po ponownym włączeniu zasilania - static RAM - SRAM.
Wymień rodzaje pamięci konfiguracji – podaj ich wady i zalety.
Rodzaje pamięci konfiguracji:
PROM - pamięć programowalna z możliwością pojedynczego zaprogramowania przepaleniem połączeń lub maskowaniem.
Zalety:
działanie od razu po włączeniu,
Wady:
brak możliwości reprogramowalności.
W pamięci PROM ustawienie bitu (połączenia z tranzystorem) można zrealizować za pomocą technologii:
fuse (bezpiecznik/rozłączenie) - występują połączenia bramki ze wszystkimi sygnałami w układzie, te które nie są wykorzystane zostają przepalone i w efekcie pozostałe ścieżki decydują o pracy układu.
Zalety:
łatwość w realizacji konstrukcyjnej we wszystkich dostępnych technologiach.
anti-fuse (anty-bezpiecznik/zwarcie) - żaden sygnał nie jest połączony z bramką, połączenia z tymi sygnałami, które mają być wykorzystane zostają wygenerowane (zwarte) i one decydują o pracy układu.
Zalety:
niewielka powierzchnia, opór i pojemność elektryczna połączenia.
EPROM - pamięć programowalna z możliwością kasowania zapisanej konfiguracji poprzez wystawienie na działanie światła UV.
Zalety:
możliwość reprogramowalności.
Wady:
brak możliwości wygodnej (elektrycznej) reprogramowalności,
duża rezystancja i pojemność połączeń
EEPROM/FLASH - pamięć programowalna z możliwością elektrycznego (programowalnego) kasowania zawartości (wykorzystując zjawisko tunelowe).
Zalety:
elektryczne kasowanie zawartości,
działanie od razu po włączeniu.
Wady: średnia powierzchnia połączeń, duża rezystancja i pojemność połączeń, programowanie 3 razy wolniejsze niż SRAM, duże zużycie energii elektrycznej.
SRAM - w połączeniu z tranzystorem umożliwia utworzenie połączenia programowalnego.
Zalety:
szybkość programowania,
umożliwienie łatwego prototypowania,
Wady:
duża powierzchnia, rezystancja i pojemność połączeń,
wymaga programowania z pliku konfiguracyjnego podczas każdorazowego włączania zasilania (ulotność).
W układzie Spartan3E w jednej komórce LUT można zrealizować pewne funkcje logiki. Podaj ile maksymalnie zmiennych wejściowych może mieć dowolna funkcja logiczna zrealizowana w jednej komórce LUT, ile maksymalnie zmiennych wejściowych może mieć dowolna funkcja logiczna zrealizowana za pomocą jednego Slice oraz ile maksymalnie wejść mogą mieć pewne funkcje logiczne wykonane w oparciu o jeden Slice.
Dowolna funkcja logiczna oparta o jeden:
LUT - maksymalnie 4 zmienne wejściowe,
Slice - maksymalnie 5 zmiennych wejściowych.
Pewne funkcje logiczne oparte o jeden Slice - maksymalnie 9 zmiennych wejściowych.
Wymień parametry końcówki I/O układu Spartan3E które można konfigurować.
standard napięciowy TTL/CMOS (kilka różnych odmian) - określa poziomy napięć stanów wysokich i niskich dla komórek wejściowych jak i wyjściowych. Trzeba na to zwracać uwagę gdyż nie wszystkie standardy można łączyć ze sobą (np. wyjść TTL z wejściami niskonapięciowymi CMOS). Złe dobranie standardów może spowodować uszkodzenie układów albo problem z identyfikacji stanu logicznego (gdy np. poziom stanu jednego standardu trafia akurat w zakres napięć nieustalonych drugiego standardu).
programowalny max prąd wyjściowy
programowalny pull-up/pull-down określa do jakiego potencjału ma być dołączony pin wejściowy.
„clamping” - do pad’u mogą być dołączone diody stanowiące zabezpieczający ogranicznik napięcia (3.3V), stosowane do aplikacji PCI. Włączenie tych diod i połączenie układu do jakiegoś wyjścia TTL (+5V) może spowodować przepływ znacznego prądu przez diody i uszkodzić układ. Diody te są domyślnie wyłączone.
Wymień tryby konfiguracji układu Spartan3E.
Master Serial, SPI, BPI, Slave Parallel, Slave serial, JTAG,
Opisz właściwości i zastosowanie bloku „weak-keeper” w układzie Spartan3E.
Krócej* - weak-keeper utrzymuje stan magistrali na ostatnim stanie użytecznym. Stosuje się go w celu zapobiegania zjawisku fluktuacji napięcia. Zjawisko to jest bardzo niekorzystne z racji na ciągłą obserwację tego napięcia przez bufory wejściowe i kiedy występują pośrednie napięcia (na granicy fizycznej realizacji ‘0’ i ‘1’) zwiększa się przepływ prądu i rośnie pobór mocy.
*Dłużej weak-keeper (bus-keeper latch) - jest rodzajem słabego zatrzasku, który działa jak inteligentny pull-up i pull-down jednocześnie, jeżeli ostatnio wystawiono ‘0’ to weak-keeper będzie się zachowywał jak pulldown, a jeżeli ‘1’ to pull up. Ma zastosowanie, kiedy z równym prawdopodobieństwem na magistralę wystawiamy oba sygnały.
Wyjaśnij pojęcie „local routing”.
Pojęcie oznacza połączenia w architekturze FPGA, pomiędzy sąsiednimi komórkami, bez wykorzystania uniwersalnego układu łączącego. Sąsiednie (czasem także na skos) komórki widzą się jakby bezpośrednio. Jest to także technika połączeń wewnątrz komórki - z wykorzystaniem multiplekserów ( dzięki temu szybkie wewnętrzne połączenia).
Wyjaśnij pojęcie „general purpose routing”.
Pojęcie oznacza uniwersalne połączenia w architekturze FPGA, umożliwiające sygnałowi dotarcie do każdej komórki układu. Można taki routing podzielić na kilka warstw:
o krótkim dystansie - od 2 do kilku bloków
o średnim dystansie - kilka - kilkanaście
na cały układ scalony - np. linia pionowa/pozioma przez cały ukła
Wyjaśnij pojęcie „global routing”.
Pojęcie oznacza połączenia w architekturze FPGA, dla sygnałów, które muszą być rozprowadzone po całym systemie m. in. sygnały zegara, resetu, trzeciego stanu logicznego I/O. Takie połączenie musi zapewnić odpowiednie własności sygnałów, na przykład dla zegara mały skos - do wszystkich bloków sygnał dociera w tym samym czasie.
Wyjaśnij pojęcie „dedicated routing”.
Pojęcie oznacza połączenia w architekturze FPGA, dedykowane dla pewnej funkcjonalności np. budowy sumatorów - sygnał carry musi być bardzo szybko przekazany do następnego bloku - realizuje się takie połączenie w sposób bezpośredni między blokami sumatora - nie ma tam żadnych kluczy.
Wyjaśnij pojęcie „clock skew” oraz podaj sposoby jego zmniejszania lub kompensacji.
Clock skew występuje kiedy z jednego źródła sygnału zegarowego, sygnał dociera do różnych bloków/komponentów w różnym czasie. Kompensację tego zjawiska można uzyskać wykorzystując drzewo dystrybucji sygnału zegarowego wewnątrz chipu, które zajmuje się dystrybucją zegara o określonej fazie do przerzutników stosując odpowiednie opóźnienia. Wykorzystuje się także układ Clock Managera, który sprawia, że sygnał wejściowy jest zgodny z fazą sygnału dystrybuowanego przez drzewo opisane powyżej.
Wyjaśnij pojęcie Delay Locked Loop, narysuj schemat takiej pętli i podaj zastosowania.
Jest to pętla, która dąży do tego, aby opóźnienie sygnału w bloku kwadratowym na rysunku poniżej było takie, aby różnica w fazie wchodzących sygnałów była równa 0ns. DLL Jest stosowana np. w układach FPGA w Device Clock Managerze, w celu zapewnienia, że sygnał zegarowy w sieci dystrybucji będzie miał dokładnie taką fazę jak sygnał zegarowy na pinie wejściowym.
Jakie sygnały generuje układ DCM w układzie Spartan3E. Jakie są wymagania odnośnie parametrów sygnału zegarowego.
Sygnały przesunięte w fazie o odpowiednio 0, 90, 180, 270 stopni, ewentualnie pomnożone/podzielone przez 2 albo programowalną wartość: CLK0, CLK90, CLK180, CLK270 CLK2X, CLK2X180 CLKFX, CLKFX180 CLKDV
Informacja czy nastąpiła synchronizacja w pętli DLL:
LOCKED
Główne wymagania odnośnie parametrów wyjściowego sygnału zegarowego względem wejściowego to:
- równy współczynnik wypełnienia sygnału zegarowego (czas trwania ‘1’ i ‘0’ wynosi po 50% cyklu),
- redukcja skosu zegara/synchronizacja faz sygnałów/(minimalizacja różnicy w fazie sygnałów),
- dostęp (osobne sygnały) do przesunięcia zegara w fazie,
- dostęp (osobne sygnały) do zsyntezowanego sygnału zegarowego o częstotliwości zgodnej z zaprogramowanymi wartościami dzielnika i mnożnika.