35152 - Hardware-software design of embedded systems M

Academic Year 2020/2021

  • Docente: Luca Benini
  • Credits: 6
  • SSD: ING-INF/01
  • Language: English

Learning outcomes

The main goal of the class is to provide an overview on the methods for designing, validating and verifying complex embedded electronic system. The importance of software components in virtually all electronic systems will be emphasized. Thus, special focus will be given to hardware-software co-design methods and tools; the most common HW-SW co-design approaches used in industry (telecom, automotive, industrial automation) will be surveyed in details. Course contents: hardware-software system architecture; systems-on-chip (SoC with general-purpose processor, SoC with application-specific processor, Reconfigurable SoCs, Multiprocessor SoCs (MPSoCs), Networks on chip (NoCs)), Systems on Board (Microcontroller systems, Smart sensors, Reconfigurable systems), Distributed embedded systems (Wired communication protocols, Wireless sensor networks, Wearable and portable systems), Software components for embedded systems (Real-time Operating systems, Device drivers & Firmware, APIs e hardware abstraction layers, Hardware-software codesign), Modeling HW/SW systems (Platform-based design, Component-based design, Communication-based design), Functional abstractions for HW/SW (Data-flow (es. Synchronous dataflow), Control-oriented (es. Generalized state machines), Event-driven (es. Simulink), Model selection strategy, hybrid models), Hardware-software description languages (Survey of languages for system design (focus on SystemC), Case studies), Synthesis and computer-aided design (Key issues in HW/SW synthesis, Hardware & software (scheduling, allocation, partitioning), Alternative design flows, Verification and validation), Simulation/Emulation/Prototyping (Cosimulation. Cosimulation algorithms, Commercial cosimulator examples, Emulation. Basic concepts and examples, Prototyping: ICE and prototyping boards), Concurrent HW-SW verification.

Course contents

1. Introduction to Hardware/Software design and System-on-Chip Architectures.

2. Microcontroller systems design – Hardware and Software

  • Microcontroller architecture based on the ARM Cortex M family and RISC-V. Microcontroller peripherals. Microcontroller programming for maximum Energy efficiency
  • Analog and Digital sensor interfaces, MEMS sensors – Smart sensors – Wireless sensor Networks. System power management
3. Parallel Architecture and Parallel programming for advanced embedded systems
  • Multicore architectures and their use in energy efficient embedded Systems with examples from consumer and industrial market segments.
  • Programming shared memory multicore systems using the OpenMP programming model – with practical examples based on open-source multicore RISC-V system (PULP platform)

Readings/Bibliography

See course web site on Virtuale

Teaching methods

See course web site on Virtuale

Assessment methods

Written exam and optional oral exam (possibly as a project discussion on a project agreed with instructor)

Teaching tools

See course web site on Virtuale

Links to further information

https://virtuale.unibo.it/course/view.php?id=15635

Office hours

See the website of Luca Benini