Pytania do kolokwium z Inżynierii Systemów Programowalnych:
 
 - Wymień
     trzy kategorie układów programowalnych (podział pod względem złożoności
     architektury) i scharakteryzuj krótko każdą z nich.
- 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.
- Jaki
     rodzaj pamięci konfiguracji dominuje w układach CPLD, a jaki w FPGA.
- Wymień
     rodzaje pamięci konfiguracji – podaj ich wady i zalety.
- 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.
- Wymień
     parametry końcówki I/O układu Spartan3E które można konfigurować.
- Wymień
     tryby konfiguracji układu Spartan3E.
- Opisz
     właściwości i zastosowanie bloku „week-keeper” w układzie Spartan3E.
- Wyjaśnij
     pojęcie „local routing”.
- Wyjaśnij
     pojęcie „general purpose routing”.
- Wyjaśnij
     pojęcie „global routing”.
- Wyjaśnij
     pojęcie „dedicated routing”.
- Wyjaśnij
     pojęcie „clock skew” oraz podaj sposoby jego zmniejszania lub kompensacji.
- Wyjaśnij
     pojęcie Delay Locked Loop, narysuj schemat takiej pętli i podaj
     zastosowania.
- Jakie
     sygnały generuje układ DCM w układzie Spartan3E. Jakie są wymagania
     odnośnie parametrów sygnału zegarowego.
- Wymień
     i scharakteryzuj tryby zapisu jednoportowych pamięci Block-RAM w układach
     Spartan3E.
- Wymień
     możliwe zastosowania jednoportowych pamięci Block-RAM w układach
     Spartan3E.
- Wymień
     właściwości i zastosowania 2-portowych pamięci Block-RAM w układach
     Spartan3E.
- Wymień
     funkcje które może w komórce CLB układu Spartan3E spełniać blok LUT.
- Wymień
     różnice w budowie układów PLA i PAL.
- Wymień
     i krótko scharakteryzuj poziomy abstrakcji stosowane w opisie sprzętu.
- Wymień
     metody opisu układów cyfrowych.
- Co to
     jest podzbiór syntezowalny języka VHDL, podaj przykład instrukcji
     niesyntezowalnej.
- Co to
     jest funkcja rezolucji.
- Podaj
     sposoby unikania stanów zabronionych w maszynach stanów.
- Co to
     jest metastabilność przerzutników.
- Wymień
     i krótko scharakteryzuj trzy sposoby syntezy z wykorzystaniem bloków
     funkcjonalnych w układach FPGA.
- Podaj
     właściwości zmiennych w procesach.
- Podaj
     właściwości zmiennych w funkcjach.
- Wymień
     zasadnicze różnice pomiędzy zmiennymi a sygnałami.
- Omów
     sposoby parametryzacji modułów projektowych.
- Co to
     jest „unconstrained vector”, podaj zastosowania.
- Co to
     są cykle delta, podaj przykład.
- Jaka
     musi być liczba iteracji syntezowalnej pętli ?
- Do
     czego służy instrukcja „generate” ?
 
 
 
- Napisz
     proces synchroniczny w języku VHDL realizujący syntezowalny mnożnik
     n-bitowy (na liczbach binarnych bez znaku). Nie wykorzystujemy operatora *
     Proces powinien rozpoczynać proces mnożenia z chwilą wystąpienia sygnału
     mul_start (typu std_logic). W trakcie trwania mnożenia proces wystawia
     sygnał mul_busy (typu std_logic). Mnożna i mnożnik podane na sygnały:
     mul_in_1 oraz mul_in_2 (są to sygnały typu std_logic_vector), a wynik
     powinien być podany na rejestr mul_result (2n bitowy – również
     std_logic_vector). Podać definicje używanych sygnałów.
 
 mnożnik: process (clk, rst)
 .....
 end process;
 
 
- 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;
 
 
- 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). Proszę pamiętać o synchronizujących
     przerzutnikach D dla sygnałów wejściowych z czujników.  Podać definicje używanych sygnałów.
 wiper: process (clk, rst)
 .....
 end process;