FPGA Programming 1100-6`FPGA
The objective of this course is to teach digital system design using SystemVerilog and its implementation on FPGA devices. The course covers the use of IP cores and the integration of digital circuits with microprocessor systems based on both soft and hard processors. Classes utilize a Linux environment and involve programming in Python, C, and C++.
Registration: Students are required to register for the course via the USOS system, subject to the enrollment limit.
Mode
Prerequisites (description)
Course coordinators
Learning outcomes
Learning Outcomes
Knowledge:
The student knows and understands how to describe digital systems in **SystemVerilog**, and how to write C and C++ programs that interface with systems defined in SystemVerilog.
Skills:
The student is able to:
- Create a system description in **SystemVerilog**.
- Write C and C++ programs that interact with the designed system.
- Implement the prepared solution on a **physical FPGA device**.
- Evaluate the system's operational correctness by running a set of simulations.
Social Competencies:
The student is prepared to contribute to system design, for example, as a member of a research team.
Assessment criteria
The final grade will be awarded based on the Project Report.
Assessment Criteria
The evaluation will focus on the following elements:
- Design of the system using **SystemVerilog**.
- Hierarchical description of the system (division into sub-modules/subsystems).
- Utilization of ready-made library components (**IP cores**).
- Use of additional on-chip resources embedded in the FPGA (e.g., embedded memory, clock generators, arithmetic units).
- Utilization of a processor and the preparation of the corresponding control program.
Bibliography
Mark Zwoliński, „Digital System Design with System Verilog”, Prentice-Hall, 2010
James K. Peckol, „Embedded Systems: A Contemporary Design Tool”, Wiley, 2008
Additional information
Additional information (registration calendar, class conductors, localization and schedules of classes), might be available in the USOSweb system: