Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

4
voti

LogicBignami (IV)

Da questo articolo inizieremo ad analizzare come realizzare dei circuiti utilizzando le porte logiche appena viste in LogicBignami (III) e, in particolare, inizieremo con i cosiddetti circuiti combinatori, cioè quei circuiti digitali in cui lo stato logico d'uscita O \; , ad ogni istante di tempo, è funzione soltanto dello stato logico assunto, nel medesimo istante di tempo, dalle variabili d'ingresso I \;.

Per far ciò dobbiamo approfondire alcuni aspetti delle tabelle della verità, e come, da queste, sia possibile ricavare la funzione booleana della variabile d'uscita in funzione, appunto, degli stati logici assunti dagli ingressi.

Indice

La tabella della verità

Abbiamo già visto, sia in LogicBignami (II) che in logicBignami (III), come sono costruite le tabelle della verità relative alle funzioni logiche fondamentali e delle relative porte logiche collegate.

Queste tabelle avevano, al massimo, solo due variabili booleane d'ingresso, per cui il numero delle possibili combinazioni uniche di due elementi binari era facilmente desumibile: tutte in condizione logica di FALSO (0 logico), tutte in condizione logica di VERO (1 logico) e alternativamente una in condizione logica di FALSO e una in condizione logica di VERO, da cui deriva, appunto, la seguente tabella della verità:

I0
I1
0
0
1
1
1
0
0
1

Adesso vedremo, invece, come compilare tutte le combinazioni di stati logici possibili per un numero di variabili maggiore.

Le combinazioni delle variabili booleane d'ingresso

Quando il numero delle variabili booleane d'ingresso da considerare sale (Esempio 3, 4, 5... variabili), sale, ovviamente, anche il numero delle possibili combinazioni che, come dimostreremo in successivi articoli, equivale a 2^n \;, dove n \; rappresenta il numero delle variabili booleane.

In questi casi la compilazione della tabella della verità può risultare difficoltosa: con più di 5 variabili può risultare lungo e tedioso scrivere tutte le combinazioni possibili.

Esiste, però, uno metodo che permette di compilare, in maniera "meccanica", tutte le combinazioni, ordinate, per un numero qualsiasi di variabili d'ingresso:

Date n \; variabili booleane I\;

1) Si calcola il numero delle combinazioni possibili, pari a 2n

2) Si nominano le variabili da I_0 \; a In − 1

3) Si inseriscono, nella colonna con indice minore (I_0 \;) tante commutazioni, tra uno stato logico di 0 e uno stato logico di 1, quante sono le possibili combinazioni calcolate al punto [1], partendo da 0 e terminando con 1

4) Nelle successive colonne, relative alle I_x \; variabili booleane, si inseriscono tante coppie formate da sequenze di 2^x \; stati logici di 0 e di 2^x \; stati logici di 1 fino a riempire il numero di combinazioni possibili (ad esempio la colonna relativa alla variabile I_3 \; avrà coppie formate da 2^3 \; stati logici di 0 e 2^3 \; stati logici di 1: 0000000011111111)

Vediamo quindi come applicare queste regole per realizzare una tabella della verità a 5 variabili booleane.

Con 5 variabili booleane, che denomineremo I_0 \;, I_1 \;, I_2 \;, I_3 \;, e I_4 \;, ci troveremo ad avere 2^5 = 32 \; diverse combinazioni uniche.

Quindi:

1) Nella colonna I_0 \; inseriremo una sequenza di 32 stati logici alternativamente a 0 e a 1, partendo da 0.

2) Nella colonna I_1 \; inseriremo una sequenza di 8 coppie formate da 2^1 \; stati logici a 0 e 2^1 \; stati logici a 1 (evidenziati, in figura sotto, rispettivamente in blu e rosso).

3) Nella colonna I_2 \; inseriremo una sequenza di 4 coppie formate da 2^2 \; stati logici a 0 e 2^2 \; stati logici a 1.

