|Teoria||4||I semestre||Franco Fummi|
|Laboratorio||2||I semestre||Franco Fummi|
The aim of this course is the presentation of some design automation techniques for embedded systems covering the entire design flow through modeling, verification, synthesis and testing. The most important design languages are introduced such as the most advanced EDA tools.
At the end of the course, the students will be able to understand the main components of an embedded system and they will know how to:
- identify the best architecture of an ambedded system starting from specification;
- partition among HW and SW an high-level functionality with emphasis on the interaction with network and operating system;
- model, design and verify a complex digital device;
- develop embedded software interacting with IoT and cloud architectures.
* Introduction to embedded systems.
* Embedded systems modeling.
* Embedded systems design alternatives.
* System-level design.
* Transaction Level Modeling (TLM) and AMS by using SystemC.
* Introduction to Assertion-based verification (ABV).
* Platform-based design.
* Embedded software design.
* HW/SW/NET co-simulation.
* Register transfer level (RTL) hardware description languages (VHDL/SystemC).
* Automatic synthesis from RTL designs.
* The problem of testing.
* The problem of dependability.
The exam is composed of two parts: theory and laboratory report.
To pass the exam, the students must show:
- they have understood the principles of embedded system architectures;
- they are able to model and simulate a complex embedded system;
- they are able to design, verify and test a complex digital device;
- they are able to develop embedded software interacting with network and operating system;
- they are able to apply the acquired knowledge to solve application scenarios described by means of exercises, questions and projects.
The final exam consists of a written test containing questions and exercises.
A report of all laboratoty classes must be provided to complete the exam.