Zaliczenie wykładu 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ł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).

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

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

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ła

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. 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:
WRITE_FIRST - oprócz zapisu, w tym samym cyklu zegarowym, obecna wartość zostaje przekierowana na wyjście,
READ_FIRST - oprócz zapisu, poprzednia zawartość pamięci zostaje wystawiona na wyjście,
NO_CHANGE - oprócz zapisu, nic więcej.

17
Q

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

A

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,

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

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:

System - behawioralnie opisywany w języku naturalnym - strukturalnie np. jednostka centralna,

Układ scalony - behawioralnie zestaw algorytmów - strukturalnie np. mikroprocesor,

Rejestry - behawioralnie przepływ danych - strukturalnie np. rejestry

Bramki - behawioralnie równania logiczne - strukturalnie funktory logiczne: and, or, xor,

Układ elektr. - behawioralnie równania różniczkowe - strukturalnie np. tranzystory,

Layout, krzem - behawioralnie fizyka półprzewodników - strukturalnie geometria struktur

22
Q

Wymień metody opisu układów cyfrowych.

A

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

W 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

Primitives - w syntezie automatycznie rozpoznawane są typowe bloki funkcjonalne i stosowane są znane przepisy na ich realizację,

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

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

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

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

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

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

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, x) is
begin
		x <= a and b;
		y <= x;
end; 

Zakładając, że zmianie ulegnie sygnał a, po wykryciu tej zmiany w zwykłym cyklu ulegnie zmianie sygnał x, co spowoduje wykonanie cyklu delta, w którym proces aktywuje się ponownie i przypiszemy sygnał x do sygnału y.

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

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