EGZAMIM 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łównym komponentem jest matryca bramek odpowiedzialna za przetwarzanie sygnałów. W tej kategori układów zawierają się takie podkategorie jak: PROM, PLA, PAL, GAL.
CPLD - Complex Programmable Logic Devices:
Są bardziej złożoną wersją 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ówki I/O układu mają 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 udoskonalano także połą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ć.
Konfigurowalne parametry statyczne końcówek Spartan3E:
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.
Tryby: Master Serial, SPI, BPI, Slave Parallel, Slave serial, JTAG,
Opisz właściwości i zastosowanie bloku „weak-keeper” w układzie Spartan3E.
Właściwości i zastosowanie:
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ład
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 (źródło).
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.