Lezione 5 La logica booleana Sommario ? I principi della logica booleana ? Gli operatori logici 1 Variabili Booleane ? Variabile booleana=quantità che può assumere solo due valori ? I due valori hanno il significato di: vero o falso ? Per convenzione si rappresentano come: ? Vero=1 ? Falso=0 Logica Booleana ? Logica di Boole o Logica Booleana è la teoria che tratta la manipolazione di variabili booleane ? L’aritmetica è la teoria che tratta la manipolazione dei numeri ? La Logica Booleana fa uso di alcuni operatori ? In aritmetica gli operatori sono ad esempio: + - ? La combinazione degli operatori e delle variabili permette di definire le funzioni booleane 2 Le funzioni Booleane ? Le funzioni booleane sono caratterizzate da una o più variabile di ingresso e una variabile di uscita ? In aritmetica una funzione ha il seguente aspetto: z=3 x + 2 y dove x e y sono variabili di ingresso e z è la variabile di uscita ? Le variabili di ingresso sono dette indipendenti, cioè possono assumere liberamente qualsiasi valore ? La variabile di uscita è detta dipendente, cioè una volta stabilito il valore assunto dalle variabili di ingresso, è obbligata ad assumere un valore Rappresentazione degli operatori della logica booleana ? Esistono due modi per rappresentare gli operatori booleani: ? rappresentazione algebrica ? rappresentazione circuitale ? Rappresentazione Algebrica: per rappresentare gli operatori si utilizzano dei simboli ? Rappresentazione Circuitale: è una rappresentazione grafica dove gli operatori sono rappresentati mediante porte collegate da segmenti 3 Esempi di rappresentazioni ? Funzione in rappresentazione algebrica: U=((X.Y)+X.Z) ? Y ? Funzione in rappresentazione circuitale: X Y Z U DIREZIONE DEL SEGNALE Rappresentazione Circuitale ? Nella rappresentazione circuitale il valore delle variabili è un segnale ? Un segnale è qualcosa (attività elettrica) che può essere presente o assente ? Per convenzione se presente è identificato con il valore 1 se assente con il valore 0 ? Il segnale può fluire in una unica direzione ? Si può pensare alle porte logiche come a piccoli dispositivi che prendono in ingresso un segnale e restituiscono in uscita un segnale trasformato 4 Tabella della verità ? Una funzione booleana può essere rappresentata in modo esaustivo (ma non compatto) tramite una tabella della verità ? la tabella contiene ? una colonna per ogni variabile di ingresso ? una colonna per ogni variabile di uscita ? una riga per ogni combinazione delle variabili di ingresso ? tante righe quante sono tutte le possibili combinazioni di di valori che gli ingressi possono assumere ? in corrsipondenza dei valori di ingresso è riportato il valore assunto dalla variabile di uscita Esempio di tabella di verità ? Funzione in rappresentazione algebrica: U=((X.Y)+X.Z) ? Y ? Funzione in rappresentazione tabellare: X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 U 0 0 1 1 1 0 0 0 5 Esempio di rappresentazione tabellare in aritmetica ? Funzione in rappresentazione algebrica: Y=1+2X ? Funzione in rappresentazione tabellare: X 0 1 2 3 Y 1 3 5 7 Operatori booleani ? Gli operatori sono: ? NOT: inversione ? AND : e ? OR: o ? EXOR o XOR: uno dei due 6 NOT ? L’operatore NOT restituisce l’opposto del valore della variabile di ingresso ? Tabella ? Circuito X 0 1 U 1 0 X U ? Algebra: U=X AND ? L’operatore AND si applica a due variabili di ingresso. Ritorna 1 solo se entrambe sono 1. ? Tabella X 0 0 1 1 ? Circuito X Y 0 1 0 1 U 0 0 0 1 U Y ? Algebra: U=X • Y 7 OR ? L’operatore OR si applica a due variabili di ingresso. Restituisce 0 solo se entrambe sono 0. ? Tabella X 0 0 1 1 ? Circuito Y 0 1 0 1 U 0 1 1 1 X U Y ? Algebra: U=X+Y EXOR ? L’operatore EXOR o XOR si applica a due variabili di ingresso. Restituisce 1 solo se solo una delle due è 1. ? Tabella X 0 0 1 1 ? Circuito X Y 0 1 0 1 U 0 1 1 0 U Y ? Algebra: U=X Y 8 Un operatore + l’operatore NOT ? Si può rappresentare la successione di un operatore AND, OR, XOR e l’operatore NOT in modo compatto con: X U Y X U Y X U Y Esempio ? Ad una festa in maschera il padrone di casa costruisce un rilevatore automatico di costume per determinare quali persone ammettere. ? La regola è la seguente: ? le persone devono avere baffi finti e occhiali ? inoltre devono avere o scarpe da pagliaccio o cappello da pirata ? oppure devono avere un vestito in maschera completo ? ma non è ammesso chi ha un cane ? Un custode preme i tasti di un circuito e in risposta ottiene/non attiene un segnale se la persona è ammessa/non ammessa 9 Esempio... ? La prima condizione è che debbano avere sia baffi finti che occhiali Baffi Ok Occhiali Esempio... ? Inoltre è necessario avere anche scarpe da pagliaccio o cappello da pirata Baffi Occhiali Ok Scarpe Cappello 10 Esempio... ? Chi ha un qualsiasi vestito completo può entrare indipendentemente dalle altre condizioni,... Baffi Occhiali Scarpe Cappello Ok Vestito Esempio. ? …ma chi ha un cane non può assolutamente entrare Baffi Occhiali Scarpe Cappello Vestito Ok Cane 11 Esempio ? Circuito con interruttori e lampadina: ? Se un interrutore A è aperto allora la corrente non può passare, non c’e’ segnale, A=0 ? Se un interruttore A è chiuso allora la corrente passa, c’è segnale, A=1 A OR B A B AND A B A B Esercizio ? Dato un circuito elettrico per l’accensione di una lampadina determinare la funzione booleana che dà le condizioni per cui la lampadina è accesa. 12 Passare dalla Tavola della Verità alla Funzione Algebrica ? Data una tavola della verità si può ricavare la funzione booleana nel seguente modo: ? Si consideri solo le righe della tavola per le quali la variabile di uscita è vera ? Infatti vogliamo scrivere le condizioni che rendono vera la funzione. Necessariamente qualsiasi combinazione di valori delle variabili in ingresso che non rendono vera la funzione la rendono falsa. ? Una riga corrisponde a porre in AND i valori di tutte le variabili ? Considerare due o più righe corrisponde a porre in OR le espressioni trovate per le righe Esempio ? Data la seguente tavola della verità: X 0 0 0 0 1 1 1 1 Y 0 0 1 1 0 0 1 1 Z 0 1 0 1 0 1 0 1 U 0 0 1 1 1 0 0 0 ? si considerano solo le righe che rendono vera la variabile di uscita 13 Esempio ? Si considera una riga: X 0 Y 1 Z 0 U 1 ? quale è la relazione che lega i valori delle variabili in ingresso affinche’ la variabile di uscita sia vera (1)? X.Y.Z=1 Esempio ? E procedendo analogamente per tutte le righe: X 0 0 1 ? si ottiene: Y 1 1 0 Z 0 1 0 U 1 1 1 X.Y.Z=1 X.Y.Z=1 X.Y.Z=1 14 Esempio ? La variabile U è vera quando almeno una delle tre condizioni trovate è vera ? Il valore di verità per la variabile U si ottiene pertanto ponendo in OR lee condizioni trovate: X.Y.Z + X.Y.Z + X.Y.Z = U Passare da una funzione alla Tavola della Verità ? Data una funzione la si scompone in termini elementari ? Si riportano i valori assunti da termine elementare in una colonna distinta della tavola della verità ? Si usano i risultati parziali come valori di ingresso per le espressioni successive ? Si determinano le variabili di uscita 15 Passare da un Circuito Logico alla Tavola della Verità ? Dato un circuito logico si determina l’uscita di ogni porta ? Per fare questo: ? Si riportano i valori assunti da ogni porta in una colonna distinta della tavola della verità ? Si usano i valori di uscita di ogni porta come valori di ingresso per le porte successive come indicato dal circuito ? Si determinano le variabili di uscita Passare da una funzione algebrica ad un circuito ? Si elencano tutte le variabili di ingresso a sinistra ? Si elencano tutte le variabili di uscita a destra ? Si riscrivono gli operatori tramite le porte a cominciare dalle parentesi più interne 16