4) Nella colonna I_3 \; inseriremo una sequenza di 2 coppie formate da 2^3 \; stati logici a 0 e 2^3 \; stati logici a 1.
5) Nella colonna I_4 \; inseriremo un'unica coppia formata da 2^4 \; stati logici a 0 e 2^4 \; stati logici a 1.

Otteniamo, allora, la seguente tabella:


Disponendo la costruzione della tabella della verità con questo sistema, si avrà all'inizio tutte le variabili booleane in stato logico 0 e alla fine tutte le variabili in stato logico 1 e che una qualunque variabile booleana I_n \;, diversa da I_0 \;, commuta (da uno stato logico 0 ad uno stato logico 1 e viceversa) quando la variabile booleana In − 1 commuta dallo stato logico 1 allo stato logico 0, come evidenziato dalle linee verdi.

Considerando che, difficilmente, in questi articoli, analizzeremo tabelle della verità con più di 5 variabili booleane, di seguito riportiamo la struttura di quelle a 2, 3, 4 e 5 variabili:

1) Due variabili

I0
I1
0
0
1
0
0
1
1
1

2) Tre variabili

I0
I1
I2
0
0
0
1
0
0
0
1
0
1
1
0
0
0
1
1
0
1
0
1
1
1
1
1

3) Quattro variabili

I0
I1
I2
I3
0
0
0
0
1
0
0
0
0
1
0
0
1
1
0
0
0
0
1
0
1
0
1
0
0
1
1
0
1
1
1
0
0
0
0
1
1
0
0
1
0
1
0
1
1
1
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1

4) Cinque variabili


I0
I1
I2
I3
I4
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
1
1
0
0
0
0
0
1
0
0
1
0
1
0
0
0
1
1
0
0
1
1
1
0
0
0
0
0
1
0
1
0
0
1
0
0
1
0
1
0
1
1
0
1
0
0
0
1
1
0
1
0
1
1
0
0
1
1
1
0
1
1
1
1
0
0
0
0
0
1
1
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
0
1
1
0
1
0
1
0
1
1
0
1
1
1
1
0
1
0
0
0
1
1
1
0
0
1
1
0
1
0
1
1
1
1
0
1
1
0
0
1
1
1
1
0
1
1
1
0
1
1
1
1
1
1
1
1
1



Gli stati logici della variabile d'uscita: Mintermini e Maxitermini

Avendo visto come viene realizzata la struttura delle possibili combinazioni delle variabili d'ingresso I_n \; in una tabella della verità, vediamo, adesso, alcune caratteristiche della struttura degli stati logici associati alla variabile d'uscita O \;, che ci permetteranno, poi, di ricavare la funzione booleana dell'uscita stessa.

Mintermine (o Minterm)
E' una funzione booleana associata ad ogni combinazione delle variabili d'ingresso: equivale al prodotto logico di queste variabili, complementate se corrispondenti ad uno stato logico 0 altrimenti non complementate, in modo da fornire, come risultato, sempre uno stato logico 1.

Ad esempio, considerando una tabella della verità a tre variabili, avremo i seguenti mintermini (m_n \;):

I0
I1
I2
Mintermini
Indicatore Mintermini
0
0
0
\overline {I_0} \; \overline {I_1} \; \overline {I_2}
m0
1
0
0
I_0 \; \overline {I_1} \; \overline {I_2}
m1
0
1
0
\overline {I_0} \; I_1 \; \overline {I_2}
m2
1
1
0
I_0 \; I_1 \; \overline {I_2}
m3
0
0
1
\overline {I_0} \; \overline {I_1} \; I_2
m4
1
0
1
I_0 \; \overline {I_1} \; I_2
m5
0
1
1
\overline {I_0} \; I_1 \; I_2
m6
1
1
1
I_0 \; I_1 \; I_2
m7

Nota: Nel prodotto logico, il simbolo \cdot \; può essere omesso (in pratica viene sottinteso), così, ad esempio la scrittura I_0 \; I_1 \; I_2 \; è quivalente a I_0 \cdot I_1 \cdot I_2 \;

