Architettura degli Elaboratori Implementazione di funzioni booleane Giacomo Fiumara giacomo.fiumara@unime.it Anno Accademico 2012-2013 1 / 34
Introduzione /1 Ogni funzione booleana può essere implementata mediante funzioni logiche. Ad esempio, la funzione: A B C F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 può essere espressa nella forma: F = A B C + A B C + A B C che prende il nome di SOP (Sum Of Products) 2 / 34
Introduzione /2 È anche possibile considerare i valori nulli della funzione F Ad esempio: A B C F 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 0 può essere espressa nella forma: F = A B C A B C A B C A B C A B C 3 / 34
Introduzione /3 Infatti, la funzione: F = A B C A B C A B C A B C A B C Per la legge di De Morgan: diventa: XYZ = X + Y + Z F = (A+B +C) (A+B +C) (A+B +C) (A+B +C) (A+B +C) che prende il nome di POS (Product Of Sums) 4 / 34
Introduzione /4 A prescindere dalla forma (SOP oppure POS) bisogna considerare che: di solito è possibile derivare un espressione booleana più semplice della forma SOP o POS si può scegliere di realizzare la funzione con un solo tipo di porte logiche (per esempio, NAND o NOR) 5 / 34
Introduzione /5 La semplificazione può essere ottenuta mediante: manipolazioni algebriche mappe di Karnaugh mappe di Quine-McKluskey 6 / 34
Attenzione Nicolas Leonard Sadi Carnot (1796-1832) Fisico, matematico e ingegnere Pronuncia: Carnò 7 / 34
Attenzione /2 Maurice Karnaugh (1924) Ingegnere delle telecomunicazioni Pronuncia: Carno 8 / 34
Semplificazione per via algebrica L obiettivo è ottenere una funzione booleana che contenga meno elementi Mediante l applicazione delle seguenti proprietà e/o teoremi: 9 / 34
Mappe di Karnaugh /1 Funzioni di due variabili Rappresentano un metodo pratico per semplificare le funzioni booleane Nel caso di una funzione booleana di due variabili, bisogna considerare le 2 2 combinazioni che rappresentano i possibili valori delle due variabili La mappa di Karnaugh in questo semplice caso assume la forma: B 0 1 A 0 1 10 / 34
Mappe di Karnaugh /2 Funzioni di due variabili Si consideri la funzione: F = A B + A B Che si rappresenta con la seguente mappa di Karnaugh: A 0 1 B 0 1 1 1 11 / 34
Mappe di Karnaugh /3 Funzioni di due variabili In questo caso, la semplificazione algebrica è molto semplice: F = A B + A B = A (B + B) = A 1 = A Allo stesso risultato si giunge con la mappa di Karnaugh: A 0 1 B 0 1 1 1 Perchè la funzione semplificata si ottiene dalle variabili (in questo caso una sola) che non cambiano valore. 12 / 34
Mappe di Karnaugh /4 Funzioni di tre variabili Nel caso di funzioni di tre variabili, la mappa di Karnaugh assume la forma: B 0 1 AB 00 01 11 10 13 / 34
Mappe di Karnaugh /5 Funzioni di tre variabili Si consideri la funzione: F = A B C + A B C + A B C + A B C + A B C Cui corrisponde la mappa di Karnaugh: AB 00 01 11 10 C 0 1 1 1 1 1 1 14 / 34
Mappe di Karnaugh /6 Funzioni di tre variabili Nella funzione: F = A B C + A B C + A B C + A B C + A B C gli addendi: A B C + A B C corrispondono alle celle: AB 00 01 11 10 C 0 1 1 1 e si semplificano come segue: A B C + A B C = A C(B + B) = A C 15 / 34
Mappe di Karnaugh /7 Funzioni di tre variabili Nella funzione: F = A B C + A B C + A B C + A B C + A B C gli addendi: A B C + A B C corrispondono alle celle: AB 00 01 11 10 C 0 1 1 1 e si semplificano come segue: A B C + A B C = A B(C + C) = A B 16 / 34
Mappe di Karnaugh /8 Funzioni di tre variabili Nella funzione: F = A B C + A B C + A B C + A B C + A B C gli addendi: A B C + A B C corrispondono alle celle: AB 00 01 11 10 C 0 1 1 1 e si semplificano come segue: A B C + A B C = A B(C + C) = A B 17 / 34
Mappe di Karnaugh /9 Funzioni di tre variabili Riassumendo, la funzione: F = A B C + A B C + A B C + A B C + A B C si semplifica in: A C + A B + A B 18 / 34
Mappe di Karnaugh /9 Funzioni di quattro variabili Una funzione booleana di quattro variabili può essere rappresentata una mappa di 16 celle (4 4) Come per gli esempi precedenti, tutte le coppie di caselle adiacenti (che differiscono soltanto per una variabile), se presentano entrambe valore 1, possono essere fuse eliminando la variabile che compare con valore 0 in una cella e con valore 1 nella cella adiacente CD 00 01 11 10 AB 00 01 11 10 19 / 34
Mappe di Karnaugh /10 Funzioni di quattro variabili La funzione: F = A B C D + A B C D si semplifica in: A B C D + A B C D = A B D(C + C) = A B D CD AB 00 01 11 10 00 01 1 11 1 10 20 / 34
Mappe di Karnaugh /11 Funzioni di quattro variabili Le celle rappresentate nella seguente mappa sono adiacenti: CD AB 00 01 11 10 00 1 01 11 10 1 Infatti rappresentano la funzione: A B C D + A B C D = A B D 21 / 34
Mappe di Karnaugh /12 Funzioni di quattro variabili Anche le celle rappresentate nella seguente mappa sono adiacenti: CD AB 00 01 11 10 00 01 1 1 11 10 Infatti rappresentano la funzione: A B C D + A B C D = B C D 22 / 34
Mappe di Karnaugh /13 Funzioni di quattro variabili Si consideri la funzione: F = A B C D + A B C D + A B C D + A B C D Che può essere semplificata in: F = A C D + A C D = C D 23 / 34
Mappe di Karnaugh /14 Funzioni di quattro variabili La funzione: F = A B C D + A B C D + A B C D + A B C D Può essere semplificata anche mediante mappe di Karnaugh: 24 / 34
Mappe di Karnaugh /15 Funzioni di quattro variabili Il circuito digitale che implementa la funzione: F = A B C D + A B C D + A B C D + A B C D 25 / 34
Mappe di Karnaugh /16 Funzioni di quattro variabili Il circuito digitale che implementa la funzione semplificata è: F = A C D + A C D = C D 26 / 34
Mappe di Karnaugh /16 bis Funzioni di quattro variabili La funzione: F = A B C D + A B C D + A B C D + A B C D Può essere semplificata per via algebrica: F = B C D + B CD = B D 27 / 34
Mappe di Karnaugh /18 Funzioni di quattro variabili La funzione: F = A B C D + A B C D + A B C D + A B C D Può essere semplificata anche mediante mappe di Karnaugh: 28 / 34
Mappe di Karnaugh /19 Funzioni di quattro variabili Il circuito digitale che implementa la funzione: F = A B C D + A B C D + A B C D + A B C D 29 / 34
Mappe di Karnaugh /20 Funzioni di quattro variabili Il circuito digitale che implementa la funzione semplificata è: F = B C D + B CD = B D 30 / 34
Rappresentazione di circuiti logico-digitali Rappresentazione mediante un solo tipo di porte logiche /1 Dopo la semplificazione, un circuito logico-digitale può essere rappresentato mediante un solo tipo di porte logiche per esempio impiegando soltanto porte NAND oppure impiegando soltanto porte NOR 31 / 34
Rappresentazione di circuiti logico-digitali Rappresentazione mediante un solo tipo di porte logiche /2 Una volta scelta la tipologia di porta da impiegare bisogna sostituire tutte le porte presenti nel circuito con il circuito equivalente costituito dalle porte scelte e infine, se necessario, bisogna semplificare il circuito risultante. 32 / 34
Rappresentazione di circuiti logico-digitali Rappresentazione mediante un solo tipo di porte logiche /3 Le porte logiche AND, OR e NOT possono essere implementate mediante l impiego esclusivo di porte NAND: 33 / 34
Rappresentazione di circuiti logico-digitali Rappresentazione mediante un solo tipo di porte logiche /4 Le porte logiche AND, OR e NOT possono essere implementate mediante l impiego esclusivo di porte NOR: 34 / 34