Fondamenti di Informatica B Lezione n.3 Fondamenti di Informatica B Lezione n.3 Forme canoniche Q Trasformazioni Q Esercizi Q In questa lezione verranno considerate le proprietà dell'algebra booleana che saranno poi utili per l'analisi e la progettazione di circuiti a livello logico Introdurremo poi le tecniche per trasformare la rappresentazione algebrica di un problema nella rappresentazione circuitale Lez.3 - Algebra di Boole Fondamenti di Informatica B 2 Forme canoniche Q Un minterm è un’espressione prodotto che contiene in modo affermato o negato tutte le variabili della funzione – es: in una funzione di tre variabili {x1, x2, x3} sono minterm le seguenti espressioni: x1 • x2 • x3 x1 • x2 • x3 – mentre non sono minterm: x1 • x2 Lez.3 - Algebra di Boole x1 • x3 Fondamenti di Informatica B 3 Forme canoniche Q Un maxterm è un’espressione somma che contiene in modo affermato o negato tutte le variabili della funzione – es: in una funzione di tre variabili {x1, x2, x3} sono maxterm espressioni quali: x1 + x2 + x3 x1 + x2 + x3 – mentre non lo sono: x1 + x2 Lez.3 - Algebra di Boole x1 + x3 Fondamenti di Informatica B 4 Forme canoniche Q Si dicono forme canoniche le somme di minterm (SdP) e i prodotti di maxterm (PdS) – esempi di forme canoniche: Lez.3 - Algebra di Boole Q SdP: (x1 • x2 • x3 ) + (x1 • x2 • x3 ) Q PdS: (x1 + x2 + x3 ) (x1 + x2 + x3 ) Fondamenti di Informatica B 5 La somma di numeri binari Q Si consideri la somma tra: riporto 1 1 1 addendo 1 0 1 1+ addendo 0 1 1 1= somma 10010 S0 e C1 sono funzioni booleane nelle variabili {x0, y0, C0} Lez.3 - Algebra di Boole Fondamenti di Informatica B x0 0 0 0 0 1 1 1 1 y0 0 0 1 1 0 0 1 1 C0 0 1 0 1 0 1 0 1 S0 0 1 1 0 1 0 0 1 C1 0 0 0 1 0 1 1 1 6 La somma di numeri binari Q Per sommare due numeri binari è quindi necessario sintetizzare due funzioni: – S0(x0, y0, C0) – C1(x0, y0, C0) Q Per sintetizzare una funzione è possibile ricorrere a: – somma di minterm (forma SdP) – prodotto di maxterm (forma PdS) Lez.3 - Algebra di Boole Fondamenti di Informatica B 7 La somma di numeri binari Q Esempio: sintetizzare la funzione C1 – Selezionare gli 1 della funzione – a ciascuno di essi corrisponde un minterm C1 = x0 y0 C0 + x 0 y0 C0 + x0 y0 C0 + x0 y0 C0 Una somma di minterm rappresenta direttamente tutti gli 1 di una funzione Lez.3 - Algebra di Boole Fondamenti di Informatica B x0 y0 C0 S0 C1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 8 La somma di numeri binari Q Esempio: sintetizzare la funzione C1 – Selezionare gli 0 della funzione – a ciascuno di essi corrisponde un maxterm C1 = ³(x0 + y0 + C0 )´• x0 + y0 + C0 (x0 + y0 + C0 ) ( x 0 + y0 + C 0 ) Un prodotto di maxterm rappresenta direttamente tutti gli 0 di una funzione Lez.3 - Algebra di Boole Fondamenti di Informatica B • • x0 y0 C0 S0 C1 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 9 Forme canoniche Q Una qualunque funzione f(x1, x2, …, xn) può essere espressa univocamente da una forma canonica costituita da: – somma di minterm: f (x1 , x2 , . . . , xn ) = P i (xi,1 • xi,2 • · · · • xi,n ) – prodotto di maxterm: f (x1 , x2 , . . . , xn ) = Lez.3 - Algebra di Boole Q i (xi,1 + xi,2 + · · · + xi,n ) Fondamenti di Informatica B 10 Logica a due livelli Q Qualunque espressione del tipo prodotto di somme (PdS) può essere implementata mediante un circuito a due livelli di logica – es: U = (A + B)(A + B + C ) A B U C Lez.3 - Algebra di Boole Fondamenti di Informatica B 11 Logica a due livelli Q Qualunque espressione del tipo somma di prodotti (SdP) può essere implementata mediante un circuito a due livelli di logica – es: U = (A • B) + (A • B • C ) A B U C Lez.3 - Algebra di Boole Fondamenti di Informatica B 12 Logica a due livelli Q Anche le funzioni S0 e C1 possono essere sintetizzate con due livelli di logica x0 y0 C0 S0 C1 C1(SP ) = x0 y0 C0 + x0 y0 C0 + x0 y0 C0 + x0 y0 C0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 S0(P S) = (x0 + y0 + C0 )(x0 + y0 + C0 ) • 1 1 1 1 1 (x0 + y0 + C0 )(x0 + y0 + C0 ) Lez.3 - Algebra di Boole C1(P S) = (x0 + y0 + C0 )(x0 + y0 + C0 ) • (x0 + y0 + C0 )( x0 + y0 + C0 ) S0(SP ) = x0 y0 C0 + x0 y0 C0 + x0 y0 C0 + x0 y0 C0 Fondamenti di Informatica B 13 Full adder Q Q ••• Un circuito che implementa le funzioni S0 e C1 è detto Full Adder (FA) o sommatore completo Connettendo più FA assieme è possibile realizzare un circuito che somma numeri binari di lunghezza qualsiasi xi yi Ci FA Si Ci+1 x3 y3 C3 x2 y2 C2 x1 y1 C1 x0 y0 0 FA FA FA FA S3 Lez.3 - Algebra di Boole C4 S2 C3 S1 Fondamenti di Informatica B C2 S0 C1 14 Negazione logica Un cerchio all’ingresso o all’uscita di una porta logica significa negazione Q I nuovi simboli così costruiti possono essere utilizzati per rappresentare funzioni booleane anche complesse Q – es: U = A + B Lez.3 - Algebra di Boole Fondamenti di Informatica B 15 Equivalenze Q Il Teorema di De Morgan afferma che: A•B = A + B che corrisponde all’equivalenza circuitale: Le relazioni di equivalenza dell’algebra booleana si riflettono, a livello circuitale, in relazioni di equivalenza fra moduli logici Lez.3 - Algebra di Boole Fondamenti di Informatica B 16 Equivalenze Q E’ possibile effettuare trasformazioni circuitali basate su proprietà logiche: A+B = A • B A•B = A + B A+B = A • B La stessa funzione logica può essere rappresentata da circuiti diversi Lez.3 - Algebra di Boole Fondamenti di Informatica B 17 Trasformazioni circuitali Q Funzione ex-or realizzata con un circuito a due livelli di logica A B U 0 0 0 AB 0 1 1 AB 1 0 1 1 1 0 Lez.3 - Algebra di Boole A B A B Fondamenti di Informatica B 18 Trasformazioni circuitali Q Q Aggiungendo due negazioni all’inizio e alla fine della linea di un segnale, la funzione sintetizzata non cambia Sfruttando una delle equivalenze logiche, è possibile ottenere la stessa funzione con sole porte NAND “push the bubble” A + B = A•B Lez.3 - Algebra di Boole Fondamenti di Informatica B 19 Trasformazioni circuitali Q Trasformazioni analoghe alla precedente possono essere applicate in casi più complessi: ABC + DEF = (A + B + C)(D + E + F ) = Q ABC • DEF A+B+C + D+E+F E’ possibile sintetizzare qualunque funzione rappresentata come SdP o PdS utilizzando solo porte NAND o solo porte NOR – sia le porte NAND che le porte NOR sono insiemi completi Lez.3 - Algebra di Boole Fondamenti di Informatica B 20 Realizzazione circuitale di un FA x0 y0 C1 FA Q Circuito a due livelli (SdP) che sintetizza le funzioni logiche necessarie per realizzare un FA: S0(SP ) = x0 y0 C0 + x0 y0 C0 + x0 y0 C0 + x0 y0 C0 C1(SP ) = x0 y0 C0 + x0 y0 C0 + x0 y0 C0 + x0 y0 C0 Lez.3 - Algebra di Boole Fondamenti di Informatica B 21 Esercizi Q Verificare la seguente identità: AB + AC + BC = AB + A C Dimostrazione: AB + AC + BC = AB + A C + BC(A + A ) = AB + ABC + AC + A BC = AB(1 + C) + AC(1 + B) Q Altre tecniche: = AB + AC – confronto delle tabelle della verità – diagrammi di Venn – confronto delle forme canoniche Lez.3 - Algebra di Boole Fondamenti di Informatica B 22 Esercizi Q Verifica dell’equivalenza con i diagrammi di Venn: AB+AC+BC AC+AB C A AB Lez.3 - Algebra di Boole AC C A AB B Fondamenti di Informatica B B AC BC 23 Esercizi Q Semplificare il seguente circuito: A C B U B U = B C (C + C A) + (A + C )( AB + A C) Lez.3 - Algebra di Boole Fondamenti di Informatica B 24 Esercizi Q U Occorre semplificare la relazione: = B C ( C + AC ) + ( A + C )(A B + AC) = B C + (A + C )(A B + AC) = B C + (A + C )A (B + C) = B C + (A + A C )(B + C) = B C + A(1 + C )(B + C) = B C + A(B + C) B C A Lez.3 - Algebra di Boole Fondamenti di Informatica B U 25