Obiettivi formativi
Il corso si propone di fornire agli studenti le conoscenze di base e di livello intermedio per l’analisi e la progettazione di sistemi digitali. Il corso presenta sia metodologie tradizionali, sia tecniche algoritmiche ed euristiche adottate nella progettazione industriale. L'enfasi del corso è posta sulla capacità di affrontare e risolvere problemi progettuali ad alto livello, anche mediante partizionamento in sottoproblemi, avvalendosi poi di metodologie e componenti appropriati per risolvere i singoli sottoproblemi.
Al termine del corso lo studente sarà in grado di applicare direttamente le
conoscenze acquisite nei seguenti ambiti:
- Analisi e progettazione di reti combinatorie di piccole o medie dimensioni, sia con componenti elementari sia con moduli integrati a media e larga scala di integrazione;
- Analisi e progettazione di reti sequenziali sincrone di piccole o medie dimensioni, mediante componenti elementari e/o moduli funzionali come registri, contatori, memorie;
- Interfacciamento di sistemi digitali con segnali esterni anche con impiego di memorie di tipo latch;
- Utilizzo di tecniche comportamentali e strutturali nella progettazione di sistemi digitali, con considerazione di aspetti di costo e di prestazione;
- Utilizzo di tecniche di problem solving per scomporre problemi progettuali complessi in problemi di dimensioni più contenute affrontabili separatamente.
Prerequisiti
E' presupposta la conoscenza delle porte logiche, dell'Algebra di Boole e di elementi di sintesi combinatoria. Le tecniche elementari di ottimizzazione combinatoria (mappe, semplificazione di espressioni) sono richiamate succintamente nel corso come punto di partenza.
Contenuti dell'insegnamento
_Reti Logiche: Programma del corso_
- Modelli delle reti logiche
- Richiami di tecniche elementari di analisi e sintesi di reti combinatorie
- Circuiti integrati combinatori SSI, MSI, LSI, programmabili (ROM, PLA, PAL, GAL, CPLD)
- Tecniche di analisi e sintesi di reti sequenziali sincrone
- Circuiti bistabili di memoria
- Circuiti integrati sequenziali: registri, contatori, componenti sequenziali
programmabili, banchi di memoria
- Circuiti aritmetici: sommatori, sottrattori, ALU
- Tecniche di analisi e sintesi logica di sistemi digitali complessi. Architettura della CPU.
- Progettazione e realizzazione di un sistema digitale di acquisizione sensoriale su rete IoT (Internet of Things).
Programma esteso
__Reti Logiche: Programma dettagliato del corso__
Introduzione ai sistemi digitali
1 - Ruolo dei sistemi digitali. La rappresentazione dell'informazione.
2 - La macchina di Von Neumann.
3 - Evoluzione delle tecnologie elettroniche.
4 - Finalità e limiti dei sistemi digitali.
Reti combinatorie
1 - Richiami: Espressioni canoniche e generali SP e PS. Analisi e sintesi di funzioni completamente specificate mediante mappe di Karnaugh.
2 - Estensione delle tecniche di analisi e sintesi per reti combinatorie a due livelli: Funzioni incompletamente specificate. Reti a più uscite. Analisi e sintesi di reti a NAND e a NOR.
3 - Reti a più livelli e progettazione con moduli integrati: Fattorizzazione e
scomposizione di espressioni. Progettazione mediante composizione di moduli combinatori integrati. Famiglia logica SSI. Componenti MSI e LSI. Multiplexer, Decoder, Demultiplexer, Encoder, Encoder Prioritario, ROM, componenti AOI.
4 - Tecnologie di interconnessione: Porte three-state, buffer, transceiver, bus. Realizzazione di MUX e DEMUX mediante buffer three-state.
5 - Logiche programmabili semplici (ROM, PLA, PAL, GAL).
6 - Fenomeni transitori nelle reti combinatorie: alee statiche e dinamiche.
7 - Strumenti CAD per la sintesi di reti combinatorie: Algoritmo di Quine-McCluskey. Espresso. Simulazione logica.
Reti sequenziali sincrone
1 - Modelli di Mealy e di Moore. Analisi di circuiti logici elementari con ritardi e retroazione. Funzionamento in modo fondamentale. Funzionamento con segnale di clock.
2 - Reti per la memorizzazione dello stato: Latch SR e D; Flip-Flop D, JK e T. Problemi di temporizzazione. Temporizzazione delle reti sincrone.
3 - Automi a stati finiti: Strumenti di definizione dell'automa (diagramma degli stati, tabella di flusso e linguaggio di descrizione). Minimizzazione degli stati.
4 - Procedimenti di analisi e di sintesi di reti sequenziali sincrone: Codifica degli stati. Codifica ottima e codifica one-hot. Marcatura dello stato con diversi tipi di Flip-Flop e Latch.
5 - Comandi di Preset e Clear nei Flip-Flop sincroni. Reti con ingressi asincroni o impulsivi.
6 - Progettazione di contatori: contatori binari, ad anello, Johnson, con ciclo di conteggio arbitrario. Progettazione di registri paralleli e seriali. Ingressi di controllo nei contatori e nei registri.
7 - Logiche programmabili sequenziali e complesse (CPLD, FPGA).
Analisi e sintesi di sistemi digitali complessi
1 - Progettazione strutturale di reti sequenziali con moduli integrati (registri, contatori, registri a scorrimento, MUX, etc.).
2 - Progettazione di banchi di memoria.
3 - Suddivisione tra parte di controllo e datapath. Progettazione di controllori.
4 - Componenti combinatori per il datapath e dedicati: Circuiti aritmetici (sommatori, comparatori, ALU). Convertitori di codice. Circuiti per controllo di parità e codice di Hamming. Circuiti a EXOR.
5 - Pipelining.
6 - L'architettura della CPU come esempio di progettazione digitale.
Programma delle attività di laboratorio come descritto in precedenza:
Realizzazione di un semplice sistema IoT per monitoraggio ambientale basato su microcontrollore, uno o più sensori e radio LoRa.
Bibliografia
Tesi consigliati:
I seguenti testi offrono una trattazione organica delle Reti Logiche e corrispondono all'impostazione didattica del corso:
- F. Vahid, Digital Design, John Wiley & Sons, 2007.
- J.F. Wakerly, Digital Design: Principles and Practice, 4th Edition, Prentice-Hall, 2005.
Sono inoltre pubblicate sul sito del corso le diapositive utilizzate in aula e tracce di esercizi risolti. Tali materiali non sono sufficienti per acquisire una preparazione che consenta il superamento della prova scritta d'esame, se non accompagnati da appunti personali presi in aula. Gli studenti che non frequentano le lezioni in aula sono invitati a basare la propria preparazione su uno dei libri di testo citati in precedenza.
Testi d'approfondimento e per esercizi:
Reti Logiche, Apogeo, 2004.
- R.H. Katz, Contemporary Logic Design, 1st Edition, Addison Wesley, 1994.
- R. Laschi, Reti Logiche, Esculapio, Bologna, 1994.
Sugli argomenti del corso sono disponibili numerosi altri testi, in Italiano e in Inglese, presso la Biblioteca Politecnica di Ingegneria e Architettura.
Metodi didattici
Il corso verrà svolto con lezioni ed esercitazioni in presenza.
Il corso impegna lo studente per circa 80 ore di attività didattica assistita (lezioni ed esercitazioni in aula, esercitazioni in laboratorio).
La parte prevalente del corso è costituita da lezioni ed esercitazioni in aula, con uso di lavagna, trasparenze e diapositive, in base alle esigenze. Molto tempo è riservato alla attività di design, sviluppata sulla lavagna tradizionale per raccogliere anche i contributi progettuali degli studenti più vivaci. Le lezioni in aula si concludono frequentemente con assegnamenti progettuali da svolgere a casa, che vengono ripresi e discussi nella lezione successiva.
Il corso prevede anche una significativa esperienza di progettazione digitale in laboratorio (stimata in 16 ore di attività assistita). Gli studenti lavoreranno in coppie o piccolo gruppo. Ciascun gruppo dovrà progettare e realizzare un sistema digitale di acquisizione sensoriale (ad es. da accelerometro, sensore di temperatura, sensore di umidità del terreno, etc.) con capacità di trasmissione dei valori rilevati su rete IoT e successiva visualizzazione su un portale accessibile da Internet. Ogni gruppo di studenti riceverà uno o più sensori e tutti i componenti elettronici necessari per la realizzazione del sistema. I progetti verranno sviluppati in parte in laboratorio nel corso delle esercitazioni, e in parte in autonomia dagli studenti, con impiego di strumenti CAD di progettazione digitale e/o di sviluppo su microcontrollore.
La partecipazione alle esercitazioni e la realizzazione del progetto sono obbligatorie per il superamento dell'esame.
Modalità verifica apprendimento
L'esame è costituito da una prova scritta e da una prova pratica.
La prova scritta per gli studenti frequentanti può essere superata attraverso due prove parziali a metà e a conclusione del corso (modo suggerito) oppure in una prova scritta complessiva in occasione degli appelli ufficiali d'esame. Le prove scritte sono costituite da esercizi di progettazione ed analisi di sistemi digitali, eventualmente integrati da domande di teoria.
La prova pratica è costituita dalla realizzazione del sistema di acquisizione sensoriale su rete IoT nel corso delle esercitazioni, valutata in base ad impegno e funzionalità, accompagnata da una relazione scritta finale.
La valutazione complessiva dell'esame verrà determinata per 2/3 dalla prova scritta e per 1/3 dalla valutazione del progetto sviluppato nelle esercitazioni di laboratorio.
Altre informazioni
Portale per il sito del corso: http://elly2022.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 e infrastrutture
13 Agire per il clima