Obiettivi formativi
L'insegnamento si propone di fornire agli studenti conoscenze di base per affrontare la progettazione logica di sistemi digitali che integrano elementi hardware e software. L’esigenza di disporre di tali competenze si riscontra in particolare nella realizzazione di sistemi di elaborazione che si interfacciano con l’ambiente, spesso integrati negli apparati stessi, variamente denominati come sistemi “embedded”, “ciberfisici”, di tipo “edge” e “IoT”.
L’enfasi dell’insegnamento è posta sulla progettazione di componenti hardware e software con interfacce standard e ben documentate, secondo metodologie e pattern di riferimento in ambito industriale. Tali componenti vengono successivamente utilizzati ed integrati nella definizione della architettura che realizza la soluzione in alcuni casi di studio. Obiettivo del corso è quindi anche promuovere nello studente la capacità di affrontare e risolvere problemi progettuali ad alto livello, mediante partizionamento in sotto-problemi, allocazione delle funzioni a componenti hardware e software, uso di metodologie e componenti appropriati per risolvere i singoli sotto-problemi.
Attraverso lo sviluppo indipendente ma assistito di un progetto riferito ad un caso di studio (con uso di componenti elettronici e software forniti nell’ambito del corso), lo studente potrà maturare metodi di lavoro e autoconsapevolezza per affrontare, con lo stesso approccio, la progettazione di sistemi digitali complessi, sia hardware che software o misti, in insegnamenti successivi di Laurea Magistrale e nel lavoro.
Al termine del corso lo studente sarà in grado di applicare direttamente le conoscenze acquisite nei seguenti ambiti:
- Progettazione di reti sequenziali e combinatorie mediante componenti elementari e/o moduli funzionali come registri, contatori, memorie, componenti programmabili;
- Acquisizione ed elaborazione di segnali esterni di diversa tipologia e interfacciamento con sensori in sistemi digitali;
- Uso di microcontrollori per acquisizione di segnali dal mondo esterno, elaborazione locale e trasmissione su rete wireless;
- Progettazione architetturale di sistemi digitali hardware e software dedicati, mediante scomposizione in moduli funzionali e loro allocazione a componenti appropriati in relazione a specifici indici prestazionali.
Prerequisiti
Tecniche elementari di analisi e sintesi logica di reti combinatorie e sequenziali (mappe di Karnaugh, diagrammi e tabelle di stato, realizzazione mediante porte logiche e flip-flop).
Programmazione in linguaggio C o C++ (obbligatoria per le attività di laboratorio e progetto finale).
Contenuti dell'insegnamento
Introduction to digital systems interacting with the environment.
Computer as components. Examples of Embedded Systems, Cyber-physical Systems, Edge Systems, IoT Systems. Partitioning of hardware and software functions.
Models for embedded systems design.
State machines. State machine composition. Concurrent models. Petri nets.
Design and implementation techniques.
Logic synthesis of digital control units. State machine synthesis using standard MSI, LSI, and programmable components.
Embedded computational platforms. Microcontrollers. Memory architectures. I/O features.
Software for embedded systems. Embedded operating systems. Software patterns for monitoring and control applications. State machine implementation.
Real-time systems. Real-time scheduling algorithms. Static and dynamic scheduling. Protocols for concurrent access to shared resources.
Programma esteso
- - -
Bibliografia
M. Wolf, "Computers as Components: Principles of Embedded Computing System Design", 4th ed., Morgan-Kaufmann, 2016.
E.A. Lee, S.A. Seshia, "Introduction to Embedded Systems", 2nd ed., MIT Press, 2017.
Copia delle diapositive utilizzate a lezione, disponibile nella pagina Elly dell'insegnamento.
Metodi didattici
Il corso viene tenuto con lezioni ed esercitazioni in presenza.
La frequenza degli studenti a lezioni ed esercitazioni viene monitorata e considerata nella valutazione.
36 ore di lezione ed esercitazione in aula e 16 ore di presentazione di strumenti di sviluppo e di esercitazioni assistite in laboratorio. Gli studenti sono accompagnati nello sviluppo di un progetto, che devono completare come parte dell'esame.
Modalità verifica apprendimento
Prova scritta in itinere o negli appelli ufficiali + consegna e presentazione orale del progetto hw/sw funzionante.
Il progetto è assegnato nel corso delle esercitazioni e viene parzialmente sviluppato durante le esercitazioni stesse.
Un progetto è condiviso e realizzato in modo collaborativo da una coppia di studenti.
Altre informazioni
Portale per il sito del corso: http://elly2024.dia.unipr.it
E' indispensabile registrarsi sul sito per accedere ai materiali e ricevere le comunicazioni del docente.
E' proibita la diffusione a terzi e la ripubblicazione dei materiali resi disponibili.
Il materiale didattico e di supporto è reso disponibile sul sito del corso lezione per lezione agli studenti frequentanti.
Obiettivi agenda 2030 per lo sviluppo sostenibile
4 - Istruzione di qualità
9 - Industria, innovazione, infrastrutture