Graduate School and Research Center in Digital Sciences

Digital systems, hardware - software integration

T Technical Teaching


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 in a microprocessor-based system, and how to drive them from the software layers.

Teaching and Learning Methods: Lectures, team-work, lab sessions. Students are provided with prototyping boards and design tools for the whole semester duration.

Course Policies: Attendance to the lab sessions is mandatory


Book: S. Kilts, "Advanced FPGA design: architecture, implementation, and optimization", IEEE Computer Society Press

Book: Peter J. Ashenden, "Designer's guide to VHDL", Morgan Kaufmann

Book: P. Simpson, "La conception de systèmes avec FPGA" (French), Dunod

Book: R. Zurawski, "Embedded systems handbook", CRC Press

Online book: "The Zynq book" (


Being able to work under a GNU/Linux environment, basic knowledge in software programming (data types, control structures...)


  • 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 micro-processor, 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 a FPGA matrix.

Nb hours: 42.00, one introductory session (1.5h lecture + 1.5h team work), 6 mixed sessions (1.5h lecture + 1.5h lab) and 7 project lab sessions (1h guided work + 2h work on project) 

Grading Policy: Final exam (50%), lab reports (50%)

Nb hours: 42.00
Nb hours per week: 3.00