RETI LOGICHE
cod. 05611

Anno accademico 2020/21
3° anno di corso - Primo semestre
Docente
Stefano CASELLI
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
72 ore
di attività frontali
9 crediti
sede: PARMA
insegnamento
in ITALIANO

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 verrà tenuto con lezioni in presenza, in un'aula sufficientemente ampia da ospitare tutti gli studenti del corso simultaneamente con adeguato distanziamento (Aula A/1 della Sede Scientifica di Ingegneria). Gli studenti dovranno indossare mascherina e prenotare il posto in aula con la app di ateneo dedicata.

In caso di problematiche COVID che impediscano le lezioni di presenza (blocchi totali o parziali, quarantene della classe), il corso potrà essere tenuto, tutto o in parte, a distanza sulla piattaforma Teams.

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 possibile (in funzione anche delle eventuali problematiche COVID) 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 (metà Novembre, Dicembre al termine delle lezioni) ed assegnamenti progettuali da svolgere a casa per mantenere gli studenti al passo. In caso di superamento di entrambe le prove parziali l'esame viene verbalizzato come superato con il voto medio conseguito nelle due prove. In tutti gli altri casi l'esame deve essere sostenuto per intero negli appelli ufficiali.

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://elly2020.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

- - -