Sono detti mintermini perchè, per una data combinazione delle variabili booleane d'ingresso, solo uno, cioè il minimo dei 2^n \; prodotti logici, determinerà uno stato logico 1: infatti, se analizziamo la tabella della verità precedente, e consideriamo, ad esempio, il caso in cui I_0 = I_1 = 0 \; e I_2 = 1 \; vediamo che solo il mintermine m_4 \; sarà allo stato logico 1.

Tramite i mintermini la funzione logica relativa alla variabile booleana d'uscita O \; di una tabella della verità di n \; variabili d'ingresso I_n \;, viene espressa come somma logica di prodotti logici.

In particolare, definendo o_x \; lo stato logico che assume la variabile booleana d'uscita O \; alla "posizione" x \; (con 0 < x < 2^{n -1} \;), la funzione booleana d'uscita O \; è la somma logica del prodotto logico tra lo stato assunto dall'uscita e il relativo mintermine:

 O = \sum_{x = 0}^{2^{n - 1}} o_x m_x

Facciamo un esempio pratico con la seguente tabella della verità a cui associamo degli stati logici arbitrari alla variabile booleana d'usicta O \;.


I0
I1
I2
O
Mintermini
Indicatore Mintermini
0
0
0
0
\overline {I_0} \; \overline {I_1} \; \overline {I_2}
m0
1
0
0
0
I_0 \; \overline {I_1} \; \overline {I_2}
m1
0
1
0
0
\overline {I_0} \; I_1 \; \overline {I_2}
m2
1
1
0
1
I_0 \; I_1 \; \overline {I_2}
m3
0
0
1
0
\overline {I_0} \; \overline {I_1} \; I_2
m4
1
0
1
1
I_0 \; \overline {I_1} \; I_2
m5
0
1
1
1
\overline {I_0} \; I_1 \; I_2
m6
1
1
1
0
I_0 \; I_1 \; I_2
m7

Dalla summenzionata formula avremo che la funzione logica d'uscita O \; sarà:

 O = \sum_{x = 0}^{2^{n - 1}} o_x m_x = 0 \cdot m_0 +  0 \cdot m_1 + 0 \cdot m_2 + 1 \cdot m_3 + 0 \cdot m_4 +
 + 1 \cdot m_5 + 1 \cdot m_6 + 0 \cdot m_7

ricordando che lo stato logico 1 è elemento neutro per il prodotto logico e lo stato logico 0 è, invece, elemento assorbente, avremo

 O = m_3 + m_5 + m_6 = I_0 \; I_1 \; \overline {I_2} + I_0 \; \overline {I_1} \; I_2 + \overline {I_0} \; I_1 \; I_2

Nella pratica, per ricavare la funzione logica d'uscita O \;, basta eseguire la somma logica dei mintermini corrispondenti agli stati logici 1 della variabile d'uscita stessa.

Maxtermine (o Maxterm)
E' una funzione booleana associata ad ogni combinazione delle variabili d'ingresso: equivale alla somma logica di queste variabili, complementate se corrispondenti ad uno stato logico 1 altrimenti non complementate, in modo da fornire, come risultato, sempre uno stato logico 0.

Ad esempio, considerando sempre una tabella della verità a tre variabili, avremo i seguenti maxtermini (M_n \;):

I0
I1
I2
Maxtermini
Indicatore Maxtermini
0
0
0
I0 + I1 + I2
M0
1
0
0
\overline {I_0} + I_1 + I_2
M1
0
1
0
I_0 + \overline {I_1} + I_2
M2
1
1
0
\overline {I_0} + \overline {I_1} + I_2
M3
0
0
1
I_0 + I_1 + \overline {I_2}
M4
1
0
1
\overline {I_0} + I_1 + \overline {I_2}
M5
0
1
1
I_0 + \overline {I_1} + \overline {I_2}
M6
1
1
1
\overline {I_0} + \overline {I_1} + \overline {I_2}
M7

