EGZAMIM Flashcards

1
Q

Wymień trzy kategorie układów programowalnych (podział pod względem złożoności architektury) i scharakteryzuj krótko każdą z nich?

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

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.

A

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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Jaki rodzaj pamięci konfiguracji dominuje w układach CPLD, a jaki w FPGA.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wymień rodzaje pamięci konfiguracji – podaj ich wady i zalety.

A

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ść).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wymień parametry końcówki I/O układu Spartan3E które można konfigurować.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wymień tryby konfiguracji układu Spartan3E.

A
Tryby:
Master Serial,
SPI,
BPI,
Slave Parallel,
Slave serial,
JTAG,
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Opisz właściwości i zastosowanie bloku „weak-keeper” w układzie Spartan3E.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wyjaśnij pojęcie „local routing”

A

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).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Wyjaśnij pojęcie „general purpose routing”.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Wyjaśnij pojęcie „global routing”.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wyjaśnij pojęcie „dedicated routing”.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Wyjaśnij pojęcie „clock skew” oraz podaj sposoby jego zmniejszania lub
kompensacji.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wyjaśnij pojęcie Delay Locked Loop, narysuj schemat takiej pętli i podaj
zastosowania

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jakie sygnały generuje układ DCM w układzie Spartan3E. Jakie są
wymagania odnośnie parametrów sygnału zegarowego.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Wymień i scharakteryzuj tryby zapisu jednoportowych pamięci Block-RAM w
układach Spartan3E.

A

Trzy tryby zapisu - w każdym wartość zostaje zapisana do pamięci:
a. WRITE_FIRST - oprócz zapisu, w tym samym cyklu zegarowym,
obecna wartość zostaje przekierowana na wyjście,
b. READ_FIRST - oprócz zapisu, poprzednia zawartość pamięci zostaje
wystawiona na wyjście,
c. NO_CHANGE - oprócz zapisu, nic więcej

17
Q

Wymień możliwe zastosowania jednoportowych pamięci Block-RAM w
układach Spartan3E.

A
Zastosowania:
- Duże pamięci synchroniczne SRAM jednoportowe z możliwością
inicjacji zawartości podczas konfiguracji,
- Duże pamięci ROM,
- Synchroniczne i asynchroniczne FIFO,
- Pamięć typu LIFO (stos) do procesorów,
- Rejestry przesuwne,
- Złożone maszyny stanów,
- Szybkie liczniki,
- Bufory cyrkulacyjne,
- Linie opóźniające (np. do FIR).
18
Q

Wymień właściwości i zastosowania 2-portowych pamięci Block-RAM w
układach Spartan3E.

A

Właściwości:
- możliwe jednoczesny(e) zapis(y)/odczyt(y) w tym samym czasie (cyklu
zegara) - współbieżny wielodostęp
- Z powodu jednoczesnego dostępu mogą wystąpić kolizje,
- każdy z portów posiada osobny zegar - może więc pełnić rolę
interfejsu do pamięci RAM z różnych domen zegarowych (układów
taktowanych zegarami o różnych częstotliwościach).
Zastosowania:
- Duże pamięci synchroniczne SRAM dwuportowe z możliwością
inicjacji zawartości podczas konfiguracji,
- Duże pamięci ROM,
- Synchroniczne i asynchroniczne FIFO,
- Pamięć typu LIFO (stos) do procesorów,
- Szybka implementacja złożonych funkcji logicznych,
- Rejestry przesuwne,
- Złożone maszyny stanów,
- Szybkie liczniki,
- Bufory cyrkulacyjne,
- Linie opóźniające (np. do FIR).

19
Q

Wymień funkcje które może w komórce CLB układu Spartan3E spełniać blok
LUT.

A

Funkcje LUT w CLB:
- układ logiczny z nawet 9 wejściami,
- jednoportowy blok pamięci RAM adresowany 4 bitami
- dynamiczny 16-bitowy rejestr przesuwny z szeregowym I/O, bez
resetu - tylko z zegarem,
można o tym wspomnieć, ale nie jest to odpowiedź na pytanie:
- częściowo-dual (tylko odczyt) blok pamięci RAM adresowany 4
bitami w przypadku połączenia dwóch bloków LUT,
- jednoportowy blok pamięci RAM adresowany 5 bitami w przypadku
połączenia dwóch bloków LUT za pomocą F5MUX),

