Corso di Calcolatori Elettronici I A.A. 2010-2011 Macchine combinatorie Lezione 10 Università degli Studi di Napoli Federico II Facoltà di Ingegneria
Analisi e Sintesi di un sistema 1/2 Per analisi di un sistema si intende l'individuazione delle relazioni di causa/effetto tra i segnali di ingresso e uscita, attraverso l'esame di una rappresentazione schematica dei suoi componenti elementari e dei collegamenti che li interconnettono, ovvero: data la rappresentazione schematica del sistema, individuarne il comportamento. Per sintesi di un sistema si intende l'individuazione dei componenti e delle interconnessioni necessarie per realizzarlo seguendo la preassegnata specifica funzionale: data la specifica funzionale individuarne la struttura.
Analisi e Sintesi di un sistema 2/2 Analisi Data la descrizione della STRUTTURA (come è fatta) Sintesi Data la descrizione del COMPORTAMENTO (cosa deve fare) Determinarne il COMPORTAMENTO (cosa fa) Determinarne la STRUTTURA (come è fatta)
Tassonomia dei circuiti digitali I circuiti digitali possono essere classificati in due categorie Circuiti combinatori Il valore delle uscite ad un determinato istante dipende unicamente dal valore degli ingressi in quello stesso istante. Circuiti sequenziali Il valore delle uscite in un determinato istante dipende sia dal valore degli ingressi in quell istante sia dal valore degli ingressi in istanti precedenti Per definire il comportamento di un circuito sequenziale è necessario tenere conto della storia passata degli ingressi del circuito La definizione di circuito sequenziale implica due concetti: Il concetto di tempo Il concetto di stato
Macchine combinatorie Reti logiche con n ingressi x 1, x 2,, x n e m uscite y 1, y 2,, y m che realizzano la corrispondenza: y 1 = f 1 (x 1, x 2,, x n )...... y m = f m (x 1, x 2,, x n ) x 1 y 1 x n y m
La macchina combinatoria: un esempio Il campanello 1 ingresso (il pulsante), con due possibili valori (premuto, rilasciato) 1 uscita (la suoneria), con due possibili valori (suono, nessun suono) x: pulsante y: suoneria Premuto Suono y = f(x) Rilasciato Nessun suono
Macchine combinatorie Ø Una macchina combinatoria è una rete logica con n ingressi (x 1, x 2,, x n ) ed m uscite (y 1, y 2,, y m ) ed è tale che ad ogni insieme di valori degli ingressi corrisponde un preciso insieme di valori delle uscite Ø Il comportamento di una rete combinatoria nxm può essere descritto tramite:» una tabella di verità in cui viene specificato il valore dell uscita per ognuna delle possibili combinazioni dei valori degli ingressi» m funzioni booleane, una per ogni uscita, ciascuna delle quali esprime il valore della corrispondente variabile di uscita in funzione delle n variabili di ingresso
I limiti delle macchine reali Tempo di risposta Una rete ideale reagisce istantaneamente ad ogni sollecitazione in ingresso, ovvero U(t)=ω (I(t)) In una rete reale la variazione dell uscita a fronte di una variazione degli ingressi avviene con un ritardo Δ (tempo di risposta): U(t+Δ)= ω(i(t)) I Δ a) U Ritardo puro I ω Δ U b)
Il Tempo di risposta Il Tempo di risposta di una macchina è il ritardo d=t f t i con il quale una variazione sull ingresso è seguita da una variazione sull uscita 1 0 1 0 X1 X2 y
Macchine combinatorie In una macchina combinatoria i valori delle uscite dipendono esclusivamente dai valori degli ingressi macchina combinatoria ideale: tale dipendenza è istantanea macchina combinatoria reale: presenza di ritardo tra l istante in cui c è una variazione in uno degli ingressi e l istante in cui l effetto di questa variazione si manifesta sulle uscite E importante notare come ciascuna y i può essere decomposta in funzioni componenti due distinte y i possono contenere una identica funzione componente Ciò comporta, ad esempio, una potenziale diminuzione di porte elementari rispetto ad una realizzazione indipendente delle y i
Decodificatore (decoder) 1 su m Un decodificatore è una macchina che riceve in ingresso una parola codice (C) su n bit e presenta in uscita la sua rappresentazione decodificata (linee U 0, U N-1 ) su m=2 n bit C o U 0 C n-1 U m-1
Decoder 1 su 4 Esempio: decoder 1:4 B A U 0 U 1 U 2 U 3 U 0 = B. A U 1 = B. A 1 2 3 4 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 U 2 = B. A U 3 = B. A A B
Composizione modulare di Decoder 4:16 1 C D A B DEC 2:4 U 0 U 1 U 2 U 3 DEC 2:4 DEC 2:4 DEC 2:4 DEC 2:4 U 0 U 1 U 2 U 3 U 0 U 1 U 2 U 3 U0 U 1 U 2 U 3 U 0 U 1 U 2 U 3 U 0 U 1 U 2 U 3 U 4 U 5 U 6 U 7 U 8 U 9 U 10 U 11 U 12 U 13 U 14 U 15
Encoder o codificatore Un codificatore riceve in ingresso una rappresentazione decodificata (linee x 0, x m-1 ) e fornisce in uscita una rappresentazione con un codice a lunghezza fissa di n bit L uscita è la parola codice associata a x i se x i =1 ed α=1 (abilitazione) Vincolo su ingressi: x i x j = 0 per i j x 0 x N-1 z o z m-1 α
Codificatore a 4 ingressi
z 3 = x 8 +x 9 Codificatore 8-4-2-1 z 2 = x 4 +x 5 + x 6 +x 7 z 1 = x 2 +x 3 + x 6 +x 7 z 0 = x 1 +x 3 + x 5 +x 7 +x 9 cifra Espressioni ottenute considerando opportunamente le configurazioni di ingresso dont care CODICE D 8-4-2-1 4-3-1-1 0 0000 0000 1 0001 0001 2 0010 0011 3 0011 0100 4 0100 1000 5 0101 0111 6 0110 1011 7 0111 1100 8 1000 1110 9 1001 1111
Arbitro di priorità q Un codificatore può essere preceduto da una rete a priorità che, in caso di più ingressi contemporaneamente alti, filtra quello con priorità assegnata maggiore Rete a priorità n ingressi X i n uscite corrispondenti F i, che rappresentano gli ingressi del codificatore fra gli ingressi è definita una priorità, ad esempio: per fissare le idee «X i è prioritario su X j se i < j» L'uscita Y i è alta se e solo se X i è alto e tutti gli altri ingressi prioritari su X i sono bassi. F F F 1 2 n = = = X X X 1 2 n X X 1 n 1 X 1
Arbitro di priorità a 4 ingressi
Multiplexer lineare Un Multiplexer lineare (ML) è una macchina con: n ingressi-dati (A 0,,A n-1 ) n segnali binari di selezione (α 0,, α n-1 ), dei quali al più uno è attivo una uscita-dati B, che assume valore A i se è attivo α i neutro se nessuna delle selezioni è attiva A 0 utilizzata quando più linee devono essere convogliate verso un unica linea di uscita (bus) A n-1 MUXL B α 0 α n-1
Multiplexer lineare - realizzazioni B = A 0 α 0 + A 1 α 1 +... + A n-1 α n-1, n=4 Realizzazione I Con porte AND e OR Realizzazione II A S Uscita 0 0 z 0 1 0 1 0 z 1 1 1 Con porte 3-state S=1, restituisce il valore di A S=0, restituisce un alta impedenza (apre il circuito)
Multiplexer (indirizzabile) Multiplexer Lineare i cui segnali di abilitazione sono collegati con le uscite di un decodificatore A 0 A N-1 MUX B α 0 α N-1 C
Demultiplexer lineare Un Demultiplexer Lineare è una macchina con: 1 ingresso-dati B n segnali binari di selezione (α 0,, α n-1 ), dei quali al più uno è attivo n uscite-dati (A 0,,A n-1 ), con A i =B se è attivo α i neutro se nessuna delle selezioni è attiva B DMUXL α 0 α n-1 A 0 A n-1
Demultiplexer (indirizzabile) Demultiplexer Lineare i cui segnali di abilitazione sono collegati con le uscite di un decodificatore A 0 B DEMUX A N-1 α 0 α N-1 C
Multiplexer binario Se i dati A i e B sono vettori di bit, che viaggiano su un bus si parla genericamente di multiplexer o demultiplexer A 0 A n-1 MUXL B Se i dati A i e B sono singoli bit si parla di multiplexer o demultiplexer binario A 0 A n-1 α 0 α n-1 MUXL B α 0 α n- 1
Muxl/Dmuxl: un esempio Supponiamo di avere un centralino telefonico in cui n utenti sorgente vogliono parlare con m utenti destinazione vincolo: l utente di destinazione abilitato deve sentire solo l utente sorgente abilitato A 0 A 1 MUXL DMUXL B 0 B 1 A n-1 0 1 0.. 0 0 0 0..0 1 Linee di sel. utente sorgente Linee di sel. utente destinaz. B m-1 L utente A 1 è abilitato a parlare con l utente B m-1
Half Adder r
Full Adder (1/2) r r
Full Adder (2/2) R = XYr + XYr + XY r + XYr = XY + Yr + Xr r
Full Adder con 2 Half Adder
Addizionatore binario E possibile isolare il fattore (a b) Rielaborando le precedenti espressioni è quindi possibile ottenere le seguenti espressioni per l addizionatore completo: S R = ( a b) r = H r = ab + r( a b) = G + rh
Addizionatore binario Pertanto, un addizionatore completo può essere ottenuto a partire da due semiaddizionatori: S = ( a b) r = H r R = a b + r ( a b) = G + r H a b HA G = a b H = a b R= G + H r r HA H r S = H r
Addizionatore binario: riporto Le diverse componenti dell espressione di R assumono un significato particolare: G = a b riporto generato : indica la creazione di un riporto all interno dell addizionatore binario P = H = a b riporto propagato : indica se, in presenza di un riporto in ingresso, lo stesso verrò propagato in uscita Il riporto in uscita può quindi essere espresso come R=G+Pr
Addizionatore binario Per il semiaddizionatore valgono le eguaglianze H = a b = d( a, b) = ab + ab G = a b Similmente per l addizionatore completo valgono le eguaglianze S = a b r = d( a, b, r) = abr + abr + abr + abr R = abr + abr + abr + abr = ab + br + ar = ab + r( a + b)
Addizionatori binari n i = r i non-riporto Indica assenza di riporto in ingresso K i = a i b i Riporto killed Indica che, indipendentemente dalla presenza di un riporto entrante, il riporto in uscita sarà comunque zero N i = K i + P i n i Propagazione del non-riporto Indica assenza di riporto in uscita
R i X i Y i S i Addizionatori seriali Usa un unico addizionatore operante sulla singola cifra Opera in momenti successivi su cifre diverse degli addendi Richiede un blocco con memoria E lento rispetto ad addizionatori che lavorano in parallelo sulle diverse cifre degli addendi r i Add - Δ mod - b
Addizionatore binario parallelo Opera sulle cifre degli addendi in parallelo anche se il riporto deve propagarsi attraverso l intera struttura Richiede un numero maggiore di risorse rispetto all addizionatore seriale X n - 1 Y n - 1 R n - 1 r 2 X 1 Y 1 X Y 0 0 r 1 R =c 0 Add - Add - Add - mod - b mod - b mod - b C= R n - 1 S n - 1 R n - 2 R 1 S 1 R 0 S 0
Addizionatore parallelo: tempo di risposta Gli addizionatori ottenuti collegando in cascata n addizionatori di cifra sono anche chiamati addizionatori a propagazione del riporto (carry-ripple o carry-propagate) ε = tempo di risposta di uno stadio Allo stadio i, il riporto uscente o è generato o è ucciso o è propagato Tempo di ritardo complessivo: Limite inferiore ε (in tutti gli stadi il riporto è generato o ucciso) Tempo di ritardo complessivo: Limite superiore nε (un riporto entrante nel primo stadio che è propagato in tutti gli stadi) Tempo di ritardo complessivo = kε (k n), dove k è la più lunga catena di condizioni di propagazione.
Porte di parola Porte con abilitazione: B=αA = α AND A Parola: Vettore di bit V = {v o, v 1,, v n } Porta di parola con abiitazione: α V = {α v o,, α v n } Porta generica di parola: A AND B = = {a 0 AND b 0,, a n AND b n }