Fondamenti di Informatica II Ingegneria Informatica e Biomedica I anno, II semestre A.A. 2005/2006 Algebra di Boole Prof. Mario Cannataro Università degli Studi “Magna Graecia” di Catanzaro Algebra Booleana :Introduzione Tutti i dispositivi elettronici correntemente usati si basano sull’elaborazione di valori discreti di grandezze elettriche espressi da numeri binari. Il modello teorico di rappresentazione è rappresentato dall’algebra di BOOLE, che a sua volta è basata sulla logica classica. Fondamenti Informatica II - Lez. 01 22.03.2006 2 Funzioni booleane (1/2) Definizione di funzione booleana Una funzione z = f(x1, x2, … , xn) si dice booleana se: z ∈ {0,1} xi =1...n ∈ {0,1} Essendo funzioni discrete, le funzioni booleane possono essere rappresentate in forma tabellare. Fondamenti Informatica II - Lez. 01 22.03.2006 3 Funzioni booleane (2/2) Obiettivo: Esprimere una generica funzione f come combinazione di operatori elementari. Fondamenti Informatica II - Lez. 01 22.03.2006 4 Algebra Booleana: Definizione Dominio: NUMERI BINARI (COSTANTI E VARIABILI) Operazioni Binarie :AND,OR,XOR,NAND,NOR. Unarie :NOT. Funzioni f : {0,1} → {0,1} n Fondamenti Informatica II - Lez. 01 22.03.2006 5 Alcuni esempi di funzioni booleane NOT OR AND x1 f(x1) x1 x2 f(x1, x2) x1 x2 f(x1, x2) 0 1 0 0 0 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 Fondamenti Informatica II - Lez. 01 22.03.2006 6 Funzioni standard e simboli circuitali Fondamenti Informatica II - Lez. 01 22.03.2006 7 Proprietà dell’algebra Booleana Legge AND OR Indentità 1*A=A 0+A=A Elemento Nullo 0*A=0 1+A=1 Idempotenza A*A=A A+A=A Inverso A*¬A=0 A + ¬ A =1 Commutativa A*B=B*A A+B=B+A Associativa (A * B) * C = A * (B * C) (A + B)+ C = A + (B + C) Distributiva A +(B*C) = (A+B) * (A+C) A *( B+C) = (A*B) + (A*C) Assorbimento A * (A + B)= A A+A*B=A DeMorgan ¬ (A * B)= ¬ A + ¬ B ¬ (A + B)= ¬ A * ¬ B Fondamenti Informatica II - Lez. 01 22.03.2006 8 Teorema di De Morgan Ad Esempio la somma di due variabili può essere trasformata in prodotto come segue ¬ (A + B)= ¬ A * ¬ B Oppure il prodotto può essere trasformato in somma: ¬ (A * B)= ¬ A + ¬ B Fondamenti Informatica II - Lez. 01 22.03.2006 9 Rappresentazione tabellare di una funzione booleana x1 x2 x3 z Numero d’ordine Variabili d’ingresso Uscita 0 1 2 3 4 5 6 7 x1 x 2 x3 000 001 010 011 100 101 110 111 z 1 1 0 0 0 1 0 1 Fondamenti Informatica II - Lez. 01 22.03.2006 10 Definizione di mintermine e maxtermine Un mintermine pi è una funzione che vale 1 in corrispondenza della sola configurazione i di valori delle variabili Un maxtermine si è una funzione che vale 0 in corrispondenza della sola configurazione i di valori delle variabili Fondamenti Informatica II - Lez. 01 22.03.2006 11 Ancora sui mintermini ed i maxtermini Un mintermine pi può essere rappresentato da un’espressione algebrica consistente nell’AND di tutte le variabili, dove ogni variabile compare diretta se vale 1 nella configurazione i, negata altrimenti Un maxtermine si può essere rappresentato da un’espressione algebrica consistente nell’OR di tutte le variabili, dove ogni variabile compare negata se vale 1 nella configurazione i, diretta altrimenti Fondamenti Informatica II - Lez. 01 22.03.2006 12 Esempi di mintermini e maxtermini Numero d’ordine Variabili d’ingresso Uscita Mintermini (1) Maxtermini (0) x1 x2 x3 z p0 p1 p5 p7 s2 s3 s4 s6 0 000 1 1 0 0 0 1 1 1 1 1 001 1 0 1 0 0 1 1 1 1 2 010 0 0 0 0 0 0 1 1 1 p5 = x1 ⋅ x2 ⋅ x3 3 011 0 0 0 0 0 1 0 1 1 p7 = x1 ⋅ x2 ⋅ x3 4 100 0 0 0 0 0 1 1 0 1 5 101 1 0 0 1 0 1 1 1 1 s2 = x1 + x2 + x3 6 110 0 0 0 0 0 1 1 1 0 7 111 1 0 0 0 1 1 1 1 1 p0 = x1 ⋅ x2 ⋅ x3 p1 = x1 ⋅ x2 ⋅ x3 s3 = x1 + x2 + x3 s4 = x1 + x2 + x3 s6 = x1 + x2 + x3 Fondamenti Informatica II - Lez. 01 22.03.2006 13 I e II forma canonica di una funzione La I forma canonica di una funzione f è l’OR di tutti i mintermini pi per le configurazioni i dove f = 1. Tale forma è anche detta forma SP (somma di prodotti) La II forma canonica di una funzione f è l’AND di tutti i maxtermini si per le configurazioni i dove f = 0. Tale forma è anche detta forma PS (prodotto di somme) Fondamenti Informatica II - Lez. 01 22.03.2006 14 Esempio pratico Se richiamiamo i mintermini ed i maxtermini dell’esempio precedente: p0 = x1 ⋅ x2 ⋅ x3 p1 = x1 ⋅ x2 ⋅ x3 p5 = x1 ⋅ x2 ⋅ x3 p7 = x1 ⋅ x2 ⋅ x3 s2 = x1 + x2 + x3 s3 = x1 + x2 + x3 s4 = x1 + x2 + x3 z = p0 + p1 + p5 + p7 = x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 + + x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 z = s2 ⋅ s3 ⋅ s4 ⋅ s6 = ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 ) ⋅ ⋅ ( x1 + x2 + x3 ) ⋅ ( x1 + x2 + x3 ) z = p0 + p1 + p5 + p7 = ∑3 (0,1,5,7) z = s2 ⋅ s3 ⋅ s4 ⋅ s6 = ∏3 (2,3,4,6) s6 = x1 + x2 + x3 Fondamenti Informatica II - Lez. 01 22.03.2006 15 Riduzione algebrica di funzioni Utilizzando le proprietà dell’algebra in modo opportuno è possibile semplificare le forme canoniche di una funzione. Nell’esempio precedente: z = p0 + p1 + p5 + p7 = x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 + + x1 ⋅ x2 ⋅ x3 + x1 ⋅ x2 ⋅ x3 = x1 ⋅ x2 ( x3 + x3 ) + + x1 ⋅ ( x2 + x2 ) ⋅ x3 = x1 ⋅ x2 + x1 ⋅ x3 Fondamenti Informatica II - Lez. 01 22.03.2006 16 Completezza funzionale L’esistenza delle forme canoniche è una dimostrazione che le funzioni AND, OR e NOT costituiscono un insieme funzionalmente completo, ovvero ciascuna funzione può essere scritta in una forma algebrica utilizzando solo questi tre operatori. Osservando poi che: x1 + x2 = ( x1 ⋅ x2 ) Si può concludere che anche AND e NOT sono un insieme funzionalmente completo. Le uniche porte logiche che costituiscono da sole un insieme funzionalmente completo sono le porte NAND e NOR Fondamenti Informatica II - Lez. 01 22.03.2006 17 Schema Completo Z= (¬X1* ¬X2* ¬ X3) + + (¬X1* ¬X2 * X3) + + ( X1* ¬X2 * X3) + + ( X1 * X2 * X3) Fondamenti Informatica II - Lez. 01 22.03.2006 18 Prima Semplificazione Z= ¬X1 * ¬X2 (¬ X3 + X3) + + X1 * X3 (¬X2 + X2) Fondamenti Informatica II - Lez. 01 22.03.2006 19 Ultima semplificazione Z= ¬X1* ¬X2 + X1 * X3 Fondamenti Informatica II - Lez. 01 22.03.2006 20 Schema completo Prima Semplificazione Ultima semplificazione Fondamenti Informatica II - Lez. 01 22.03.2006 21