Course detail

Programmable and Logic Devices

FEKT-GPLDAcad. year: 2019/2020

Students get more detailed knowledge in the area of digital circuits design, especially with respect to their implementation into PLDs (FPGAs, CPLDs) and 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).

Learning outcomes of the course unit

The graduate is able to: (1) describe simple digital system using VHDL, (2) verify simple digital system using VHDL, (3) choose type of finite state machine and give reasons for the choice, (4) design and implement a finite state machine using VHDL, (5) compare different architectures of PLDs and choose a proper one for particular application, (6) specify timing requirements for a design and verify that they are met after implementation, (7) implement simple IP cores like memories and simple DSP blocks (FIR filtres), (8) implement simple microcontroller into FPGA, program it and use in target application, (9) state requirements on FPGA power supply system, (10) analyze and prevent/solve basic signal integrity issues.


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.


Not applicable.

Recommended optional programme components

Not applicable.

Recommended or required reading

PONG, P.C. FPGA Prototyping by VHDL Examples: Xilinx Spartan-3 Version. Wiley-Interscience, 2008. (EN)
MAXFIELD, C. FPGAs: Instant Access. Newnes, 2008. (EN)
MAXFIELD, C. The Design Warrior's Guide to FPGAs. Elsevier, 2004. (EN)

Planned learning activities and teaching methods

Techning methods include lectures and computer laboratories. Course is taking advantage of e-learning (Moodle) system. The main focus is on computer laboratories with strong emphasis on practical skills.

Assesment methods and criteria linked to learning outcomes

Students obtain points for the activity in computer labs during the semester. The final exam is composed of written, practical and oral part. The exam will be in a remote form.

Language of instruction


Work placements

Not applicable.

Course curriculum

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.

Computer exercises:
1. Introduction to VHDL and ISE design tool.
2. Basic functions, combinational logic (decoding).
3. Hierarchical design, usage of schematic.
4. Implementation of sequential systems (counters).
5. State machines and their VHDL description.
6. Structural description, testbench, simulation.
7. LFSR counter, timing parameters, power consumption of FPGA.
8. Usage of IP cores.
9. Usage of ChipScope tool.
10. Microprocessors in FPGA - PicoBlaze, basic usage.
11. Microprocessors in FPGA - PicoBlaze, custom peripherals.
12. Microprocessors in FPGA - MicroBlaze.


Lectures are aimed to teach students the basic principles of modern PLDs, particularly CPLDs and FPGAs, while they will be able not only to configure (program) them, but also select proper device and implement it into a system.

Specification of controlled education, way of implementation and compensation for absences

Evaluation of activities is specified by a regulation, which is issued by the lecturer responsible for the course annually.

Classification of course in study plans

  • Programme TECO-G Master's

    branch G-TEC , 1. year of study, summer semester, 5 credits, optional specialized
    branch G-TEC , 2. year of study, summer semester, 5 credits, optional specialized

Type of course unit



26 hours, optionally

Teacher / Lecturer

Exercise in computer lab

26 hours, compulsory

Teacher / Lecturer