Aritmetica booleana e circuiti logici - Informatica - Prof. Pantaleo Germinario

Pagina creata da Pantaleo Germinario
 
CONTINUA A LEGGERE
Aritmetica booleana e circuiti logici - Informatica - Prof. Pantaleo Germinario
Aritmetica booleana e
        circuiti logici
        Informatica – Prof. Pantaleo Germinario

Aritmetica booleana e circuiti logici             Prof. Pantaleo Germinario
Aritmetica booleana e circuiti logici - Informatica - 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
Aritmetica booleana e circuiti logici - Informatica - 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=AB
       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=AB
       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=AB
       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(BC)=(AB)C = ABC
                                        A ·(B · C)=(A · B) · C = A · B · C

                                        A(BC)=(AB)C = ABC
                                   A+(B+C)=(A+B)+C = A+B+C

Aritmetica booleana e circuiti logici                                        Prof. Pantaleo Germinario
Algebra di Boole
       Proprietà distributiva:

                               A  (BC)=(A  B)  (A  C)
                                        A ·(B+C)=(A · B)+(A · C)

                                   A  (BC)=(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