Wykład jest wprowadzeniem do projektowania układów cyfrowych przy użyciu
języka opisu sprzętu (System)Verilog oraz ich implementacji na układach FPGA. W ramach
zajęć student nauczy się również metod testowania sprzętu oraz zapozna się z
podstawami formalnej weryfikacji układów cyfrowych.
**Wymagania:**
Wysoce wskazana jest znajomość zasad projektowania układów cyfrowych (np. przez zaliczenie przedmiotu "Logika cyfrowa"), mile
widziana jest znajomość języka C i idąca za tym umiejętność programowania
niskopoziomowego.
**Program:**
1. Verilog jako język modelowania sprzętu
2. Symulacja sprzętu przy użyciu programów Icarus Verilog, Verilator i ModelSim
3. Testowanie modeli sprzętu przy użyciu języka Verilog
4. Synteza sprzętu
5. Budowa układów FPGA
6. Synteza sprzętu przy użyciu programu Yosys
7. Synteza sprzętu na FPGA Intela przy użyciu programu Quartus
8. Elementy wbudowane na FPGA: multiplikatory, pamięci, PLL
9. Wykorzystywanie tzw. rdzeni IP (modułów sprzętowych)
10. Łączenie modułów sprzętowych przy użyciu Intel Platform Designer (Qsys), magistrala Avalon
11. Magistrala AMBA AXI
12. Język TCL
13. Łączenie FPGA z sprzętowym procesorem
14. Języki opisu sprzętu wysokiego poziomu: Chisel i Clash
15. Formalna weryfikacja sprzętu przy użyciu programów Yosys i SymbiYosys
**Zalecana literatura:**
Douglas J.Smith, HDL Chip Design: A Practical Guide for Designing,
Synthesizing & Simulating ASICs & FPGAs Using VHDL or Verilog
Samir Palnitkar, Verilog HDL (2nd Edition)
J. Bhasker, A Verilog HDL Primer, Third Edition
Donald Thomas, Logic Design and Verification Using SystemVerilog (Revised)