Aritmetica booleana e circuiti logici - Informatica - Prof. Pantaleo Germinario
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Aritmetica booleana e circuiti logici Informatica – Prof. Pantaleo Germinario Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
L’algebra dei calcolatori Nel 1854, il prof. George Boole pubblica un trattato ormai famosissimo: “Le leggi del pensiero”. Obiettivo finale del trattato è di far nascere la matematica dell’intelletto umano, un’algebra in grado di interpretare le proposizioni logiche fondamentali in cui le variabili e le funzioni possono sollo avere valori 0 e 1. Il lavoro di Boole fu dimenticato per quasi 100 anni. Solo nel 1950, quando nasce il calcolatore elettronico, l’algebra di Boole diventa lo strumento principale per la progettazione dei suoi circuiti, i cosiddetti circuiti logici. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
L’algebra di Boole Le componenti elettroniche dei computer sono costituite da circuiti digitali che elaborano segnali elettrici basati su due valori 1 e 0, che indicheremo, rispettivamente, con i valori VERO (True) e FALSO (False). Si studia l’algebra booleana poiché le funzioni dell’algebra booleana sono isomorfe ai circuiti digitali. In altre parole, un circuito digitale può essere espresso tramite un’espressione booleana e viceversa. Una funzione booleana ha una o più variabili in input e fornisce risultati che dipendono solo da queste variabili. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Le tabelle di verità Poiché le variabili possono assumere solo i valori 0 o 1 una funzione booleana con n variabili di input ha solo 2n combinazioni possibili e può essere descritta usando una tabella, detta tabella di verità, con 2n righe. Le tabella di verità rappresentano le funzioni di trasformazione delle variabili in input e fornisce i risultati che dipendono da queste variabili. Tali funzioni sono dette Funzioni Logiche. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Le porte logiche Gli elementi fondamentali dei circuiti logici sono le porte logiche che sono in grado di soddisfare l’algebra di Boole. Le porte logiche le definiremo come porte logiche fondamentali e porte logiche derivate. Le porte logiche fondamentali, o elementari, sono le porte AND, OR e NOT Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Il prodotto logico AND Si effettua su due o più variabili, l’uscita assume lo stato logico 1 solo se tutte variabile di ingresso sono allo stato logico 1. Nel caso di due variabili di ingresso A e B, detta X la variabile di uscita, si scrive la funzione logica: X=AB Si legge A and B (Si può anche indicare con X=A · B), il suo simbolo e la tabella di verità sono: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
La somma logica OR Si effettua su due o più variabili, l’uscita assume lo stato logico 1 se almeno una variabile di ingresso è allo stato logico 1. Nel caso di due variabili di ingresso A e B, detta X la variabile di uscita, si scrive: X=AB Si legge A or B (Si può anche indicare con X = A + B), il suo simbolo e la tabella di verità sono: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Negazione NOT Si effettua su una sola variabile. L’uscita assume il valore logico opposto a quello applicato in ingresso. Detta A la variabile di ingresso la negazione si scrive: X=Ᾱ e si legge A negato oppure A complementato (Si può scrivere anche X = !A), il suo simbolo e la tabella di verità sono: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Il prodotto logico AND Esempio di prodotto logico con il circuito elettrico: Indichiamo con L la lampada, con X e Y gli interruttori. Quando l’interruttore è aperto diciamo che in suo valore è 0(FALSE), mentre vale 1 (TRUE) se è chiuso. Che condizione si deve verificare affinché si accenda la lampada? Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Il prodotto logico AND Esempio di prodotto logico con il circuito elettrico: Indichiamo con L la lampada, con X e Y gli interruttori. Quando l’interruttore è aperto diciamo che in suo valore è 0(FALSE), mentre vale 1 (TRUE) se è chiuso. Abbiamo quindi che, considerato L = X Y, la lampada si accende solo se entrambe gli interruttori sono chiusi: X Y L 0 0 0 0 1 0 1 0 0 1 1 1 Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Il somma logica OR Esempio di somma logica con il circuito elettrico: In questo circuito quando si accende la lampada? Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Il somma logica OR Esempio di somma logica con il circuito elettrico: In questo circuito la lampada si accende quando almeno un interruttore è chiuso. X Y L 0 0 0 0 1 1 1 0 1 1 1 1 Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Porte logiche derivate Le porte logiche derivate sono ottenute dalla combinazione di due o più porte logiche elementari. Tra esse ci sono alcune che assumono particolare importanza e quindi vengono rappresentate con un simbolo proprio. Le porte logiche derivate più importanti sono gli operatori NOR, NAND, XOR e XNOR Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Somma logica negata NOR Si effettua su due o più variabili, l’uscita assume lo stato logico 0 se almeno una variabile di ingresso è allo stato logico 1. In tutti gli altri casi Y=1. Corrisponde ad una OR con in cascata una NOT. Per due variabili di ingresso A e B la funzione logica è: Y= A B e si legge A NOR B (Si può anche scrivere !(A+B)). Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Somma logica negata NOR L’operatore NOR è la combinazione dell’operatore OR a cui si applica l’operatore NOT. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Somma logica negata NOR Attenzione: la somma logica negata di due, o più variabili, non è uguale alla somma logica delle variabili negate. Esempio !(A+B) ≠ !A + !B A B A+B !(A+B) !A !B !A+!B 0 0 0 1 1 1 1 0 1 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 0 0 0 0 Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Prodotto logico negato NAND Si effettua su due o più variabili, l’uscita assume lo stato logico 0 se tutte le variabili di ingresso sono allo stato logico 1. In tutti gli altri casi Y=1. Corrisponde ad una AND con in cascata una NOT. La funzione logica si scrive: Y=AB e si legge A NAND B. (Si può anche scrivere !(A · B)). Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Somma logica negata NOR L’operatore NAND è la combinazione dell’operatore AND a cui si applica l’operatore NOT. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Prodotto logico negato NAND Attenzione: il prodotto logico negato di due, o più variabili, non è uguale al prodotto logico delle variabili negate. Esempio !(A · B) ≠ !A · !B A B A· B !(A· B) !A !B !A· !B 0 0 0 1 1 1 1 0 1 0 1 1 0 0 1 0 0 1 0 1 0 1 1 1 0 0 0 0 Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Operatore OR esclusivo XOR A differenza delle precedenti porte logiche, l’XOR (si può anche indicare con EXOR) opera solo su due ingressi. L’uscita vale 1 solo se gli ingressi assumono valore diverso tra loro, per cui prende anche il nome di anticoincidenza. La funzione logica si scrive: Y =A ⊕ B e si legge A or esclusivo B oppure A diverso da B. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Operatore NOR esclusivo XNOR L’operatore XNOR (si può anche indicare con EXNOR) come per XOR opera solo su due ingressi. L’uscita vale 1 solo se gli ingressi assumono lo stesso valore, per cui prende anche il nome di coincidenza. La funzione logica si scrive: Y=A⊕B=A⊙B e si legge A nor esclusivo B oppure A è uguale a B. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Circuiti combinatori e sequenziali Tutti i circuiti digitali studiati finora (porte logiche) appartengono alla categoria dei circuiti logici combinatori. Il nome deriva dal fatto che i valori presenti in uscita in tali circuiti dipendono esclusivamente dalle combinazioni binarie in ingresso e non dalla sequenza temporale con cui tali combinazioni vengono fornite al circuito. In parole più semplici: il valore delle uscite (0 oppure 1) dipende solo dal valore presente (0 o 1) negli ingressi in quello stesso istante. Cambiando gli ingressi, cambiano anche i valori in uscita. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Circuiti combinatori e sequenziali I circuiti sequenziali sono caratterizzati dal fatto che le uscite dipendono anche dalla sequenza (cioè dall'ordine con cui vengono forniti gli ingressi). Per fare un esempio, una porta AND è un circuito combinatorio, in quanto non ha nessuna importanza l'ordine con cui vengono forniti i due valori di ingresso: l'uscita dipende semplicemente dalla combinazione (00, 01, 10 o 11) presente in ingresso. Invece in un circuito sequenziale le uscite dipendono anche dall'ordine con cui vengono dati i due ingressi. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Circuiti combinatori e sequenziali Esempio di circuito sequenziale Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Circuiti combinatori e sequenziali In questo esempio di circuito sequenziale il valore di Y è: Y = ((A OR B) AND (NOT C)) OR (C AND D) Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Circuiti combinatori e sequenziali Quanto vale Y se: A=1 B=0 C=0 D=0 Y = ((A OR B) AND (NOT C)) OR (C AND D) Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Esempi di circuiti logici Dati i seguenti circuiti logici, trovare le espressioni algebriche booleane che le risolvono. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Esempi di circuiti logici Soluzione: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Esempi di circuiti logici Soluzione: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Esempi di circuiti logici Soluzione: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Esempi di circuiti logici Soluzione: Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole La funzione logica di un circuito, come abbiamo visto, è espressa utilizzando i vari gli operatori logici fondamentali (somma, differenza, negazione) ed è sottoposta alle regole di un algebra, diversa da quella che conosciamo, detta algebra di Boole. Vi sono diverse proprietà dell'algebra Booleana che risultano utili nel manipolare le equazioni logiche al fine di semplificarla e quindi al fine di semplificare il circuito corrispondente. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Proprietà di identità: A 0 = A+0 = A A 1 = A·1 = A Proprietà di assorbimento (o dell’annullamento): A 1 = A+1 = 1 A 0 = A·0 = 0 Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Proprietà dell’Inverso ( o del Complemento): A Ᾱ = A+Ᾱ = 1 A Ᾱ = A·Ᾱ = 0 Proprietà della doppia negazione: A = A Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Proprietà della idempotenza: A A = A+A = A A A = A·A = A Proprietà commutativa: A B = B A A B = B A A+B = B+A A·B = B·A Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Proprietà associativa: Questa proprietà consente di rimuovere le parentesi da una espressione e raggruppare le variabili. A(BC)=(AB)C = ABC A ·(B · C)=(A · B) · C = A · B · C A(BC)=(AB)C = ABC A+(B+C)=(A+B)+C = A+B+C Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Proprietà distributiva: A (BC)=(A B) (A C) A ·(B+C)=(A · B)+(A · C) A (BC)=(A B)(A C) A+(B · C)=(A+B) ·(A+C) Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Esempio di applicazione delle regole Q =(A+B)·(A+C) (distrib.) = A·A + A·C + B·A + B·C (idempot.) = A·(1+C) + B·A + B·C (identità) = A·1 + B·A + B·C (distrib.) = A·(1+B) + B·C (identità) = A·1 + B·C (identità) = A + B·C (identità) Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Teoremi dell’Assorbimento Questo teorema consente la riduzione di una espressione complessa in una più semplice attraverso l'assorbimento di termini uguali. Primo teorema dell’assorbimento: A · (A + B) = A A (A B)= A Secondo teorema dell’assorbimento: A ᾹB = A B A (Ᾱ B) = A B A + Ᾱ·B = A + B A · (Ᾱ + B) = A · B Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Teoremi di De Morgan: Il primo teorema di De Morgan dimostra che quando due (o più) variabili in input sono in AND e negate, esse sono equivalenti alla somma logica (OR) dei complementi di ciascuna variabile. A B = A B A · B = A + B Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Teoremi di De Morgan: Il secondo teorema di De Morgan dimostra che quando due (o più) variabili in input sono sommate (OR LOGICO) e negate, esse sono equivalenti al prodotto (AND) dei complementi di ciascuna variabile. A B = A B A + B = A · B Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Algebra di Boole Una proprietà fondamentale dell’algebra booleana è espressa dal seguente principio di dualità: Data una funzione Y si chiama espressione duale !Y quella che si ottiene scambiando 1. operatore AND con OR 2. 0 con 1 3. sostituendo alle variabili i loro complementi e viceversa. Ad esempio se: Y = A + ( !B · C ) l’espressione duale vale: !Y = !A · (B + !C) Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Mappe di Karnaugh Oltre all’utilizzo delle proprietà e dei teoremi visti, si può ricorrere alle mappe di Karnaugh per semplificare una espressione logica booleana. Si costruisce una tabella (in seguito detta mappa) contenente un numero di righe e di colonne tale da identificare un numero di celle pari a 2n dove n è il numero di variabili. Questo metodo, tuttavia si può utilizzare fino a 5 variabili, altrimenti la mappa si complica e diventa più complessa da gestire. Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Mappe di Karnaugh Per costruire le mappe di Karnaugh si posizionano sulle colonne il prodotto di due variabili e sulle righe il prodotto delle altre tenendo conto che, per due colonne adiacenti, il valore delle variabili deve cambiare solo per una variabile: Esempio Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Mappe di Karnaugh Nelle celle di incrocio si riportano i valori della funzione, ossia Y. Esempio Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Mappe di Karnaugh Si raggruppano, quindi, le caselle adiacenti contenenti un valore 1. I raggruppamenti devono essere costituiti da un numero di celle pari alle potenze di due. Per raggruppare le celle si utilizzano le seguenti regole: 1. Si raggruppano le celle adiacenti includendo un numero di celle relativo alla potenza di 2 più alta. 2. Le colonne opposte sono da considerare adiacenti. 3. I raggruppamenti possono sovrapporsi. 4. Una casella già inclusa in un raggruppamento, può essere associata ad altre solo se contribuisce a creare un nuovo raggruppamento Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Mappe di Karnaugh Dopo aver disegnato i raggruppamenti si può scrivere la funzione in forma semplificata: - Si identificano le variabili che non cambiano valore nel raggruppamento e si scrive il prodotto di esse. - La funzione si otterrà in forma semplificata come somma dei prodotti individuati nel passo precedente: Y = BD + BCD+ CD Aritmetica booleana e circuiti logici Prof. Pantaleo Germinario
Puoi anche leggere