20
Q

Wymień różnice w budowie układów PLA i PAL

A

W układach PLA (Programmable Logic Array) występują 2 matryce
programowalne - matryca AND do tworzenia mintermów i matryca OR do ich
sumowania. Z racji na programowalność obu matryc i wynikające z tego
opóźnienia powstały układy PAL (Programmable Array Logic). W tych
układach programowalna jest jedynie matryca AND, to ta do tworzenia
mintermów, natomiast w matrycy OR połączenia są przypisane na stałe -
pozwoliło to zmniejszyć opóźnienia.

21
Q

Wymień i krótko scharakteryzuj poziomy abstrakcji stosowane w opisie
sprzętu.

A

Poziomy od największego poziomu abstrakcji:
a. System - behawioralnie opisywany w języku naturalnym - strukturalnie
np. jednostka centralna,
b. Układ scalony - behawioralnie zestaw algorytmów - strukturalnie np.
mikroprocesor,
c. Rejestry - behawioralnie przepływ danych - strukturalnie np. rejestry
d. Bramki - behawioralnie równania logiczne - strukturalnie funktory
logiczne: and, or, xor,
e. Układ elektr. - behawioralnie równania różniczkowe - strukturalnie np.
tranzystory,
f. Layout, krzem - behawioralnie fizyka półprzewodników - strukturalnie
geometria struktur

22
Q

Wymień metody opisu układów cyfrowych.

A

Metody opisu układów blokowych:

  • Schemat ideowy,
  • Schemat blokowy,
  • Diagram czasowy,
  • Graf maszyny stanów,
  • Tabela prawdy,
  • Równania logiczne.
23
Q

Co to jest podzbiór syntezowalny języka VHDL, podaj przykład instrukcji
niesyntezowalnej.

A

Język VHDL jest stosowany w 2 głównych celach: syntezy rozwiązań dla
układów elektronicznych oraz symulacji tych układów. Część konstrukcji
języka wykorzystywana jest wyłącznie w przypadku symulacji i nie istnieje
możliwość skompilowania ich do programu wykonywalnego na płytce. Takie
konstrukcje nazywamy niesyntezowalnymi, a przykładem jest instrukcja “wait
for”. Podzbiór syntezowalny jest więc zbiorem (określonym standardem IEEE)
takich instrukcji, które mogą zostać skompilowane do programu
wykonywalnego na fizycznym układzie (np. FPGA).

24
Q

Co to jest funkcja rezolucji.

A

Funkcja rezolucji określa jaka powinna być wartość sygnału, do którego
współbieżnie przypisujemy więcej niż jedną wartość np.:
signal_1 <= signal_2;
signal_1 <= signal_3;
Funkcja rezolucji pozwala na rozwiązanie niesyntezowalności takiego
przypisania oraz na syntezę logiki trójstanowej wewnątrz układu.

25
Q

Podaj sposoby unikania stanów zabronionych w maszynach stanów

A

systemach „mission-critical” można włączyć odpowiednią opcję syntezera
(jeżeli jest dostępna) generującą maszyny stanów zabezpieczone przed
zatrzaśnięciem się w stanie niedozwolonym.
W przypadku braku opcji w syntezerze:
- Użyć maszyny stanów z bezpośrednim kodowaniem stanów i
określić właściwe zachowanie się maszyny dla wszystkich, także
nieużywanych stanów.
- Dodać układ logiczny wykrywający stan niedozwolony.
Ponadto aby uniknąć problemów związanych z asynchronicznym wejściem
należy przesłać sygnał asynchroniczny przez co najmniej jeden
przerzutnik typu D.

26
Q

Co to jest metastabilność przerzutników

A

Zjawisko to polega na pozostawaniu przerzutnika przez pewien czas w
równowadze chwiejnej pomiędzy dwoma stanami stabilnymi.

27
Q

Wymień i krótko scharakteryzuj trzy sposoby syntezy z wykorzystaniem
bloków funkcjonalnych w układach FPGA.

A

