Espressioni e funzioni booleane
L'algebra booleana è l'algebra della logica. Si occupa di variabili che possono avere due valori discreti, 0 (False) e 1 (True); e operazioni che hanno un significato logico. Il primo metodo di manipolazione della logica simbolica fu inventato da George Boole e successivamente divenne noto come Algebra booleana.
L'algebra booleana è diventata uno strumento indispensabile nell'informatica per la sua ampia applicabilità nella teoria della commutazione, nella costruzione di circuiti elettronici di base e nella progettazione di computer digitali.
Funzioni booleane
A Boolean functionè un tipo speciale di funzione matematica $ f: X ^ n \ freccia destra X $ di grado n, dove $ X = \ lbrace {0, 1} \ rbrace $ è un dominio booleano e n è un numero intero non negativo. Descrive il modo in cui derivare l'output booleano dagli input booleani.
Example- Sia, $ F (A, B) = A'B '$. Questa è una funzione di grado 2 dall'insieme di coppie ordinate di variabili booleane all'insieme $ \ lbrace {0, 1} \ rbrace $ dove $ F (0, 0) = 1, F (0, 1) = 0, F (1, 0) = 0 $ e $ F (1, 1) = 0 $
Espressioni booleane
A Boolean expressionproduce sempre un valore booleano. Un'espressione booleana è composta da una combinazione di costanti booleane (Vero o Falso), variabili booleane e connettivi logici. Ogni espressione booleana rappresenta una funzione booleana.
Example - $ AB'C $ è un'espressione booleana.
Identità booleane
Legge del doppio complemento
$ \ sim (\ sim A) = A $
Legge del complemento
$ A + \ sim A = 1 $ (modulo OR)
$ A. \ sim A = 0 $ (modulo AND)
Legge idempotente
$ A + A = A $ (modulo OR)
$ A. A = A $ (modulo AND)
Legge sull'identità
$ A + 0 = A $ (modulo OR)
$ A. 1 = A $ (modulo AND)
Legge sulle dominanze
$ A + 1 = 1 $ (modulo OR)
$ A. 0 = 0 $ (modulo AND)
Diritto commutativo
$ A + B = B + A $ (modulo OR)
$ A. B = B. A $ (modulo AND)
Diritto associativo
$ A + (B + C) = (A + B) + C $ (modulo OR)
$ A. (B. C) = (A. B). C $ (modulo AND)
Legge di assorbimento
$ A. (A + B) = A $
$ A + (A. B) = A $
Legge sulla semplificazione
$ A. (\ sim A + B) = A. B $
$ A + (\ sim A. B) = A + B $
Legge distributiva
$ A + (B. C) = (A + B). (A + C) $
$ A. (B + C) = (A. B) + (A. C) $
Legge di De-Morgan
$ \ sim (A. B) = \ sim A + \ sim B $
$ \ sim (A + B) = \ sim A. \ sim B $
Forme canoniche
Per un'espressione booleana esistono due tipi di forme canoniche:
- La forma della somma dei termini (SOM)
- Il prodotto di maxterms (POM) form
Il modulo Somma di Minterm (SOM) o Somma di prodotti (SOP)
Un minterm è un prodotto di tutte le variabili prese nella loro forma diretta o completata. Qualsiasi funzione booleana può essere espressa come somma dei suoi 1 minterm e l'inverso della funzione può essere espressa come una somma dei suoi 0 minterm. Quindi,
F (lista di variabili) = ∑ (lista di indici a 1 termine)
e
F '(lista di variabili) = ∑ (lista di indici a termine 0)
UN | B | C | Termine | Minterm |
---|---|---|---|---|
0 | 0 | 0 | x'y'z ' | m 0 |
0 | 0 | 1 | x'y'z | m 1 |
0 | 1 | 0 | x'yz ' | m 2 |
0 | 1 | 1 | x'yz | m 3 |
1 | 0 | 0 | xy'z ' | m 4 |
1 | 0 | 1 | xy'z | m 5 |
1 | 1 | 0 | xyz ' | m 6 |
1 | 1 | 1 | xyz | m 7 |
Example
Sia, $ F (x, y, z) = x 'y' z '+ xy' z + xyz '+ xyz $
Oppure $ F (x, y, z) = m_0 + m_5 + m_6 + m_7 $
Quindi,
$ F (x, y, z) = \ sum (0, 5, 6, 7) $
Ora troveremo il complemento di $ F (x, y, z) $
$ F '(x, y, z) = x' yz + x 'y' z + x 'yz' + xy 'z' $
Oppure $ F '(x, y, z) = m_3 + m_1 + m_2 + m_4 $
Quindi,
$ F '(x, y, z) = \ sum (3, 1, 2, 4) = \ sum (1, 2, 3, 4) $
Il modulo Product of Maxterms (POM) o Product of Sums (POS)
Un maxterm è l'aggiunta di tutte le variabili prese nella loro forma diretta o completata. Qualsiasi funzione booleana può essere espressa come un prodotto dei suoi 0-maxterms e l'inverso della funzione può essere espresso come un prodotto dei suoi 1-maxterms. Quindi,
F (lista di variabili) = $ \ pi $ (lista di indici 0-maxterm).
e
F '(lista di variabili) = $ \ pi $ (lista di indici 1-maxterm).
UN | B | C | Termine | Maxterm |
---|---|---|---|---|
0 | 0 | 0 | x + y + z | M 0 |
0 | 0 | 1 | x + y + z ' | M 1 |
0 | 1 | 0 | x + y '+ z | M 2 |
0 | 1 | 1 | x + y '+ z' | M 3 |
1 | 0 | 0 | x '+ y + z | M 4 |
1 | 0 | 1 | x '+ y + z' | M 5 |
1 | 1 | 0 | x '+ y' + z | M 6 |
1 | 1 | 1 | x '+ y' + z ' | M 7 |
Esempio
Sia $ F (x, y, z) = (x + y + z). (x + y + z '). (x + y '+ z). (x '+ y + z) $
Oppure $ F (x, y, z) = M_0. M_1. M_2. M_4 $
Quindi,
$ F (x, y, z) = \ pi (0, 1, 2, 4) $
$ F '' (x, y, z) = (x + y '+ z'). (x '+ y + z'). (x '+ y' + z). (x '+ y' + z ') $
Oppure $ F (x, y, z) = M_3. M_5. M_6. M_7 $
Quindi,
$ F '(x, y, z) = \ pi (3, 5, 6, 7) $
Porte logiche
Le funzioni booleane vengono implementate utilizzando porte logiche. Le seguenti sono le porte logiche:
NON Gate
Una porta NOT inverte un singolo bit di ingresso in un singolo bit di uscita.
UN | ~ A |
---|---|
0 | 1 |
1 | 0 |
AND Gate
Una porta AND è una porta logica che fornisce un'uscita alta solo se tutti i suoi ingressi sono alti, altrimenti dà un'uscita bassa. Un punto (.) Viene utilizzato per mostrare l'operazione AND.
UN | B | AB |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
OR Gate
Una porta OR è una porta logica che fornisce un'uscita elevata se almeno uno degli ingressi è alto. Un segno più (+) viene utilizzato per mostrare l'operazione OR.
UN | B | A + B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Gate NAND
Una porta NAND è una porta logica che fornisce un'uscita bassa solo se tutti i suoi ingressi sono alti, altrimenti dà un'uscita alta.
UN | B | ~ (AB) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
NOR Gate
Una porta NOR è una porta logica che fornisce un'uscita alta se entrambi gli ingressi sono bassi, altrimenti dà un'uscita bassa.
UN | B | ~ (A + B) |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
Porta XOR (OR esclusivo)
Una porta XOR è una porta logica che fornisce un output elevato se gli ingressi sono diversi, altrimenti fornisce un output basso.
UN | B | A⊕B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Cancello X-NOR (NOR esclusivo)
Una porta EX-NOR è una porta logica che fornisce un output elevato se gli ingressi sono gli stessi, altrimenti fornisce un output basso.
UN | B | A X-NOR B |
---|---|---|
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |