Course detail

Programmable Logic Devices

FEKT-NPLDAcad. year: 2014/2015

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).

Language of instruction

English

Number of ECTS credits

6

Mode of study

Not applicable.

Learning outcomes of the course unit

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

Prerequisites

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.

Co-requisites

Not applicable.

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 can obtain 39 points for the activity in computer labs. The final exam is honored by additional 61 points (26 points for a test, 35 for the practical part on PC).

Course curriculum

1. Introduction 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.

Work placements

Not applicable.

Aims

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.

Recommended optional programme components

Not applicable.

Prerequisites and corequisites

Not applicable.

Basic literature

Not applicable.

Recommended reading

Not applicable.

Classification of course in study plans

  • Programme EECC-MN Master's

    branch MN-SVE , 1 year of study, summer semester, elective interdisciplinary
    branch MN-MEL , 1 year of study, summer semester, elective interdisciplinary
    branch MN-EST , 1 year of study, summer semester, elective specialised
    branch MN-TIT , 1 year of study, summer semester, elective interdisciplinary

Type of course unit

 

Lecture

26 hod., optionally

Teacher / Lecturer

Syllabus

Survey of ways how to implement digital systems. Logic functions, their realization in PROM, PAL, PLA structures
Simple PLDs, their functional blocks, macrocells of GAL 16V8 and 20V8 devices. Other SPLD types, their labeling and parameters.
Special PLD types (ZeroPower, low voltage types and others). Programming, programmers
Complex PLD and FPGA devices - structure, basic properties
Implementation of complex combinational functions - multiple-pass and iterative structures, adder, comparator
Asynchronous latches RS and D in PLD structure
Synchronous systems in PLDs: Use of T-type flipflops and EX-OR gates. Mutual conversion of different flipflop types, emulation
One- and bidirectional binary counters, counters with shortened cycle - their description in HDL, number of terms
BCD counters, their implementation in PLD devices
Gray code counters with full and shortened cycle
LFSR counters - structure, advantages and disadvantages, their use
Return of counters into working cycle
State machines (SM): Moore and Mealy type, HDL description, their compilation to SOP form
Simplifying of SM - equivalent states, their finding. State coding for PLDs and FPGAs. Algorithmic description of SM
Timing in programmable devices, pipelining
FPGA devices - additional blocks: I/O standards, memory elements, blocks for frequency synthesis and for further handling of clock signals
Implementation of processors, use of intellectual property blocks
Boundary scan, metastability

Exercise in computer lab

39 hod., compulsory

Teacher / Lecturer

Syllabus

Survey of PLD devices and development systems. Basic work with development systems, HDL languages
ABEL language: description of combinational systems - SOP form, compilation, simulation, more complex statements like WHEN-THEN-ELSE, their compilation. Example: priority encoder
Synchronous systems: description methods, examples of various counter types
Fundamentals of VHDL language, behavioral and structural description, concurrent statements and processes. Hierarchically composed designs
Combinational logic description in VHDL, synthesis. Unwanted latch and how to avoid it
Behavioral description of edge-triggered registers. Binary, decade, LFSR counters
State machines: graphical and textual form of state diagram, example: bit sequence detectors. Graphical editors of state diagrams, StateCAD tool
Simulation, synthesis and implementation of the designs (continuously in all exercises)