Pytania do kolokwium z Inżynierii Układów Programowalnych:

 

 

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

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

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

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

5.        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 i jakich niezależnych dowolnych funkcji można zrealizować za pomocą jednego Slice oraz ile maksymalnie wejść mogą mieć pewne funkcje logiczne wykonane w oparciu o jeden Slice.

6.        Wymień statyczne parametry końcówki I/O układu Spartan3E które można konfigurować i podaj znaczenie tych parametrów w realizacjach układowych.

7.        Wymień dynamiczne parametry końcówki I/O układu Spartan3E które można konfigurować i podaj znaczenie tych parametrów w realizacjach układowych.

8.        Wymień tryby konfiguracji układu Spartan3E.

9.        Narysuj schemat układu „week-keeper” i podaj jego zastosowanie. Gdzie występuje ten układ w układzie Spartan3E.

10.     Wyjaśnij pojęcie „local routing”.

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

12.     Wyjaśnij pojęcie „global routing”.

13.     Wyjaśnij pojęcie „dedicated routing”.

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

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

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

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

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

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

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

21.     Który z rodzajów funkcji logicznych najtrudniej jest zrealizować z wykorzystaniem klasycznego układu SPLD i dlaczego: 
f1(a,b,c,d,e,f,g,h) = a and b and c and d and e and f and g and h
f2(a,b,c,d,e,f,g,h) = a or b or c or d or e or f or g or h
f3(a,b,c,d,e,f,g,h) = a xor b xor c xor d xor e xor f xor g xor h

22.     Wymień podstawowe cechy układów PLA i PAL.

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

24.     Wymień metody opisu układów cyfrowych.

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

26.     Co to jest funkcja rezolucji.

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

28.     Co to jest metastabilność przerzutników.

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

30.     Podaj właściwości zmiennych w procesach.

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

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

33.     Omów sposoby parametryzacji modułów projektowych.

34.     Co to jest „unconstrained vector”, podaj zastosowania.

35.     Jaka musi być liczba iteracji syntezowalnej pętli ?

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


 

37.     Napisz proces synchroniczny w języku VHDL realizujący syntezowalny mnożnik n-bitowy (na liczbach binarnych bez znaku). Proszę operować na sygnałach typu std_logic i std_logic_vector. Proces powinien rozpoczynać proces mnożenia z chwilą wystąpienia sygnału mul_start. W trakcie trwania mnożenia proces wystawia sygnał mul_busy. Mnożna i mnożnik podane na sygnały: mul_in_1 oraz mul_in_2, a wynik powinien być podany na rejestr mul_result (2n bitowy). Podać definicje używanych sygnałów.

mnożnik: process (clk, rst)
.....
end process;

 

38.     Napisz proces synchroniczny w języku VHDL realizujący syntezowalny n-bitowy licznik Johnsona. Proszę operować na sygnałach typu std_logic i std_logic_vector. Podać definicje używanych sygnałów. Zabezpieczyć licznik przed blokadą w stanie (lub stanach) zabronionych.

johnson: process (clk, rst)
.....
end process;

 

39.     Napisz proces synchroniczny w języku VHDL realizujący syntezowalną maszynę stanów sterującą pracą wycieraczek samochodowych. Maszyna dysponuje sygnałami wejściowymi: wipe_on (oznacza włączenie wycieraczek),  home_pos (pozycja spoczynkowa wycieraczek),  end_pos (pozycja końcowa wycieraczek). Maszyna stanów generuje sygnały wyjściowe:  motor_on (włącza silnik wycieraczek),  motor_rev (przełącza kierunek obrotów na wsteczny).  Można pominąć filtrujące przerzutniki D.  Podać definicje używanych sygnałów.

wiper: process (clk, rst)
.....
end process;

 

40.     Napisz proces synchroniczny w języku VHDL realizujący syntezowalny generator sygnału PWM. Proszę operować na sygnałach typu std_logic i std_logic_vector. Podać definicje używanych sygnałów. Wejściowym sygnałem jest n-bitowy wektor definiujący współczynnik wypełnienia. Wyjściowym sygnałem jest jednobitowy sygnał PWM. Zabezpieczyć generator przed stanami przejściowymi mogącymi wystąpić w momencie zmiany wejściowego wektora programującego wypełnienie.

pwm: process (clk, rst)
.....
end process;