1009-12 Embedded Systems


Course title : Embedded Systems
Course number : 1009-12
Period : 1st quadrimestre
UEC (unités de cours) : 3 (3*7 = 21 hs)
UEX (unités d’exercices) : 0 (0* 7 = 0 hs)
UTR (unités de travaux pratiques dédoublées) : 4/7 * 1 (4/7 * 1 * 24,5 = 42 hs)


An introductory course regarding embedded systems design. It shows a unified view of hardware and software domains as implementation alternatives based on design exploration and metrics.

The course explores the different trends, components and alternatives according to the final objective. The system level design is introduced by first a description of the different components involved, since integrated circuits design and usage up to software, processors and custom hardware processors.

It also covers design methodologies, optimization techniques and test environments. The course is complemented by practical exercises and laboratory sessions using state of the art technologies.


  1. Introduction Embedded systems overview and Design challenges. The performance design metric. Processor technology. IC technology. PLD. Design Technology. Trends and Tradeoffs.
  2. Custom Single-purpose processors: Hardware. Combinational Logic. RT-level combinational components. Sequential logic design. Custom single-purpose processor design. Optimizing.
  3. General-purpose processors: Software. Architecture. Pipelining. Superscalar and VLIW architectures. Instruction set. Program and data memory space. Interrupts. Operating Systems. Design flow and tools. Application-specific instruction-set processors (ASIP's). Microcontrollers. Digital signal processors (DSP). Selecting a microprocessor. General-purpose processor design.
  4. Standard single-purpose processors: Peripherals . Timers, counters, and watchdog timers. UART. Pulse width modulator. LCD controller. Keypad controller. Stepper motor controller. Analog-digital converters. Real-time clocks.
  5. Memory. Memory write ability and storage permanence. Tradeoffs. Common memory types. Flash memory. Composing memories. Memory hierarchy and cache. Cache mapping techniques. Cache replacement policy. Cache impact on system performance. Advanced RAM. DRAM integration problem. Memory management unit (MMU).
  6. Interfacing. Terminology. Protocol concepts. Microprocessor interfacing: I/O addressing. Microprocessor interfacing: interrupts. Microprocessor interfacing: Direct memory access. Arbitration. Multi-level bus architectures. Advanced communication principles. Wireless communication. Layering. Error detection and correction. Serial Protocols. Parallel protocols. Wireless protocols.
  7. Design Example. User's perspective. Designer's perspective. Specification. Design.
  8. State machine and concurrent process models. Models vs. languages, text vs. graphics. An introductory example. A basic state machine model: finite-state machines (FSM). Finite-state machines with datapath model: FSMD. Using state machines. Hierarchial/Concurrent state machine model (HCFSM) and the Statecharts language. Program-state machine model (PSM). The role of an appropriate model and language. Concurrent processes. Communication among processes. Synchonization among processes. Implementation. Dataflow model. Real-time systems.
  9. Control Systems. Open-loop and closed-loop control systems. General control systems and PID controllers. Fuzzy control.
  10. IC technology. Full-custom (VLSI) IC technology. Semi-custom (ASIC) IC technology. Programmable logic device (PLD) IC technology.
  11. Design technology. Automation: synthesis. Verification: hardware/software co-simulation. Reuse: intellectual property cores. Design process models


Embedded System Design: A Unified Hardware/Software Approach. Frank Vahid, Tony Givargis.

2002. Wiley. 352 pages. ISBN 0471386782.

Computers As Components: Principles of Embedded Computing System Design. W. Wolf.

2006. Elsevier Science & Technology. 714 pages. ISBN 0127618929

Digital Design with Embedded System Design SetWITH Embedded System Design. Frank Vahid.

2007. John Wiley and Sons Ltd. 904 pages. ISBN 047017353X


Material available on the Moodle intranet platform : such as WEB links, slides, articles. Additional material: electronics and programming documentation and boards for lab an project sessions.


Microprocessors architecture and programming.
Digital circuits design.


The course exposes the theoretical bases, the concepts necessary to the development of embedded system, the components. The course is based on one of the references books supported by slides. The students are invited to take part during the course by providing presentations showing design examples, implementation’s alternatives, technological advances, design tools... Laboratory.

The laboratory sessions are illustrated by simple examples. They are of primary importance to allow a comprehension by practice of the concepts necessary to manage architectures based on microprocessors, DSP and circuits based on reprogrammable logic (FPGA/CPLD), the communication, the interfaces, the interaction with the environment, the system level development tools, the details specific to programming languages, and the design flow. During these sessions the student writes a report regarding the work done, measures and results’ analysis. Each group exposes their work to their colleagues.