Reti Logiche LA A.A. 2008-2009
Contatti Tel : 051 2093860 e-mail : smatt@ieee.org Web : www.vision.deis.unibo.it/smatt Ricevimento DEIS 1 piano Mercoledì 14-16 (verificare sul sito per eventuali variazioni)
Orario Ora Q Venerdì dalle 11 alle 12 ora Q Venerdì 24/4 Elettronica di potenza L-A Orario Proposta per il Giovedì - inizio alle 14.30?
Materiale didattico Informazioni, Slide e Compiti* www.vision.deis.unibo.it/smatt/retilogiche.html www.lia.deis.unibo.it/courses/ Registrazioni video delle lezioni www.vision.deis.unibo.it/smatt/retilogiche.html Streaming in tempo reale (sperimentale) Dispense/libri* R.Laschi, M.Prandini, Reti Logiche Esculapio, 2007 Approfondimenti J.F. Wakerly Digital design: principles and practices Prentice-Hall International, 2005
Software Altera Quartus II Web Edition Gratuitamente disponibile per studenti al sito www.altera.com E necessario registrarsi (www.altera.com)
Modalità esame Scritto + Orale* Scritto: due esercizi (20 punti) Orale: obbligatorio se l esame non è sostenuto entro la sessione estiva* Prova intermedia == Orale Svolta a metà del corso (10 punti) Recuperabile (solo) a Giugno o a Luglio Bonus (3 punti) Progetto e simulazione di una rete logica mediante Altera
Date esami Prova intermedia A metà corso (fine Maggio) Prima prova scritta 25 Giugno 2009 ore 9 Seconda prova scritta 20 Luglio 2009 ore 9 Iscrizione obbligatoria tramite Uniwex
Obiettivi del corso RETI LOGICHE insegna a descrivere e a progettare le MACCHINE DIGITALI
Introduzione alle macchine digitali Alcuni esempi di macchine digitali Computer Foto/Videocamere Telefonini, lettori MP3 Ascensori, antifurti Automobili (iniezione, ABS..)... Siamo pervasi da macchine digitali! Cosa sono le macchine digitali?
Macchine digitali Sistemi artificiali che impiegano grandezze fisiche contraddistinte da un insieme discreto di valori significativi (segnali digitali) per rappresentare, elaborare e comunicare informazioni il mezzo il fine
Programma del corso Saper fare Sapere Metodologie per la sintesi e l analisi di reti sequenziali sincrone Approccio canonico e diretto Metodologie per la sintesi e l analisi di reti sequenziali asincrone Metodologie per la sintesi e l analisi di reti combinatorie Componenti logici elementari e algebra di commutazione Modelli e metodi per la descrizione formale delle specifiche Rappresentazione, elaborazione, trasferimento dell informazione Introduzione alle macchine digitali Orale Prova scritta Orale Prova intermedia
I due contesti progettuali oggetto di studio astrazione cosa fa Descrizione del COMPORTAMENTO come è fatta Sintesi non univoco esito univoco Analisi Macchina digitale Descrizione della STRUTTURA
Livelli di descrizione La descrizione del comportamento di un sistema complesso, in ogni ambito ingegneristico, è inevitabilmente articolata su più livelli (approccio divide et impera ). Ogni livello individua entità (sottosistemi, unità, moduli,, componenti primitivi ) opportunamente cooperanti, contraddistinte da ben predefiniti ruoli, funzionalità, interfacce e protocolli di interazione con le altre entità operanti nello stesso livello o nei livelli adiacenti della gerarchia. Esplorando i livelli della gerarchia dall alto verso il basso, aumenta il numero di entità, ma diminuisce la complessità di ciascuna di esse, dal punto di vista sia comportamentale che strutturale.
Livelli di astrazione Livello Architettonico Calcolatori Elettronici Livello Logico Reti Logiche Livello Elettronico Elettronica Digitale
Esempio: Personal Computer CPU ALU BIU CU M MEM I/O Livello Architettonico Livello Logico Livello Fisico
Rappresentazione dell informazione SORGENTE DESTINAZIONE SEGNALE: Grandezza fisica variabile nel tempo il cui andamento o forma d onda rappresenta l informazione che la parte sorgente vuole inviare alla parte destinazione SEGNALI ANALOGICI: ogni variazione della grandezza fisica modifica l informazione trasportata SEGNALI DIGITALI: solo a certe variazioni corrisponde una modifica di significato
Segnale Analogico vs Digitale Segnale analogico rumore s(t) informazione Segnale digitale Segnale binario H L
Conversione A/D e D/A RL A/D Elabora segnali digitali Esempio: ABS D/A!#? RL :-) Sensore A/D D/A Attuatore
Esempio: telefonia IP Hello Hello 1010 1010 Hello 1010 1010 Hello A/D RL TX RX RL D/A
Codifica dell informazione Scena reale Immagine digitale acquisita dal sensore R {0,1,2,..,244,255} G {0,1,2,..,244,255} B {0,1,2,..,244,255}
Variabile binaria (bit) Bit: variabile che può assumere solo due valori {0,1} Se X variabile binaria X=0 o X=1 Se Y variabile binaria Y=High o Y=Low Se Z variabile binaria Z=Luce o X=Buio etc... Perché sono così importanti le variabili binarie? Perché gli elementi fondamentali per l elaborazione sono basati su interruttori (dispositivi ON/OFF)! Interruttori?!?
Causa Interruttori... I Interruttore Effetto I: {Chiuso,Aperto} 220 volt U U: {Accesa, Spenta} + Vcc Causa I i V u Effetto I i : {I min,0} V u : {0, Vcc}
A livello logico si astrae dalla tecnologia con cui sono realizzati gli interruttori. Ovviamente noi siamo interessati alla tecnologia elettronica (transistors): - alta velocità di commutazione - bassi consumi di potenza - alta capacità di integrazione - bassi costi -...
Esempio: misurare il livello del carburante in un automobile Sensore (ON/OFF) Variabile binaria (Bit) Riserva? 4/4 3/4 2/4 1/4 8/8 7/8 6/8 5/8 4/8 3/8 2/8 1/8 1 bit 4 bit 8 bit
Configurazioni binarie Configurazione binaria di n bit: n bit stringa di n simboli {0,1}. x 1 x 2 x 3 x n n=3: x 1 x 2 x 3 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 1 1 x 1 x 2 x 3 Le distinte configurazioni binarie di n bit sono 2 n. Una configurazione di n bit può rappresentare: i valori di n segnali binari in un certo istante; i valori di un segnale binario in n istanti. 0 0 0 x 1 0 0 t 1 t 2 t 3 notazione alternativa: t x 1 x 2 x 3 010 111 000 011 111
Rappresentazione dell informazione Informazione - Stringa di lunghezza finita formata da simboli s i appartenenti ad un alfabeto di definizione A: s 1 s 2 s 3. s i s n-1 s n con s i A:{a 1, a 2,.., a m } Alfabeto A: insieme di informazioni elementari Esempi: testo e caratteri numero e cifre musica e note immagine, pixel e toni di grigio disegno e pend./lung. di tratti misura e posizione di un indice parlato e fonemi
Codifica binaria dell informazione Codice binario - Funzione dall insieme delle 2 n configurazioni di n bit ad un insieme di M informazioni (simboli alfanumerici, colori, eventi, stati interni, ecc.). Condizione necessaria per la codifica: 2 n M 2 n config. 0 0 0..0 1 0 0..0 0 1 0..0 1 1 0..0 0 0 1..0 0 0 1..1 0 1 1..1 n.u.? 5 z a 1 M informazioni m 1 1 1..1
Proprietà di un codice Il codice è una rappresentazione convenzionale dell informazione. La scelta di un codice è condivisa da sorgente e destinazione ed ha due gradi di libertà: il numero di bit (qualsiasi, a patto che sia 2 n M ) l associazione tra configurazioni e informazioni A parità di n e di M le associazioni possibili sono C = 2 n! / (2 n -M)! n = 1, M = 2 C = 2 n = 2, M = 4 C = 24 n = 3, M = 8 C = 64.320 n = 4, M = 10 C = 29.000.000.000
Codici ridondanti e non ridondanti 2 n M n: n di bit 8 7 6 5 4 3 2 Codici ridondanti n > n min Codici non ridondanti Impossibilità di codifica n min = lg 2 M 1 0 2 22 42 62 M: n di informazioni
2 0 1 + - segno 1 0 4.10 4 Esempi 0 1 00 01 11 10 n.u. colori Cifre decimali Altri 29 miliardi di codici a 4 bit 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 BCD zero uno due tre quattro cinque sei sette otto nove 1111110 0110000 1101101 1111001 0110011 1011011 0011111 1110000 1111111 1110011 7 segmenti 1000000000 0100000000 0010000000 0001000000 0000100000 0000010000 0000001000 0000000100 0000000010 0000000001 uno su dieci
Codice a 7 segmenti a f g b a b c d e f g zero 1 1 1 1 1 1 0 uno 0 1 1 0 0 0 0 e c etc. d a b c d e f g Universal Product Code 0 1 2 3 4 5 6 7 8 9
La trascodifica sul percorso dei dati Codici esterni Trascodifica Trascodifica Codice interno Unità di elaborazione e di memoria Il codice interno èdi norma non ridondante per minimizzare il n di bit da elaborare e da memorizzare. Il codice esterno èdi norma ridondante, per semplificare la generazione e la interpretazione delle informazioni, e standard, per rendere possibile la connessione di macchine (o unità di I/O) fatte da Costruttori diversi.
La calcolatrice tascabile Codice ridondante per la visualizzazione dei dati Codice ridondante per la introduzione dei dati e dei comandi Codice BCD per la rappresentazione interna dei numeri
Codici proprietari e standard Codice proprietario - Codice fissato da un Costruttore per mettere in comunicazione apparati da lui realizzati L uso di codici proprietari ottimizza le prestazioni e protegge il mercato di certe apparecchiature. Esempi: Linguaggio Assembler, Periferiche, Telecomando TV Codice standard - Codice fissato da norme internazionali ( de iure ) o dal costruttore di una macchina utile per tutti gli altri ( de facto ). L uso di codici standard nelle unità di I/O consente di collegare macchine fatte da costruttori diversi Esempi: Stampanti e Calcolatori, Calcolatori e Calcolatori
Rappresentazione dei numeri in base B 1) Rappresentazione: a n-1 a 0, a -1 a -m a i {0, 1,., (B-1)} 2) Valore: (N) B = (a n-1.b n-1 + +a 0.B 0 + a -1.B -1 + a -2.B -2 + a -m.b -m )
Il sistema di numerazione in base 2 (il caso dei numeri naturali < 2 n ) n bit b n-1 b n-2 b 1 b 0 N 10 N 2 N 10 N 2 0 0000 8 1000 1 0001 9 1001 2 0010 10 1010 3 0011 11 1011 4 0100 12 1100 5 0101 13 1101 6 0110 14 1110 7 0111 15 1111 (N) 2 = b n-1.2 n-1 + b n-2.2 n-2 + +b 0.2 0 Lunghezza della stringa in base 2 e in base 10 Dato un numero decimale con m cifre 0 (N) 10 10 m -1 per la sua rappresentazione binaria deve essere 2 n > 10 m e quindi n = (m log 2 10) (3,32 m)
Conversioni da base 2 a base 10 e viceversa di numeri naturali Conversione da base 2 a base 10 (N) 10 = (b n-1.2 n-1 + b n-2.2 n-2 + +b 1.2 1 +b 0.2 0 ) 10 ESEMPIO: 100110 0 + 2 + 4 + 0 + 0 + 32 = 38 Conversione da base 10 a base 2 Osservazione preliminare: (N) 10 = (b n-1.2 n-1 + b n-2.2 n-2 + +b 1.2 1 +b 0.2 0 ) 10 (N) 10 /2= (b n-1.2 n-2 + b n-2.2 n-3 + +b 1.2 0 ) + (b 0.2-1 ) 10 = Q + R. 2-1
Conversione di un numero naturale N da base 10 a base 2 i = i+1 i = 0 A = N B = (A / 2) 10 = (Q i + R i 2-1 ) 10 NO A = Q i b i = R i A = 0 SI fine ESEMPIO: 131 131/2 = 65 + 1.0,5 65/2 = 32 + 1.0,5 32/2 = 16 + 0 16/2 = 8 + 0 8/2 = 4 + 0 4/2 = 2 + 0 2/2 = 1 + 0 1/2 = 0 + 1.0,5 10000011
Altre rappresentazioni di numeri binari Sistema esadecimale: B =16 cifre: 0,1,..,9,a,b,c,d,e,f codice binario: 0 = 0000, 1 = 0001,, f = 1111 n di bit per cifra: 4 ESEMPIO: 11000100 1100-0100 C4 Sistema ottale: B = 8, cifre: 0, 1,,7 codice OCTAL: 0 = 000,, 7 = 111 n di bit per cifra: 3 ESEMPIO: 11000100 11-000-100 304
Operazioni aritmetiche
Addizione (con riporto) 0+0 = 00 0+1 = 01 1+0 = 01 1+1 = 10 r i a i b i Full Adder s i r i+1 riporto carry r i a i b i r i+1 s i r n s n r n-1 r n-2 r 1 0 a n-1 a n-2 a 1 a 0 + b n-1 b n-2 b 1 b 0 s n-1 s n-2 s 1 s 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1
Sottrazione (con prestito) 0-0 = 0 0-1 = n.a. 1-0 = 1 1-1 = 0 00-0 = 0 10-1 = 1 01-0 = 1 01-1 = 0 p i a i b i Full Subtracter d i p i+1 prestito o borrow p i a i b i p i+1 d i p n 0 0 d n p n-1 p n-2 p 1 0 a n-1 a n-2 a 1 a 0 - b n-1 b n-2 b 1 b 0 d n-1 d n-2 d 1 d 0 se 1, la differenza è negativa 0 0 0 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 1 1 1
Moltiplicazione 0.0 = 0 0.1 = 0 1.0 = 0 1.1 = 1 P = Y.X = Y.(x n-1.2 n-1 + + x 1.2 1 +x 0.2 0 ) = (Y.x n-1 ).2 n-1 +...+(Y.x 1 ).2 1 +(Y.x 0 ).2 0 = P n-1.2 n-1 + +P 1.2 1 +P 0.2 0 P i = (Y.x i ) = (y n-1. x i ).2 n-1 + + (y 0. x i ).2 0
Moltiplicazione (shift and add) y 3 y 2 y 1 y 0 x 3 x 2 x 1 x 0 x 0 y 3 x 0 y 2 x 0 y 1 x 0 y 0 + x 1 y 3 x 1 y 2 x 1 y 1 x 1 y 0 0 + x 2 y 3 x 2 y 2 x 2 y 1 x 2 y 0 0 0 + x 3 y 3 x 3 y 2 x 3 y 1 x 3 y 0 0 0 0 + p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0
Rappresentazione dei numeri razionali Come coppia di interi (più un bit per il segno) i n i n-1... i 0 f 1 f 2... f n s i n i n-1... i 0 f 1 f 2... f n Notazione scientifica s m n m n-1... m 0 s e n e n-1... e 0