University of Padova Information Engineering Dept. – Microelectronics Lab. Corso di Laurea in Ingegneria dell’Informazione Elettronica Digitale - Lezione 2 - Andrea Gerosa - [email protected] Tel. 049-827-7728 Logica binaria e Porte logiche Variabili binarie Operatori logici Operatori logici fondamentali: sono le 3 funzioni logiche • AND, OR e NOT. Porte logiche Algebra di Boole Variabili binarie Valori • • • • True/False On/Off Yes/No 1/0 Esempi di variabili: • A, B, y, z, o X1 • RESET, START_IT, o ADD1 Operatori Logici fondamentali AND (·) OR (+) NOT ( ¯ ), (') o (~) AND 0·0=0 0·1=0 1·0=0 1·1=1 OR NOT 0+0=0 0+1=1 1+0=1 1+1=1 0=1 1=0 Tabella di verità Elenco dei valori di uscita di una funzione logica per ogni possibile combinazione degli ingressi binari • Funzione di N variabili binarie 2N righe X 0 0 1 1 AND Y Z = X·Y 0 0 1 0 0 0 1 1 X 0 0 1 1 Y 0 1 0 1 OR Z = X+Y 0 1 1 1 NOT X 0 1 Z=X 1 0 Regole di precedenza Precedenza degli operatori fondamentali in ordine decrescente: 1. Parentesi 2. NOT 3. AND 4. OR Esempio: F = A(B + C)(C + D) Porte Logiche Rappresentazione simbolica del circuito che realizza una funzione logica: Tempo o ritardo di propagazione La commutazione dell’uscita di una porta non può essere istantanea. Il ritardo tra la commutazione dell’ingresso(i) e la commutazione dell’uscita è il tempo o ritardo di propagazione) tp: 1 Input 0 1 Output 0 0 tp tp 0.5 1 tp = 0.3 ns 1.5 Time (ns) Circuiti logici Tabella di verità XYZ 000 001 010 011 100 101 110 111 F = X + Y Z 0 1 0 X 0 Y 1 1 Z 1 1 Equazione logica F = X +Y Z Circuito logico Tabella di verità, equazione (o espressione) logica e circuito logico descrivono la stessa funzione logica. La tabella di verità è unica; l’equazione e il circuito no. F Algebra di Boole Definisce in modo rigoroso l’algebra con cui operare sulle variabili logiche Definita da George Boole (filosofo) nel 1854 Codificata in 6 postulati da Huntington nel 1904 Ristretta all’algebra commutativa da Shannon nel 1938 2 Approcci: definizione rigorosa a partire da postulati o definizione regole a partire dagli operatori Algebra di Boole 1. 3. 5. 7. 9. X+0= X X+1 =1 X+X =X X+X =1 2. 4. 6. 8. X .1 =X X .0 =0 X .X = X X .X = 0 X=X 10. X + Y = Y + X 12. (X + Y) + Z = X + (Y + Z) 14. X(Y + Z) = XY + XZ 16. X + Y = X . Y 11. XY = YX Commutativa Associativa 13. (XY) Z = X(YZ) 15. X + YZ = (X + Y) (X + Z) Distributiva De Morgan 17. X . Y = X + Y Principio di Dualità Data una generica espressione booleana, si definisce espressione duale quella che si ottiene: 1. Cambiando tutti gli operatori AND in OR e viceversa 2. Cambiando tutti i valori “0” in “1” e viceversa Per il principio di dualità, se un’espressione è vera allora è vera anche la duale. Principio di dualità a b + c = a b + a c a + b c = a + b a + c a+b = 0 a b =1 e non a b = 0 Teoremi dell’algebra di Boole A + A·B = A (Assorbimento) A·(A+B)=A Dimostrazione A + A·B = A·1+A·B X=X·1 = A · ( 1 + B) X · Y + X · Z = X ·(Y + Z) =A·1 =A 1+X=1 X·1=X Teoremi dell’algebra di Boole Combinazione o semplificazione Teorema del consenso Teoremi dell’algebra di Boole Semplificazione di un’espressione Minimizzare il numero di letterali (variabili dirette o negate): A B + ACD + A BD + AC D + A BCD = AB + ABCD + A C D + A C D + A B D = AB + AB(CD) + A C (D + D) + A B D = AB + A C + A B D = B(A + AD) +AC = B (A + D) + A C 5 letterali Forme canoniche Tra le possibili espressioni logiche di una data funzione, ne identifichiamo 2 particolari: • Somma di mintermini – SOM (Sum of Minterms) • Prodotto di maxtermini – POM (Product of Maxterms) Mintermini - definizioni Data una funzione logica a N variabili: Termine prodotto: qualsiasi prodotto tra letterali Mintermine: termine prodotto che contiene tutte le N variabili (dirette o negate). Per ogni funzione di N variabili, esistono 2N mintermini. XY XY XY XY Maxtermini - definizioni Data una funzione logica a N variabili: Termine somma: qualsiasi somma tra letterali Maxtermine: termine somma che contiene tutte le N variabili (dirette o negate). Per ogni funzione di N variabili, esistono 2N maxtermini. X +Y X +Y X +Y X +Y Maxtermini e Mintermini Indici i Mint., mi Maxt., Mi 0 xy x+y 1 xy x+y 2 xy x+y 3 xy x+y L’indice i corrisponde alla riga della TdV a cui associamo mi e Mi Mintermini e TdV Variabile = 0 • appare negata nel mint. Variabile =1 • Appare diretta nel mint. Mintermini e TdV Un solo mint. vale “1” per ogni riga Una funzione logica può essere espressa come OR tra mintermini Somma di Mintermini F1 = m1 + m4 + m7 F1 = x y z + x y z + x y z x y z index m1 + m4 + m7 = F1 000 0 0 + 0 + 0 =0 001 1 1 + 0 + 0 =1 010 2 0 + 0 + 0 =0 011 3 0 + 0 + 0 =0 100 4 0 + 1 + 0 =1 101 5 0 + 0 + 0 =0 110 6 0 + 0 + 0 =0 111 7 0 + 0 + 1 =1 Maxtermini e TdV Variabile = 0 • appare diretta nel maxt. Variabile =1 • Appare negata nel maxt. Maxtermini e TdV Un solo maxt. vale “0” per ogni riga Una funzione logica può essere espressa come AND tra maxtermini Prodotto di Maxtermini F1 = M0 · M2 · M3 · M5 · M6 F1 = (x + y + z) ·(x + y + z)·(x + y + z ) ·(x + y + z )·(x + y + z) xyz 000 001 010 011 100 101 110 111 i 0 1 2 3 4 5 6 7 M0 M2 M 3 M5 M6 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 = F1 =0 =1 =0 =0 =1 =0 =0 =1 Somma canonica Qualsiasi funzione logica può essere espressa come Somma di Mintermini. f =x+x y f = x( y + y ) + x y f = xy + x y + x y Abbreviazioni F = m1+m4+m5+m6+m7 F( A, B, C) = m(1,4,5,6,7) F ( A, B, C ) :On set = m1 , m4 , m5 , m6 , m7 Prodotto canonico Qualsiasi funzione logica può essere espressa come Prodotto di Maxtermini. f ( x, y , z ) = x + x y x + x y = (x + x )(x + y ) = 1 (x + y ) = x + y x + y + z z = ( x + y + z ) x + y + z Conversione tra forme canoniche F ( x , y , z ) = m ( 1, 3 , 5 , 7 ) F( x, y, z) = PM(0, 2,4,6) F( x, y , z ) = m( 0, 2,4,6) F( x, y , z ) = PM(1, 3,5,7 ) Altre forme standard Somma di prodotti (SOP) Prodotto di somme (POS) ABC+ ABC+B (A + B) · (A+ B + C )· C Complessità circuitale Per ogni funzione esiste un’implementazione SOP come somma di tutti i mintermini • circuito logico 2 livelli tale che: • il primo livello è formato da una schiera di porte AND a N ingressi • il secondo livello consiste in una singola porta OR Spesso esistono altre forme SOP a cui corrispondono circuiti meno complessi Esempio F( A, B, C) = m(1,4,5,6,7) F = A B C + A B C + A B C + A B C + A B C 5 AND a 3 ingressi + 1 OR a 5 ingressi Può essere semplificata: F = BC + A Esempio A B C A B C A B C A B C A B C A B C F F Problema di minimizzazione Le forme canoniche e le altre realizzazioni a SOP o POS differiscono tra loro in termini di complessità • L’algebra di Boole è uno strumento per semplificare le espressioni logiche • Espressioni logiche più semplici corrispondono a implementazioni meno complesse Problemi • Definire un criterio di complessità minima • Esiste un’unica soluzione a minima complessità? • Necessitiamo di un metodo per individuare la soluzione minima Terms of Use All (or portions) of this material © 2008 by Pearson Education, Inc. Permission is given to incorporate this material or adaptations thereof into classroom presentations and handouts to instructors in courses adopting the latest edition of Logic and Computer Design Fundamentals as the course textbook. These materials or adaptations thereof are not to be sold or otherwise offered for consideration. This Terms of Use slide or page is to be included within the original materials or any adaptations thereof. Chapter 2 - Part 1 37