Course detail

Programmable Logic Devices

FEKT-MPC-PLDAcad. year: 2025/2026

Students get more detailed knowledge in the area of digital circuits design, especially with respect to their implementation into FPGAs (or ASICs). Students get overview of current technology of these integrated circuits, their off-the-shelf architectures, principles of design and application of basic digital subsystems (counters, finite state machines, memory structures). During the PC lectures students get familiar with modern system for FPGA configuration. This includes description of the digital system (using VHDL source codes, schematic, IP cores), its implementation and verification using simulator. After passing the course students are able to design and implement simple digital system into an FPGA (using VHDL language).

Language of instruction

Czech

Number of ECTS credits

5

Mode of study

Not applicable.

Entry knowledge

Students are expected to know basic of impulse and digital technology: the Boolean algebra, Karnaugh maps, truth tables, function of basic gates and flip-flops (registers), principle and effect of signal propagation through active and passive transmission elements.

Rules for evaluation and completion of the course

Students are evaluated continuously during the semester for active work in computer exercises (36 b). At least 50% of the points in the computer exercises are required for credit. The compulsory final exam consists of a written (19 pts), a practical (30 pts) and an oral part (15 pts). In order to pass the exam, you must score at least 50% of the points in each scored activity. Computer exercises are compulsory; absences must be made up by agreement with the instructor. 

Aims

Lectures are aimed to teach students the basic principles of FPGAs, while they will be able not only to configure (program) them, but also select proper device and implement it into a system.
The graduate is able to: (a) describe simple digital system using VHDL; (b) verify simple digital system using VHDL; (c) choose type of finite state machine and give reasons for the choice; (d) design and implement a finite state machine using VHDL; (e) compare different architectures of PLDs and choose a proper one for particular application; (f) specify timing requirements for a design and verify that they are met after implementation; (g) implement simple IP cores like memories and simple DSP blocks (FIR filtres); (h) implement simple microcontroller into FPGA, program it and use in target application; (i) state requirements on FPGA power supply system; (j) analyze and prevent/solve basic signal integrity issues.

Study aids

During the semester, the current study materials (especially the handouts for PC exercises and lecture presentations) will be published in E-learning, where students will also have access to recorded lectures and exercises (audio + video), also from previous years. 

Prerequisites and corequisites

Not applicable.

Basic literature

ASHENDEN, Peter, Gregory PETERSON a Darrell TEEGARDEN. Effective Coding with VHDL: Principles and Best Practice. Cambridge: MIT Press, 2020. 400 s. ISBN 978-0262042642. (CS)
MAXFIELD, Clive "Max". The Design Warrior's Guide to FPGAs: Devices, Tools, and Flows. Amsterdam: Newnes, 2004. 486 s. ISBN 978-0750676045. (EN)
PINKER, Jiří a Martin POUPA. Číslicové systémy a jazyk VHDL. Praha: BEN - technická literatura, 2006. 464 s. ISBN 80-7300-198-5. (CS)

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme MPC-NCP Master's 1 year of study, summer semester, compulsory-optional

  • Programme MPC-AUD Master's

    specialization AUDM-TECH , 1 year of study, summer semester, compulsory-optional
    specialization AUDM-ZVUK , 1 year of study, summer semester, compulsory-optional

  • Programme MPC-EKT Master's 1 year of study, summer semester, compulsory-optional
  • Programme MPC-IBE Master's 2 year of study, summer semester, compulsory-optional
  • Programme MPC-MEL Master's 1 year of study, summer semester, compulsory-optional
  • Programme MPC-TIT Master's 0 year of study, summer semester, elective

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

1. Introductiona to digital integrated circuits, history and development of CPLDs and FPGAs. 2. Introduction to VHDL programming language. 3. The basics of digital systems: gates, flip-flops, shift registers, counters. 4. Theory of finite state machines, Moor and Mealy state machines. 5. Practical design and application of finite state machines, microsequencers. 6. Basis architecture of FPGAs and CPLDs: logic cells, programmable interconnect, I/O cells. 7. Timing of digital circuits, metastability, methods for increasing clock frequency. 8. FPGA clock domains, clock enabling, clock management, synchronous and asynchronous reset. 9. Memory structures in FPGAs, use of RAM, ROM and FIFO. 10. Digital signal processing in FPGAs, dedicated blocks for DSP acceleration. 11. Advanced FPGA structural features, HARD and SOFT IP cores, implementation of basic IP cores. 12. Processors in FPGA, SoC, FPGA manufacturing technology, FPGA configuration. 13. Signal integrity, PCB and power design for FPGA, radiation effects.

Exercise in computer lab

39 hod., compulsory

Teacher / Lecturer

Syllabus

1. Introduction to VHDL and Vivado design system, constraints. 2. Simulation, verification, tetbench 3. Basic commands, implementation of combinational functions (decoders). 4. Using hierarchical description, structural description. 5. Implementation of sequential systems (counters). 6. Finite state machines, description in VHDL. 7. Digital signal processing, FIR filter. 8. LFSR counter, timing parameters of structures, FPGA consumption. 9. Using IP cores, timing closure. 10. Use of integrated logic analyzer. 11. Processors in FPGA - PicoBlaze, basic principle of use. 12. Processors in FPGA - PicoBlaze, custom peripherals. 13. Processors in FPGA - MicroBlaze.