RETI LOGICHE
cod. 05611

Anno accademico 2015/16
3° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Ingegneria informatica
Tipologia attività formativa
Caratterizzante
63 ore
di attività frontali
9 crediti
sede: PARMA
insegnamento
in - - -

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 e negli strumenti CAD di Design Automation. 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;
- Analisi e progettazione di reti sequenziali asincrone di piccole dimensioni con e senza memorie di tipo latch; (trattandosi di un tema specialistico, l'approfondimento dedicato alla progettazione asincrona potrà essere limitato in funzione del tempo disponibile per il completamento del corso);
- Uso a livello elementare di strumenti CAD/CAE per progettazione mediante logiche programmabili;
- 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 e dei fondamenti dell'Algebra di Boole. 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

- Introduzione ai sistemi digitali
- Tecniche di analisi e sintesi di reti combinatorie
- Tecniche di analisi e sintesi di reti sequenziali sincrone
- Tecniche di analisi e sintesi di reti sequenziali asincrone
- Tecniche di analisi e sintesi di sistemi digitali complessi
- Esercitazioni in laboratorio: progettazione di circuiti basati su logiche programmabili mediante strumenti CAD/CAE

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 (metodo degli implicanti/implicati primi multipli). Analisi e sintesi di reti a NAND e a NOR.
3 - Strumenti CAD per la sintesi di reti combinatorie: Algoritmo di Quine-McCluskey. Espresso. Simulazione logica.
4 - Reti a più livelli e progettazione con moduli integrati: Fattorizzazione e scomposizione di espressioni. Progettazione mediante composizione di moduli combinatori MSI e LSI. Multiplexer, Decoder, Demultiplexer, Encoder, Encoder Prioritario, ROM, componenti AOI.
5 - Tecnologie di interconnessione: Porte three-state, buffer, transceiver, bus. Realizzazione di MUX e DEMUX mediante buffer three-state.
6 - Logiche programmabili semplici (ROM, PLA, PAL, GAL).
7 - Fenomeni transitori nelle reti combinatorie: alee statiche e dinamiche.

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, tabelle di flusso e linguaggi 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 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).

Reti sequenziali asincrone
1 - Diagrammi degli stati e tabelle di flusso per reti asincrone. Funzionamento in modo fondamentale e temporizzazione nelle reti sequenziali asincrone.
2 - Procedimenti di analisi e di sintesi di reti sequenziali asincrone.
3 - Minimizzazione degli stati nelle reti asincrone.
4 - Codifica degli stati: Problemi di corse critiche e alee funzionali. Tecniche per l'eliminazione delle corse critiche: grafo delle adicenze, mappa di codifica, transizioni multiple, assegnamenti multipli. Assegnamenti universali.
5 - Marcatura dello stato mediante retroazioni dirette e Latch SR.
6 - Progettazione asincrona degli elementi di memoria sincroni: D-Latch e Flip-Flop SR, JK e T. Architettura dei Flip-Flop Master-Slave. Problemi di alea essenziale e cattura degli uni. Architettura dei Flip-Flop Edge-Triggered. Integrazione degli ingressi Preset e Clear nei Flip-Flop.
7 - Unità di controllo asincrone.

Analisi e sintesi di sistemi digitali complessi
1 - Progettazione di reti sequenziali con moduli integrati (registri, contatori, registri a scorrimento, MUX, etc.).
2 - Suddivisione tra parte di controllo e datapath. Progettazione di controllori.
3 - 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.
4 - Pipelining.
5 - Formalismi per la descrizione dell’hardware.

Progettazione di sistemi digitali con logiche programmabili (esercitazioni in laboratorio)
1 - Panoramica su tipologie di logiche programmabili
2 - Strumenti CAD di tipo industriale per progettazione digitale. Schematic entry. VHDL.
3 - Simulazione digitale. Mapping su logiche specifiche.

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.
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 comunque 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, 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.

Sono inoltre proposte alcune esercitazioni in laboratorio (6-10 ore) finalizzate alla progettazione di sistemi digitali basati su logiche programmabili mediante uso di strumenti CAD di tipo industriale per schematic entry, VHDL, simulazione digitale, mapping su logiche programmabili specifiche.

Sono proposte in corso d'anno due prove intermedie in aula ed assegnamenti pratici o teorici da svolgere a casa per mantenere gli studenti al passo ed esonerarli da parti dell'esame.

Al termine del corso potrà essere assegnato un progetto (in ogni caso opzionale), anch'esso basato su impiego di logiche programmabili, da svolgere in gruppi di 2-4 studenti. Il progetto ha lo scopo di mantenere e rinforzare le capacità di problem solving acquisite dagli studenti, facendo leva sull'entusiasmo generato dalla capacità di utilizzare strumenti di progettazione digitale con solide basi concettuali.

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.

L'assegnamento opzionale può incrementare il voto ottenuto nelle prove in itinere o nell'appello ufficiale solo se esso è sufficiente.

Altre informazioni

Portale per il sito del corso: http://didattica.unipr.it
Il materiale didattico e di supporto è reso disponibile sul sito del corso lezione per lezione agli studenti frequentanti.