Course title

Embedded Systems

Course code

E33 (Official Course Guide)

Course type


Course level

Undergraduate (first cycle)

Year of studies




ECTS Credits



Hours per week

4 (2 hours theory & 2 hours laboratory)


Minas Dasygenis (Faculty)

Course content

Embedded Computing Principles. CPU instruction sets. Design, development and programming of digital embedded systems. Design requirements. Software and hardware analysis of typical embedded problems. Memory Hierarchy. Algorithmic transformations. Software and hardware application development. Real Time Operating Systems. Integration levels (vlsi, fpga, asic, asip). System Modeling using VHDL and UML. Performance and Power consumption optimization. Peripherals and interconnections. Embedded multiprocessor and accelerators. Input/Output Mechanisms. Interrupts. Exceptions. ARM Architecture.

Laboratory assignments in assembly language programming and C for popular embedded processors and micro-controllers and VHDL for System-On-chip design.

learning outcomes and competences to be acquired

Upon successful completion of this course, students will be able to demonstrate knowledge and understanding of:

  • the embedded systems and their specific requirements,

  • the economics of the embedded system design,

  • the interconnection networks,

  • the hardware software codesign,

  • the hardware accelerators,

  • the popular embedded systems architecture and organization,

  • the real time operating systems,

  • the hard and soft deadlines,

  • the performance of the embedded systems,

  • the input/output mechanisms,

  • the fundamental peripherals of an embedded system.

From the laboratory assignments, students will gain the abilities to:

  • create and program embedded systems, according to the design requirements,

  • program micro-controllers and peripherals (arduino & shields),

  • understand the flexibility of the FPGA and utilize it in projects of embedded systems,

  • create and optimize applications in terms of low power consumption and high performance,

  • familiarize themselves with the ARM and TI integrated development environments,

  • fully utilize the VHDL to describe modules of embedded systems,

  • use the FPGA for application development,

  • design an embedded system using soft-cores,

  • design a system-on-chip (SoC),

  • master the DTSE methodology for application optimization,

  • use and glue together multiple intellectual property cores,

  • co-design hardware (VHDL) and software (C).


Computer Architecture, Digital Design (not compulsory)

Teaching methods

Lectures, Powerpoint slides, Lecture Notes, in class quizzes, e-class, automated examination system i-exams, opencourses video lectures, laboratory exercises, semester group project.

Assessment methods

Written final theory & laboratory exam 40%, 12 weekly laboratory exercises 30%, 1 semester team project 30%.

Language of instruction


Recommended bibliography


Core Laboratories
Laboratories that utilize the Spartan FPGA board will require the following:
UCF File for Spartan 3A | Xilinx DS529 Spartan-3A FPGA Family Data Sheet | Xilinx UG334 Spartan-3A/3AN FPGA Starter Kit Board User Guide Arduino Laboratories
DevKit Laboratories
Single Board Computer Laboratories
  • BeagleBoard XM with OpenCV and extra files
  • BeagleBoard XM GPIO - Led a Led + Read a Key and
  • Raspberry Single or Connected with Arduino - Led a Led + Read a Key
  • Xilinx Pynq and FirNotebook Lab File