Pytania do kolokwium z Inżynierii Systemó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 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.
  6. Wymień parametry końcówki I/O układu Spartan3E które można konfigurować.
  7. Wymień tryby konfiguracji układu Spartan3E.
  8. Opisz właściwości i zastosowanie bloku „week-keeper” w układzie Spartan3E.
  9. Wyjaśnij pojęcie „local routing”.
  10. Wyjaśnij pojęcie „general purpose routing”.
  11. Wyjaśnij pojęcie „global routing”.
  12. Wyjaśnij pojęcie „dedicated routing”.
  13. Wyjaśnij pojęcie „clock skew” oraz podaj sposoby jego zmniejszania lub kompensacji.
  14. Wyjaśnij pojęcie Delay Locked Loop, narysuj schemat takiej pętli i podaj zastosowania.
  15. Jakie sygnały generuje układ DCM w układzie Spartan3E. Jakie są wymagania odnośnie parametrów sygnału zegarowego.
  16. Wymień i scharakteryzuj tryby zapisu jednoportowych pamięci Block-RAM w układach Spartan3E.
  17. Wymień możliwe zastosowania jednoportowych pamięci Block-RAM w układach Spartan3E.
  18. Wymień właściwości i zastosowania 2-portowych pamięci Block-RAM w układach Spartan3E.
  19. Wymień funkcje które może w komórce CLB układu Spartan3E spełniać blok LUT.
  20. Wymień różnice w budowie układów PLA i PAL.
  21. Wymień i krótko scharakteryzuj poziomy abstrakcji stosowane w opisie sprzętu.
  22. Wymień metody opisu układów cyfrowych.
  23. Co to jest podzbiór syntezowalny języka VHDL, podaj przykład instrukcji niesyntezowalnej.
  24. Co to jest funkcja rezolucji.
  25. Podaj sposoby unikania stanów zabronionych w maszynach stanów.
  26. Co to jest metastabilność przerzutników.
  27. Wymień i krótko scharakteryzuj trzy sposoby syntezy z wykorzystaniem bloków funkcjonalnych w układach FPGA.
  28. Podaj właściwości zmiennych w procesach.
  29. Podaj właściwości zmiennych w funkcjach.
  30. Wymień zasadnicze różnice pomiędzy zmiennymi a sygnałami.
  31. Omów sposoby parametryzacji modułów projektowych.
  32. Co to jest „unconstrained vector”, podaj zastosowania.
  33. Co to są cykle delta, podaj przykład.
  34. Jaka musi być liczba iteracji syntezowalnej pętli ?
  35. Do czego służy instrukcja „generate” ?


  36. 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;

  37. 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;

  38. 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;