Elementi di informatica Algebra di Boole Algebra di Boole I circuiti logici sono componenti hardware che manipolano informazione binaria. I circuiti di base sono detti PORTE LOGICHE (logical gate). Allo scopo di descrivere i comportamenti dei circuiti digitali si si può usare una algebra (notazione matematica) che specifica l’ l’operazione di ogni gate e permette di analizzare e sintetizzare (disegnare) il circuito. 1 Algebra di Boole L’algebra di Boole (dal suo inventore George Boole, Boole, matematico inglese (1815(18151864)) serve a descrivere le operazioni logiche. Componenti dell’ dell’algebra di Boole: Operatori booleani (not, not, and, or) Regole di trasformazione ed equivalenza tra operatori booleani Gli operandi booleani assumono solo due valori: Vero/Falso True/False 1/0 True/False … Sì/No Operatore not Tavola di verità x not x 0 1 1 0 2 Esempi di not x: not x : "piove" "non piove" VERO FALSO Posso scrivere: not x oppure ¬x oppure x Tavola di verità: and x 0 0 1 1 y 0 0 0 1 x and y 0 0 0 1 Posso scrivere: x and y oppure x●y oppure x * y 3 Esempi di and x : "Benevento è capoluogo di provincia" VERO y : "il NA gioca in serie A" FALSO x and y : "Benevento è capoluogo di provincia e il NA gioca in serie A" FALSO x : “la terra è un pianeta" VERO y : “la luna è un satellite della terra" VERO x and y : “la terra è un pianeta e la luna è un satellite della terra" VERO Tavola di verità:or x 0 0 1 1 y 0 0 0 1 x or y 0 1 1 1 4 Esempi di or x : "Benevento è capoluogo di provincia" y : "il NA gioca in serie A" z : "Benevento è capitale d'Italia" VERO FALSO FALSO x or y : "Benevento è capoluogo di provincia oppure il NA gioca in serie A" VERO y or z : "Il NA gioca in serie A oppure Benevento è capitale d'Italia" FALSO Precedenza degli operatori logici + alta Operatori Operatore unario: not Associatività da destra a sinistra Operatore binario: and da sinistra a destra Operatore binario: or da sinistra a destra + bassa 5 Esempio Se a è vero b è falso c è falso a or b and c ? a or (b and c) vero Tabella di verità di: a or (b and c) 6 Teoremi fondamentali Elementi neutri Idempotenza Complemento Principio di dualità Il principio di dualità afferma che data una eguaglianza se ne ottiene un’altra sostituendo l’operatore AND con l’operatore OR, 1 con 0 e viceversa. PROPRIETÀ DELL'ASSORBIMENTO a * ( a + b ) == a a + ( a * b ) == a Valgono le proprietà distributive x and (y or z)=( x and y) or (x and z) "mi piace" e ( "ho i soldi" oppure "la carta di credito") = (" mi piace" e "ho i soldi") oppure (" mi piace" e "ho la carta di credito") 7 Regole di De Morgan Circuiti logici Un circuito logico è biunivocamente associato ad una funzione logica La struttura del circuito è biunivocamente associato alla forma della funzione Funzioni elementari: porte logiche AND OR NOT Fondamenti di Informatica 1 Algebra di Boole 16 8 Esempio y = (( a or b) and (not c)) or (c and d) circuito y = (( a or b) and (not c)) or (c and d) 9 Semplificazione Il vantaggio dell’algebra di boole sta nel fatto di permettere la semplificazione dei circuiti 10 Analisi di reti Combinatorie Una rete combinatoria è una rete logica con n ingressi m uscite. Le uscite sono funzione degli ingressi, ma non del tempo: cambiano gli ingressi ed immediatamente cambiano le uscite (ovviamente è un modello). In un circuito logico le porte logiche viste sono combinate tra loro formando un circuito combinatorio. Le variabili sono combinate tramite le operazioni logiche. 11 Forme canoniche Abbiamo visto che è possibile esprimere le funzioni booleane tramite la sua espressione analitica oppure tramite la tabella di verità. Le funzioni booleane possono essere scritte in vari modi ma vi sono delle espressioni che vengono considerate standard. Per far ciò definiamo i mintermini e i maxtermini Forme canoniche Considerando una riga della tabella di verità si definisce mintermine il prodotto delle variabili booleane relative a tal riga prese in forma diretta o complementata a seconda se assumono valore 1 o 0. Si definisce maxtermine la somma delle variabili booleane prese in forma diretta o negata a seconda se assumono valore 0 o 1. Con n variabili abbiamo mintermini 2n e maxtermini 12 Forme Standard SOMMA DI PRODOTTI Possiamo ottenere la forma analitica di una funzione a partire dalla tabella di verità nel seguente modo: 1. Si individuano le righe per cui F ha valore 1; 2. Si scrivono tanti prodotti quante sono le righe individuate 3. Ogni prodotto è il mintermine relativo alla riga 4. Si sommano i prodotti. Forme Standard PRODOTTO DI SOMME Possiamo ottenere la forma analitica di una funzione a partire dalla tabella di verità nel seguente modo: 1. Si individuano le righe per cui F ha valore 0; 2. Si scrivono tante somme quante sono le righe individuate 3. Ogni somma è il maxtermine relativo alla riga 4. Si effettua il prodotto delle somme. 13 Dalla tabella all’espressione Conosciamo la tabella, ma non sappiamo qual è l’espressione Ci basta trovare una delle espressioni equivalenti che hanno questa tabella della verità a b c espressione 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Dalla tabella all’espressione (1) a b c espressione riga 0 0 0 0 0 riga 1 0 0 1 0 riga 2 0 1 0 0 riga 3 0 1 1 1 riga 4 1 0 0 0 riga 5 1 0 1 1 riga 6 1 1 0 1 riga 7 1 1 1 1 ⇜ ⇜ ⇜ ⇜ 14 Dalla tabella all’espressione (2) a b c espressione riga 0 0 0 0 0 riga 1 0 0 1 0 riga 2 0 1 0 0 riga 3 0 1 1 1 riga 4 1 0 0 0 riga 5 1 0 1 1 riga 6 1 1 0 1 riga 7 1 1 1 1 ⇜ (a) × b × c ⇜ a × (b) × c ⇜ ⇜ a × b × (c) a×b×c Dalla tabella all’espressione (3) a b c espressione riga 0 0 0 0 0 riga 1 0 0 1 0 riga 2 0 1 0 0 riga 3 0 1 1 1 riga 4 1 0 0 0 riga 5 1 0 1 riga 6 1 1 riga 7 1 1 ⇜ (a) × b × c 1 ⇜ a × (b) × c 0 1 ⇜ a × b × (c) 1 1 ⇜ a×b×c expr = m1 + m2 + m3 + m4 expr = ((a) × b × c) + (a × (b) × c) + (a × b × (c)) + (a × b × c) 15 Verifica a b c m1 = (a) × b × c m2 = a × (b) × c m3 = a × b × (c) 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 m4 = m1 + m2 + a × b × c m3 + m4 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 Un’altra espressione equivalente a b c a × b a × c b × c (a × b) + (a × c) + (b × c) 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 1 1 1 16 Forme Standard Il vantaggio delle forme standard è quello di permettere la realizzazione delle funzioni con circuiti a due livelli: AND-OR oppure OR-AND 17