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:
- Analizzare e progettare reti combinatorie di piccole o medie dimensioni, sia con componenti elementari sia con moduli integrati a media e larga scala di integrazione;
- Analizzare e progettare reti sequenziali sincrone di piccole o medie dimensioni, mediante componenti elementari e/o moduli funzionali come registri, contatori, memorie;
- Applicare in modo appropriato le diverse tipologie di bistabili come memorie nelle reti sequenziali sincrone;
- Interfacciare sistemi digitali con segnali esterni anche con impiego di memorie di tipo latch;
- Applicare tecniche comportamentali e strutturali nella progettazione di sistemi digitali, con considerazione di aspetti di costo e di prestazione;
- Esercitare 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 di sintesi di reti combinatorie mediante circuiti integrati combinatori e programmabili
- Circuiti bistabili di memoria
- Tecniche di analisi e di sintesi comportamentale di reti sequenziali sincrone
- Circuiti integrati sequenziali: registri, contatori, componenti sequenziali programmabili, banchi di memoria
- Tecniche di sintesi strutturale di reti sequenziali sincrone
- Tecniche di analisi e sintesi di sistemi digitali complessi
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 (argomento opzionale) - 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.
Bibliografia
Tesi consigliati:
Sono rese disponibili sul sito del corso (su Elly, solo studenti registrati), il giorno precedente la lezione, eventuali diapositive che verranno utilizzate in aula ad integrazione della esposizione alla lavagna e tracce di esercizi risolti. Questi materiali sono utili come supporto dei contenuti sviluppati a lezione ma non sono adeguati per uno studio indipendente. Gli studenti non frequentanti sono invitati a fare riferimento ad uno dei libri di testo consigliati, utilizzando le diapositive solo come indice sull’ordine di esposizione degli argomenti.
Per una trattazione organica della disciplina si può fare riferimento ai seguenti testi, 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.
- M.M. Mano, Digital Design, 3/E, Prentice Hall, 2002.
- 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 56 ore di attività didattica assistita, di cui 32 ore di esposizione ed esemplificazione degli argomenti (alla lavagna o con l’aiuto di trasparenze e diapositive in base alle esigenze) e 24 ore di esercizi in aula (o presentazioni industriali o dimostrazioni in laboratorio).
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 seminario / laboratorio (2 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 previste in corso d'anno due prove scritte intermedie per mantenere gli studenti al passo con i contenuti del corso ed esonerarli dall'esame finale. Sono inoltre proposti assegnamenti da svolgere a casa al termine di ciascuna lezione. Gli assegnamenti non vengono raccolti per essere valutati, tuttavia ne viene proposta la soluzione all’inizio della lezione successiva.
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 4-6 esercizi di progettazione ed analisi di sistemi digitali, la cui soluzione può richiedere il richiamo anche di argomenti più teorici. I quesiti proposti sono volti ad accertare la capacità di analizzare e progettare reti sequenziali e combinatorie con le metodologie proposte nel corso. Almeno uno dei quesiti proposti richiede allo studente capacità di problem solving e fattorizzazione del problema in parti da comporre nella architettura finale della soluzione al quesito proposto.
In caso di svolgimento dell’esame mediante prove parziali, il voto finale è la media dei voti conseguiti nei due parziali. Se non superato mediante le prove parziali, lo studente deve sostenere l’esame attraverso la prova scritta relativa a tutti gli argomenti del corso proposta negli appelli ufficiali.
La durata di ciascuna delle prove scritte parziali in corso d’anno è di 90 minuti. La durata delle prove scritte proposte negli appelli ufficiali è di 2 ore.
Altre informazioni
Portale per il sito del corso: http://elly.dii.unipr.it
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
- - -