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