Sono detti maxtermini perchè, per una data combinazione delle variabili booleane d'ingresso, tutte le somme logiche, tranne una, cioè il massimo delle 2^n \; combinazioni, determineranno uno stato logico 1: infatti, se analizziamo la tabella della verità precedente, e consideriamo, ad esempio, il caso in cui I_0 = I_1 = 0 \; e I_2 = 1 \; vediamo tutti i maxtermini, tranne M_4 \;, sono allo stato logico 1.

Tramite i maxtemini la funzione logica relativa alla variabile booleana d'uscita O \; di una tabella della verità di n \; variabili d'ingresso I_n \;, viene espressa come prodotto logico di somme logiche.

In particolare, definendo o_x \; lo stato logico che assume la variabile booleana d'uscita O \; alla "posizione" x \; (con 0 < x < 2^{n -1} \;), la funzione booleana d'uscita O \; è il prodotto logico della somma logica tra lo stato assunto dall'uscita e il relativo maxitermine:

 O = \prod_{x = 0}^{2^{n - 1}} (o_x + M_x)

Utilizzando la stessa sequenza di stati logici d'uscita usata nella tabella con i mintermini, avremo:

I0
I1
I2
O
Maxtermini
Indicatore Maxtermini
0
0
0
0
I0 + I1 + I2
M0
1
0
0
0
\overline {I_0} + I_1 + I_2
M1
0
1
0
0
I_0 + \overline {I_1} + I_2
M2
1
1
0
1
\overline {I_0} + \overline {I_1} + I_2
M3
0
0
1
0
I_0 + I_1 + \overline {I_2}
M4
1
0
1
1
\overline {I_0} + I_1 + \overline {I_2}
M5
0
1
1
1
I_0 + \overline {I_1} + \overline {I_2}
M6
1
1
1
0
\overline {I_0} + \overline {I_1} + \overline {I_2}
M7

Dalla formula appena citata avremo che la funzione logica dell'uscita O \; sarà pari a:

 O = \prod_{x = 0}^{2^{n - 1}} (o_x + M_x) = (0 + M_0) \cdot (0 + M_1) \cdot (0 + M_2) \cdot (1 + M_3) \cdot
 \cdot (0 + M_4) \cdot (1 + M_5) \cdot (1 + M_6) \cdot (0 + M_7)

Ricordando che lo stato logico 0 è elemento neutro per la somma logica e lo stato logico 1, invece, è elemento assorbente per la somma logica, avremo

 O = \prod_{x = 0}^{2^{n - 1}} (o_x + M_x) = M_0 \cdot M_1 \cdot M_2 \cdot M_4 \cdot M_7 =

= (I_0 + I_1 + I_2) \cdot (\overline {I_0} + I_1 + I_2) \cdot (I_0 + \overline {I_1} + I_2) \cdot (I_0 + I_1 + \overline {I_2}) \cdot
 \cdot (\overline {I_0} + \overline {I_1} + \overline {I_2})

Nella pratica, per ricavare la funzione logica d'uscita O \;, basta eseguire il prodotto logico dei maxtermini corrispondenti agli stati logici 0 della variabile d'uscita stessa.

In definitiva la funzione logica della variabile d'uscita O \; può essere rappresentata, indifferentemente, sotto forma di somme logiche di prodotti logici, se si analizzano i mintermini oppure sotto forma di prodotti logici di somme logiche se si analizzano i maxtermini.

Nel prossimo articolo analizzaremo i metodi per ridurre, se possibile, le fuznioni logiche cos' ricavate.

Articoli collegati

LogicBignami (I) - Elementi di teoria degli insiemi
LogicBignami (II) - Funzioni logiche e loro proprietà
Appendice LogicBignami (II) - Elenco proprietà funzioni logiche
LogicBignami (III) - Le porte logiche AND, OR, NOT, NAND e NOR
LogicBignami (V) - Le porte logiche EX-OR e EX-NOR

0

Commenti e note

Inserisci un commento

Inserisci un commento

Per inserire commenti è necessario iscriversi ad ElectroYou. Se sei già iscritto, effettua il login.