Using FPGAs in Reliable Embedded Systems

Module code: EG7540
Module co-ordinator: Professor Tanya Vladimirova

Field Programmable Gate Arrays (FPGAs) are a cheap and flexible alternative to traditional ASICs (Application Specific Integrated Systems). SRAM-based FPGAs, in particular, are extremely suitable for implementing high-performance embedded systems, as they can be used to speed up significantly the execution of complex digital signal processing algorithms. These FPGAs are also called reconfigurable devices as the implemented hardware design can easily be changed. SRAM FPGAs nowadays can house an enormous amount of computational blocks, memory and other components, being capable of implementing the functionality of a whole printed circuit board (PCB) as well as an entire network of processing nodes on a single device. The former designs are referred to as System-on-a-Programmable-Chip (SoPC) and the latter as Network-on-a-chip (NoC). Recently hybrid devices have been manufactured too that have a traditional 'hard' processor or a multicore processor inside the FPGA, capable of seamlessly communicating with the on-chip reconfigurable programmable fabric.

In this module you will discover the world of FPGAs and will acquire practical design skills, which will allow you to build embedded systems using programmable logic devices. You will become familiar with the hardware description language VHDL as well as programmable logic design methodologies and tools. We will then consider advanced topics such as system-on-a-programmable chip design using soft processor cores and peripherals. We will also explore the role of simulation and timing analysis in testing FPGA designs. You will build your knowledge through guided hands-on laboratory exercises.  

Topics covered

  • Introduction to Field Programmable Gate Arrays
  • FPGA design flow and tools using hardware description languages
  • Fundamentals of VHDL
  • Creating larger designs using VHDL
  • Importance and role of test benches in programmable logic design
  • Extended system-on-a-chip designs incorporating soft processor cores and standard/custom peripherals
  • Reliability issues of SRAM-based FPGAs


  • 12 hours of seminars
  • 25 hours of practical classes and workshops


  • Lab exercises (40%)
  • Case study coursework (60%)