Progetto di sistemi elettronici
Docente
Crediti
6 CFU
Obiettivi formativi specifici
Il Corso si propone di fornire all’allievo le conoscenze e le competenze operative necessarie per affrontare il progetto di un sistema di calcolo, sia esso per applicazioni generali che specifiche, sia esso distribuito o integrato. Abilità conseguite: criteri di dimensionamento e progetto di elementi di elaborazione quali datapath, registri, risorse di elaborazione. Abilità` progettuale: progetto, simulazione e sintesi di elementi di elaborazione digitale.
Competenze acquisite
- Conoscenza delle metodologie di progettazione di sistemi complessi.
- Dimestichezza nell'utilizzo di strumenti per lo sviluppo software di gruppo.
- Sensibilità alla comunicazione e condivisione di specifiche fra gruppi eterogenei di lavoro.
- Conoscenza del linguaggio System C per la modellazione di sistemi elettronici digitali.
- Testing e simulazione di componenti di un progetto dedicato di System-on-Chip.
Programma
Introduzione: presentazione del progetto di System-on-Chip da sviluppare nelle ore di laboratorio; panoramica del corso; principi di modellazione (2 ore).
Richiami di UML: diagrammi più comunemente utilizzati per sistemi hardware; component; Sequence; State Machine; esercitazioni (4 ore).
Software di gestione di progetto e controllo di versione: presentazione strumenti da utilizzare nel progetto, controllo di versione con Git, gestione di progetto e tracking con Bitbucket, compilazione e test con CMake; esercitazioni (8 ore).
Fondamenti di C++: incapsulamento, ereditarietà e polimorfismo; classi e loro utilizzo per l'istanziazione ed interfacciamento di componenti; esercitazioni (6 ore).
SystemC: moduli e tipi di dati; gestione della concorrenza; porte, interfacce e canali; testing; esercitazioni (18 ore).
Laboratorio (22 ore).
Bibliografia
- D.C. Black, J. Donovan, B. Bunton, A. Keist, "SystemC: From the Ground Up", Springer (2010)
- R. Miles, K. Hamilton, "Learning UML 2.0", O'Reilly (2006)
Modalità d'esame
Orale e/o tesina