Obiettivi formativi
Il corso si propone di fornire agli studenti le conoscenze di base 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 riprese molto
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
- Tecniche di analisi e sintesi di sistemi digitali complessi
- Argomento opzionale (in base alle ore disponibili): Tecniche di analisi e sintesi di reti sequenziali asincrone
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 (argomento opzionale) - Formalismi per la descrizione dell’hardware.
Progettazione di reti sequenziali asincrone
(Argomento avanzato, opzionale)
1 - Diagrammi e tabelle di stato per reti sequenziali asincrone.
2 - Minimizzazione stati.
3 - Codifica degli stati. Prevenzione ed eliminazione di corse critiche. Prevenzione di alee funzionali.
4 - Marcatura dello stato mediante retroazioni dirette o Latch.
5 - Unità di controllo asincrone.
Bibliografia
Tesi consigliati:
Sono rese disponibili sul sito del corso, lezione per lezione, le diapositive utilizzate in aula e tracce di esercizi risolti.
Per una trattazione organica della disciplina si può fare riferimento ai testi indicati di seguito, a cui si ispira l'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.
Testi d'approfondimento e per esercizi:
- C. Bolchini, C. Brandolese, F. Salice, D. Sciuto, 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 impegna lo studente per circa 80 ore di attività didattica assistita (lezioni ed esercitazioni in aula, una o due esercitazioni in laboratorio). La parte prevalente del corso è costituita dalle 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.
E' inoltre previsto un intervento seminariale in di laboratorio (2-4 ore) per presentare strumenti CAD industriali di progettazione di sistemi digitali basati su logiche programmabili (schematic entry, VHDL, simulazione digitale, mapping su logiche programmabili specifiche).
Sono proposte in corso d'anno due prove intermedie ed assegnamenti progettuali da svolgere a casa per mantenere gli studenti al passo ed esonerarli da parti dell'esame.
Modalità verifica apprendimento
Due prove scritte a metà e a conclusione del corso (modo suggerito) oppure 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.
Altre informazioni
Portale per il sito del corso: http://elly.dia.unipr.it
E' indispensabile registrarsi sul sito per accedere ai materiali e ricevere le comunicazioni del docente.
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
- - -