Digital systems, hardware - software integration


This course provides an overview of software and hardware design for smart objects. It shows how to specify, design and validate digital hardware components, how to integrate them into a microprocessor-based system, and how to drive them from the software layers.

Teaching and Learning Methods: Lectures, teamwork, lab. sessions.

Students are provided with prototyping boards and design tools for the whole semester duration.

Course Policies: Attendance to the lab. sessions are mandatory.

  • Book: KILTS S. Advanced FPGA design: architecture, implementation, and optimization. Wiley-Blackwell, 2007, 352p.
  • Book: ASHENDEN P. J. Designer's guide to VHDL. Morgan Kaufmann Publishers In, 2008, 936p.
  • Book: SIMPSON P. La conception de systèmes avec FPGA.  Dunod, 2014, 304p. (in French)
  • Book: ZURAWSKI R. Embedded systems handbook. CRC Press, 2009, 1503p.
  • Book online: CROCKETT L., ELLIOT, R., ENDERWITZ M., STEWART B., NORTHCOTE D. The Zynq book. 2015 ( )            


Binary representations of integers (sign+magnitude and two's complement). Boolean logic, Boolean operators. Basic C programming. Basic GNU/Linux command line interface. Git, markdown.

  • Digital hardware design, hardware description languages, simulation, formal verification, logic synthesis.
  • Field Programmable Gate Array (FPGA) circuits, Systems-on-a-Chip embedding FPGA fabrics and their use to design a complete hardware / software product prototype.
  • System integration, interfaces between components of a digital system, software drivers of hardware peripherals, software applications using hardware peripherals

Learning outcomes:

  • The main goal is to reach a sufficient level of understanding to design alone a prototype system embedding one or several hardware operators for the processing and a microprocessor, plus its peripherals, for the control.
  • A hands-on approach is taken, with the aid of state-of-the-art laboratory equipment. Most of the course is dedicated to the design of a hardware/software system on a prototyping board embedding a microprocessor and an FPGA matrix including dedicated digital hardware accelerators, their interfaces with the microprocessor, Linux drivers, software libraries and software applications to manage the hardware accelerators from the software stack.

Nb hours: 42.00


  • Project (50% of the final grade) - about half of the labs are dedicated to a project
  • Written Exam (50% of the final grade)