Testo di riferimento: [Congiu] - 2.4 (pagg. 37–57) Reti Logiche Combinatorie 00.b Analisi Minimizzazione booleana Sintesi Rete logica combinatoria: definizione Una rete logica combinatoria è una rete logica nella quale, in ogni istante, i valori presenti alle uscite sono determinati unicamente dai valori presenti agli ingressi nel medesimo istante. 2 34 Una rete logica combinatoria è quindi • priva di stato (non contiene elementi di memoria); • interamente descritta dalla sua tabella di verità Architettura degli Elaboratori © 2009 Primo esempio: il decodificatore 3/8 3 Un decodificatore è una rete combinatoria che attiva l’i-esima uscita se e solo se il valore binario codificato dagli ingressi è i 34 Tabella di verità per un decodificatore con 3 ingressi e 23=8 uscite: Architettura degli Elaboratori Decodificatore: realizzazione © 2009 4 34 Sono rappresentate solo le funzioni F0, F1 e F4. Le porte NOT sono rappresentate con circoletti “c”. Architettura degli Elaboratori © 2009 Porte logiche: notazione algebrica Nome Simbolo grafico Tabella di verità 5 Notazione algebrica AND Y = A·B OR Y = A+B NOT Y=A XOR Y = A⊕B Architettura degli Elaboratori 34 © 2009 Reti logiche: rappresentazioni 6 Quanto abbiamo visto per le porte logiche vale in generale per le reti logiche. In altre parole, sono tra loro equivalenti le tre rappresentazioni… 34 • …mediante uno schema grafico • …mediante una tabella di verità • …mediante una espressione algebrica Sceglieremo in ciascun caso la rappresentazione più opportuna per quel caso. Architettura degli Elaboratori © 2009 Funzione di equivalenza (1 di 3) 7 34 È possibile ottenere E attraverso la “somma di prodotti” E= A•B+A•B © 2009 Architettura degli Elaboratori Funzione di equivalenza (2 di 3) 8 34 ...è possibile ottenere E anche attraverso il “prodotto di somme” E= (A+B) •(A+B) Architettura degli Elaboratori © 2009 Funzione di equivalenza (3 di 3) 9 34 Diversi circuiti logici equivalenti che realizzano la stessa funzione logica © 2009 Architettura degli Elaboratori Algebra di Boole o booleana 10 34 L’analisi delle proprietà delle espressioni algebriche costruite da variabili binarie e operatori logici, si deve al matematico G. Boole (1815-1864), ed è nota come algebra booleana. S = B•(A•B) + A•(A•B) Architettura degli Elaboratori ? © 2009 Algebra di Boole: proprietà (1 di 2) A A·1 = A A·0 = 0 A·A = A A·A = 0 A=A A+0 = A A+1 = 1 A+A = A 11 34 A+A = 1 Proprietà commutativa, associativa e distributiva: A·B = B·A A+B = B+A A+(B+C) = (A+B)+C A·(B·C) = (A·B)·C A·(B+C) = A·B+A·C A+(B·C) = (A+B)·(A+C) Architettura degli Elaboratori Algebra di Boole: proprietà (2 di 2) A Legge di De Morgan: © 2009 12 34 A+B=A·B A·B=A+B Architettura degli Elaboratori © 2009 Sintesi di un half-adder (1 di 2) 13 34 S’ = A•B+A•B = A⊕B C’ = A•B Architettura degli Elaboratori © 2009 Sintesi di un half-adder (2 di 2) 14 Utilizziamo l’algebra booleana e le sue proprietà per riscrivere S’ utilizzando solo porte NAND: 34 S’ = A•B + A•B S’ = A•B • A•B S’ = (A•B+B•B) • (A•B+A•A) S’ = B•(A+B) • A•(A+B) S’ = B•(A•B) • A•(A•B) Architettura degli Elaboratori © 2009 Half-adder con sole porte NAND 15 S’ = B•(A•B) • A•(A•B) C’ = A•B 34 © 2009 Architettura degli Elaboratori Sintesi di un full-adder (1 di 2) 16 34 Half-Adder S = A•B•C” + A•B•C” + A•B•C” + A•B•C” S = (A•B + A•B)•C” + (A•B + A•B)•C” S’ = (A⊕B) S = (A⊕B)•C” + (A⊕B)•C” = (A⊕B) ⊕ C” C’ = A•B S = S’ ⊕ C” C = A•B•C” + A•B•C” + A•B•C” + A•B•C” C = (A•B + A•B)•C” + A•B•(C” + C”) = (A⊕B)•C” + A•B C = S’•C” + C’ Architettura degli Elaboratori © 2009 Sintesi di un full-adder (2 di 2) 17 34 S = S’ ⊕ C” C = S’•C” + C’ Architettura degli Elaboratori Full-adder con sole porte NAND C = S’•C” + C’ = S’•C” • C’ Architettura degli Elaboratori © 2009 18 34 © 2009 Sommatore binario da 4 bit 19 34 Architettura degli Elaboratori Sommatore binario da 16 bit © 2009 20 34 Architettura degli Elaboratori © 2009 Minimizzazione: Mappe di Karnaugh (1/7) Tra le proprietà dell’algebra di Boole, le seguenti consentono di semplificare notevolmente le espressioni booleane: 21 34 A•B + A•B = A•(B + B) = A A•(B•C + B•C + B•C + B•C) = A Le mappe di Karnaugh sono una particolare forma di tabella di verità, che consente di individuare immediatamente la possibilità di fare queste semplificazioni. © 2009 Architettura degli Elaboratori Minimizzazione: Mappe di Karnaugh (2/7) 22 Ad esempio, la seguente tabella di verità della funzione Y=Y(A,B,C) A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 Y 0 0 0 1 0 1 1 1 A B 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 1 1 1 può essere ridisegnata così: C 34 Mappa di Karnaugh della funzione Y Nelle mappe di K. i valori della funzione sono scritti dentro le caselle. Dalla tabella di verità o dalla mappa di Karnaugh è immediato ottenere l’espressione booleana della funzione Y come “somma” di “prodotti”, cioè come OR di tanti termini AND quante sono le caselle in cui la funzione vale 1; ciascuno di questi termini AND (detti minterm) è costituito dall’AND delle variabili di ingresso, negate oppure no a seconda che il valore della variabile associato a quella casella sia 0 oppure 1: Y = A•B•C + A•B•C + A•B•C + A•B•C Architettura degli Elaboratori © 2009 Minimizzazione: Mappe di Karnaugh (3/7) 23 Nel caso di funzioni di 4 variabili, ad es. Z=Z(A,B,C,D), la mappa di Karnaugh ha 4 righe e quattro colonne: A0 CD B 0 0 1 1 1 1 0 00 0 0 1 0 01 1 0 1 1 11 1 1 1 1 10 1 1 1 0 34 Mappa di Karnaugh della funzione Z I valori delle variabili A,B,C,D individuano le “coordinate” delle caselle: le coppie di valori di A e B (di C e D) associate alle colonne (alle righe) sono ordinate in modo che tra due caselle adiacenti (della medesima riga o della medesima colonna) cambi il valore di una sola delle variabili, mentre quello di tutte le altre rimane lo stesso; ciò vale anche tra le caselle estreme di ciascuna riga e di ciascuna colonna (che possono quindi essere considerate “adiacenti”, in senso circolare). Architettura degli Elaboratori © 2009 Minimizzazione: Mappe di Karnaugh (4/7) In questo modo a ciascuna coppia di caselle adiacenti contrassegnate con il valore 1 corrispondono, nella espressione booleana, due termini “prodotto” (minterm) nei quali una variabile è presente negata in uno e non negata nell’altro, mentre tutte le altre variabili hanno lo stesso valore. 24 34 E` allora possibile semplificare l’espressione sostituendo quei due termini con un unico termine nel quale non è più presente la variabile che cambia valore. Ad esempio le ultime due caselle della seconda riga nella mappa della funzione Y portano alla seguente semplificazione: A•B•C + A•B•C = A•C Architettura degli Elaboratori © 2009 Minimizzazione: Mappe di Karnaugh (5/7) Allo stesso modo, quaterne di caselle adiacenti tutte con il valore 1 (sulla stessa riga o sulla stessa colonna) corrispondono a quattro termini che si riducono ad uno; ad esempio le quattro caselle della terza riga nella mappa della funzione Z portano alla seguente semplificazione: 25 34 C•D•(A•B + A•B + A•B + A•B) = C•D le quattro caselle della terza colonna nella mappa della funzione Z portano alla seguente semplificazione: A•B•(C•D + C•D + C•D + C•D) = A•B Così pure quaterne adiacenti disposte secondo un quadrato producono un unico termine; ad esempio le quattro caselle in basso a sinistra nella mappa della funzione Z portano alla seguente semplificazione: A•C•(B•D + B•D + B•D + B•D) = A•C Analogo discorso vale per gruppi di otto caselle adiacenti tutte con il valore 1. © 2009 Architettura degli Elaboratori Minimizzazione: Mappe di Karnaugh (6/7) Per semplificare l’espressione di una funzione, si individuano, nella mappa di K., i gruppi di (2 o 4 o 8) caselle adiacenti con il valore 1. Spesso conviene sfruttare la proprietà A+A=A, che consente di utilizzare più volte la stessa casella (lo stesso minterm), per formare gruppi diversi e ottenere il maggior numero di semplificazioni possibile. Individuando un insieme di gruppi (da 1, 2, 4 o 8) che copra tutte le caselle in cui compare il valore 1, si ottiene una espressione semplificata, costituita dall’OR dei termini corrispondenti a ciascun gruppo. 26 34 Ad es. per la funzione Z, si possono individuare i gruppi segnati in figura: A0 CD B 0 0 1 1 1 1 0 00 0 0 1 0 01 1 0 1 1 11 1 1 1 1 10 1 1 1 0 A•C A•B B•D Si ottiene, immediatamente, l’espressione semplificata: Z=A•C+A•B+B•D Architettura degli Elaboratori © 2009 Minimizzazione: Mappe di Karnaugh (7/7) 27 Funzioni booleane parzialmente definite: il loro valore è specificato solo per alcune combinazioni dei valori delle variabili. Le altre combinazioni o non si verificano mai o il valore della funzione non interessa: don’t care conditions (d.c.c.). 34 In una mappa di K. è spesso utile inserire un valore 1 al posto di d.c.c. (per formare ulteriori raggruppamenti). Es. Funzione parzialmente definita W (i trattini individuano d.c.c.): A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 W 1 1 0 A 0 B 0 0 1 1 1 1 0 C 0 - - - 1 1 1 - 0 - 0 1 1 1 1 0 A 0 B 0 Si possono sostituire due d.c.c. con altrettanti 1: C 0 1 - - 1 1 1 - 0 1 si forma la quaterna con cui si ottiene l’espressione semplificata: W = B © 2009 Architettura degli Elaboratori Encoder 28 34 Y0 X0 0 X X2 X3 1 0 0 1 1 1 1 0 0 0 - 1 - 0 0 1 1 - - - X0 1 1 - - - - X1 1 0 0 - - - X2 Y0 = X1 + X3 Analogamente: Y1 = X2 + X3 Architettura degli Elaboratori Y0 Y1 X3 © 2009 Multiplexer 29 34 X0 X1 Y X7 0 1 2 3 4 5 6 7 DEC 3/8 C2 C1 C0 © 2009 Architettura degli Elaboratori Demultiplexer 30 34 Y0 Y1 Y2 X Y3 0 1 2 3 DEC 2/4 C1 C0 Architettura degli Elaboratori © 2009 Sintesi a due livelli 31 34 Sintesi come “somma di prodotti” Architettura degli Elaboratori Sintesi tramite PLA © 2009 32 PLA = “Programmable Logic Array” 34 Tipicamente, p < 2i Architettura degli Elaboratori © 2009 Sintesi tramite ROM (1 di 2) 33 34 Architettura degli Elaboratori Sintesi tramite ROM (2 di 2) © 2009 34 34 Architettura degli Elaboratori © 2009 Fine 00.b Reti logiche combinatorie