Testo di riferimento: [Congiu] - 2.4 (pagg. 37 57) Reti Logiche Combinatorie 00.b Analisi Minimizzazione booleana Sintesi Rete logica combinatoria: definizione 2 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. Una rete logica combinatoria è quindi priva di stato (non contiene elementi di memoria); interamente descritta dalla sua tabella di verità
Primo esempio: il decodificatore 3/8 Un decodificatore èuna rete combinatoria che attiva l i-esima uscita se e solo se il valore binario codificato dagli ingressi è i 3 Tabella di verità per un decodificatore con 3 ingressi e 2 3 =8 uscite: Decodificatore: realizzazione 4 Sono rappresentate solo le funzioni F 0, F 1 e F 4. Le porte NOT sono rappresentate con circoletti.
Porte logiche: notazione algebrica 5 Nome Simbolo grafico Tabella di verità Notazione algebrica AND Y = A B OR Y = A+B NOT Y = A XOR Y = A B Reti logiche: rappresentazioni Quanto abbiamo visto per le porte logiche vale in generale per le reti logiche. In altre parole, sono tra loro equivalenti le tre rappresentazioni 6 mediante uno schema grafico mediante una tabella di verità mediante una espressione algebrica Sceglieremo in ciascun caso la rappresentazione più opportuna per quel caso.
Funzione di equivalenza (1 di 3) 7 È possibile ottenere E attraverso la somma di prodotti E= A B+A B Funzione di equivalenza (2 di 3) 8...è possibile ottenere E anche attraverso il prodotto di somme E= (A+B) (A+B)
Funzione di equivalenza (3 di 3) 9 Diversi circuiti logici equivalenti che realizzano la stessa funzione logica Algebra di Boole o booleana 10 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)?
Algebra di Boole: : proprietà (1 di 2) 11 A A 1 = A A 0 = 0 A A = A A A = 0 A = A A+0 = A A+1 = 1 A+A = A 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 Algebra di Boole: : proprietà (2 di 2) 12 A Legge di De Morgan: A + B = A B A B = A + B
Sintesi di un half-adder adder (1 di 2) 13 S = A B+A B = A B C = A B Sintesi di un half-adder adder (2 di 2) Utilizziamo l algebra booleana e le sue proprietà per riscrivere S utilizzando solo porte NAND: 14 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)
Half-adder adder con sole porte NAND 15 S = B (A B) A (A B) C = A B Sintesi di un full-adder (1 di 2) 16 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
Sintesi di un full-adder (2 di 2) 17 S = S C C = S C + C Full-adder con sole porte NAND 18 C = S C + C = S C C
Sommatore binario da 4 bit 19 Sommatore binario da 16 bit 20
Minimizzazione: Mappe di Karnaugh (1/7) 21 Tra le proprietà dell algebra di Boole, le seguenti consentono di semplificare notevolmente le espressioni booleane: 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. Minimizzazione: Mappe di Karnaugh (2/7) 22 Ad esempio, la seguente tabella di verità della funzione Y=Y(A,B,C) A B C Y A 0 0 1 1 0 0 0 0 B 0 1 1 0 0 0 1 0 può essere ridisegnata così: C 0 1 0 0 0 0 0 1 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 1 Mappa di Karnaugh della funzione Y 1 1 1 1 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
Minimizzazione: Mappe di Karnaugh (3/7) 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: CD A B 0 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 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). 23 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. 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 24
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: 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. 25 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. Ad es. per la funzione Z, si possono individuare i gruppi segnati in figura: CD A B 0 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 26 A C A B B D Si ottiene, immediatamente, l espressione semplificata: Z=A C+A B+B D
Minimizzazione: Mappe di Karnaugh (7/7) 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.). 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 B C W A 0 0 1 1 0 0 0 - B 0 1 1 0 0 0 1 1 C 0 1 0-0 - - - 1 0 1 1-1 0 0 1 1 1-0 - 1 0 1-1 1 0-1 1 1 0 A 0 0 1 1 Si possono sostituire due B 0 1 1 0 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 27 Encoder 28 Y 0 X 0 0 0 1 1 X 2 X 3 X 1 0 1 1 0 0 0-1 - 0 0 1 1 - - - 1 1 - - - - X 0 X 1 Y 0 1 0 0 - - - X 2 Y 0 = X 1 + X 3 Analogamente: Y 1 = X 2 + X 3 X 3 Y 1
Multiplexer 29 X 0 X 1 Y X 7 0 1 2 3 4 5 6 7 DEC 3/8 C 2 C 1 C 0 Demultiplexer 30 Y 0 Y 1 X Y 2 Y 3 0 1 2 3 DEC 2/4 C 1 C 0
Sintesi a due livelli 31 Sintesi come somma di prodotti Sintesi tramite PLA PLA = Programmable Logic Array 32 Tipicamente, p < 2 i
Sintesi tramite ROM (1 di 2) 33 Sintesi tramite ROM (2 di 2)
Fine 00.b Reti logiche combinatorie