Trzy sposoby syntezy:
a. Primitives - w syntezie automatycznie rozpoznawane są typowe bloki
funkcjonalne i stosowane są znane przepisy na ich realizację,
b. Inferred macros - w syntezie rozpoznawane są w kodzie VHDL
odpowiednio opisane komponenty (makra) jako bloki funkcjonalne i
wykorzystywane są gotowe schematy takich bloków dla układu.
Rozpoznawanie wymaga jednak od twórcy kodu świadomości istnienia
takich bloków i stworzenie kodu w VHDL zgodnie z ich konstrukcją.
c. Instantiated macros - Jawnie wykorzystujemy blok funkcjonalny
określając rodzaj modułu, jego konfigurację, oraz połączenia z
sygnałami.

28
Q

Podaj właściwości zmiennych w procesach

A

Zmienne w procesach:
- są widoczne tylko w obrębie procesu dla którego są zdefiniowane,
- zachowują swoją wartość w czasie kiedy proces nie jest używany
(kiedy sygnały z listy czułości nie zmieniają swojego stanu),
- ich zmiana następuje natychmiast po napotkaniu przypisania
zmiennej := w trakcie sekwencyjnego działania procesu,
- do zmiennej można przypisać wartość początkową, która zostanie
przypisana tylko raz (na początku syntezy).

29
Q

Podaj właściwości zmiennych w funkcjach.

A

Zmienne w funkcjach:
- są widoczne tylko w obrębie funkcji dla którego są zdefiniowane,
- ich zmiana następuje natychmiast po napotkaniu przypisania
zmiennej := w trakcie sekwencyjnego działania procesu,
- do zmiennej można przypisać wartość początkową, która zostanie
przypisana przy każdym wywołaniu funkcji,
- nie zachowują swojej wartości w czasie kiedy funkcja nie jest
używana - przy wywołaniu funkcji ustawiane są wartości początkowe.

30
Q

Wymień zasadnicze różnice pomiędzy zmiennymi a sygnałami.

A

Różnice:
- przypisanie wartości do zmiennych jest natychmiastowe i w rezultacie
sekwencyjne, natomiast do sygnałów odbywa się synchronicznie
(np. pod koniec procesu) i w rezultacie współbieżnie.
- w procesach zmienne zachowują swoją wartość kiedy proces nie jest
używany,
- sygnały służą do obsługi wejścia i wyjścia układu,
- sygnały skojarzone są bardziej z fizycznym sprzętem, natomiast
zmienne z abstrakcyjnym przetwarzaniem danych.

31
Q

Omów sposoby parametryzacji modułów projektowych.

A

Istnieją 2 sposoby parametryzacji modułów projektowych:
a. niejawny - parametr podany jest do modułu nie wprost - np. używamy
typu tablicowego unconstrained w którym parametrem będzie długość
podanej na wejście tablicy
b. jawny - parametry, przekazywane do modułu podobnie jak sygnały, są
tylko wejściem do modułu i definiujemy je w osobnym bloku generic.
Parametry mogą mieć typy takie jak sygnały, ale muszą mieć stałą
wartość (np. domyślną).

32
Q

Co to jest „unconstrained vector”, podaj zastosowania.

A

Unconstrained vector jest typem tablicowym, parametr funkcji takiego typu
może być dowolnej długości. Taki mechanizm umożliwia budowanie
uniwersalnych funkcji operujących na tablicach różnych długości. W
momencie syntezy długość będzie znana i możliwe będzie wykonanie funkcji
dla tablicy o konkretnej długości.

33
Q

Co to są cykle delta, podaj przykład.

A

Cykle delta, są to dodatkowe logiczne cykle (w czasie jednego cyklu
fizycznego), które służą do obliczeń pośrednich wartości sygnałów, w
przypadku w którym zmieniamy wewnątrz procedury sygnał będący na liście
czułości. Przykład:
process(a, b

34
Q

Jaka musi być liczba iteracji syntezowalnej pętli ?

A

Syntezowalna pętla musi mieć ograniczoną liczbę iteracji (znaną/stałą w
momencie syntezy).

35
Q

Do czego służy instrukcja „generate” ?

A

Instrukcja służy do automatycznego podłączenia komponentów. W opisie
bardziej formalnym oznacza to, że służy do automatycznej generacji struktur
regularnych, tworzonych na bazie struktury wzorcowej (fizyczny efekt to
powielenie podukładów wzorcowych).