Course detail
Programmable Logic Devices
FEKT-MPA-PLDAcad. year: 2021/2022
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
Number of ECTS credits
Mode of study
Guarantor
Department
Offered to foreign students
Learning outcomes of the course unit
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
Course curriculum
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: 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.
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
Basic literature
Wilson, P.: Design Recipes for FPGAs: Using Verilog and VHDL, 2nd Edition. Newnes, 2018, ISBN: 978-0080971292 (EN)
Recommended reading
Elearning
Classification of course in study plans
- Programme MPA-MEL Master's 1 year of study, summer semester, compulsory-optional
- Programme MPAD-CAN Master's 1 year of study, summer semester, compulsory-optional
- Programme MPAJ-TEC Master's 1 year of study, summer semester, compulsory-optional
- Programme MPAD-CAN Master's 1 year of study, summer semester, compulsory-optional
- Programme MPAD-MEL Master's 1 year of study, summer semester, compulsory-optional
Type of course unit
Lecture
Teacher / Lecturer
Syllabus
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
Teacher / Lecturer
Syllabus
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.
Elearning