Progettazione di sistemi embedded (2018/2019)

Codice insegnamento
4S02911
Crediti
6
Coordinatore
Franco Fummi
Settore disciplinare
ING-INF/05 - SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
Lingua di erogazione
Italiano
L'insegnamento è organizzato come segue:
Attività Crediti Periodo Docenti Orario
Teoria 4 I semestre Franco Fummi

Vai all'orario delle lezioni

Laboratorio 2 I semestre Franco Fummi

Vai all'orario delle lezioni

Obiettivi formativi

Il corso mira a fornire le seguenti conoscenze:
- Tecniche per la progettazione automatica di sistemi embedded a partire dalla loro specifica per passare attraverso la verifica, la sintesi automatica e il collaudo.
- Principali linguaggi per affrontare questo tipo di progetto e i più avanzati strumenti automatici per la loro manipolazione.
Al termine del corso lo studente dovrà dimostrare di avere le seguenti capacità di applicare le conoscenze acquisite:
- Identificare a partire dalle specifiche la miglior architettura per un sistema embedded.
- Modellare, progetatre e verificare dispositivi digitali complessi. Sviluppare software emebdded e interagire con architetture IoT e cloud.
- Partizionare una funzinalità tra hw, sw con attenzione alla rete e ai sistemi operativi.
- Costruire relazione di progetto evidenziando gli aspetti critici risolti.
- Riuscire a utilizzare ulteriori linguaggi per la progettazione di sistemi embedded a partire da quelli studiati nel corso.

Programma

* Introduzione ai sistemi embedded:
- definizione dei campi di applicazione, caratteristiche generali, caratteriste comuni.

* Modellazione di sistemi embedded:
- problematiche generali della modellazione dei sistemi embedded,
- linguaggi per la descrizione dei sistemi embedded.

* Varianti tecnologiche per la realizzazione:
- panoramica delle possibili architetture embedded,
- concetto di piattaforma, componenti di una piattaforma.

* La progettazione a livello di Sistema:
- il flusso di progettazione dal livello architetturale - comportamentale - logico – fisico.

* Il linguaggio SystemC a livello TLM e AMS:
- il modello transazionale per la descrizione di un sistema e la sua rappresentazione in linguaggio SystemC,
- le librerie AMS.

* Introduzione alla verifica funzionale basata su asserzioni (ABV):
- concetto di asserzione, la verifica delle asserzioni mediante simulazione.

* La progettazione Platform Based:
- il raffinamento di una descrizione comportamentale,
- la sintesi ad alto livello, il mapping su una piattaforma embedded.

* Il software embedded:
- la derivazione del software dal linguaggio di sistema,
- il ruolo del sistema operativo, la generazione automatica,
- interazione tra IoT e cloud.

* La cosimulazione HW/SW/NET:
- il concetto di cosimulazione,
- le architetture per la cosimulazione,
- il progetto con hardware in the loop.

* Il linguaggio VHDL/SystemC a livello RT:
- i linguaggi per la descrizione dell'hardware,
- il livello di descrizione a trasferimento tra registri.

* La sintesi dal livello RT:
- i template per la sintesi dai linguaggi,
- la sintesi automatica, la relazione con la sintesi logica.

* Il problema del collaudo:
- introduzione al problema del collaudo,
- problematiche generali e strumenti,
- ruolo dell'affidabilità nei sistemi embedded, tecniche per aumentarla e misurarla.

Modalità d'esame

L'esame è composto da due parti: teoria e laboratorio.
Per superare l'esame, gli studenti devono mostrare che:
- hanno compreso i principi delle architetture di sistemi embedded;
- sono in grado di modellare e simulare un sistema embedded complesso;
- sono in grado di progettare, verificare e testare un dispositivo digitale complesso;
- sono in grado di sviluppare software embedded che interagisce con il sistema operativo e la rete;
- sono in grado di applicare le conoscenze acquisite per risolvere scenari applicativi descritti mediante esercizi, domande e progetti.

L'esame finale consiste in una prova scritta contenente domande e esercizi.
È inoltre necessario fornire una relazione di tutte le attività di laboratorio per completare l'esame.