Patrizio Gravano
APPUNTI MATEMATICI
FONDAMENTI MATEMATICI DELL’ELETTRONICA DIGITALE
numero 16 – aprile 2016
* APPUNTI MATEMATICI 16 – APRILE 2016 *
INTRODUZIONE
Questo breve elaborato contiene una sintesi delle principali nozioni utili a quanti intendono acquisire le basi matematiche utili alla comprensione dell’elettronica digitale. Ho citato diversi ottimi testi di elettronica e di reti logiche, utilizzati nei miei studi universitari per la preparazione degli esami. Rimando ampiamente ad essi i lettori interessati ad approfondire la materia alla lettura di essi. Essi sono tutti indicati in bibliografia. Nell’elaborare questa sintesi ho cercato di ricordare le asperità che incontrai (e furono davvero tante…) quando preparavo gli esami corrispondenti, cercando, con un linguaggio piano e formale, di evidenziare tutte le criticità che mi trovai di fronte. Credo che questo elaborato possa esso stesso essere utilizzato per un ripasso veloce delle parti più generali e introduttive di una materia sicuramente non facile. In più parti del mio breve elaborato ho deciso di introdurre gli argomenti in modo originale e alternativo, rifuggendo dalla convenzionalità, evidenziando comunque i diversi approcci, anche formali alla materia, come in relazione ai postulati dell’algebra di commutazione, che ho trovato nella bibliografia. Questo
breve
saggio
introduttivo
dovrà
necessariamente essere integrato da un elaborato più approfondito e sistematico dedicato alle macchine
combinatorie
e
sequenziali
e
a
particolari circuiti, quali simple and hold, che conto di produrre nel prossimo autunno. Patrizio Gravano patrizio.gravano@libero.it
-1-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
1. INTRODUZIONE ALL’ELETTRONICA DIGITALE
Occorre partire dal concetto di sistema elettronico, inteso come un circuito che dato un segnale di ingresso (input), mediante una data funzione di trasferimento, consente di ottenere, nel dominio del tempo, un segnale di uscita (output). Questa definizione presuppone quella di segnale. Un segnale è una grandezza fisica elettrica solitamente variabile nel dominio del tempo. Al riguardo viene definita una partizione fondamentale tra i segnali. Si distingue infatti tra segnali analogici, intendendo tali quelli che sono suscettibili di assumere un qualunque valore tra un valore massimo ed uno minimo ammissibili.
I segnali sono detti digitali quando essi assumono un numero finito (detto anche discreto) di possibili valori tra un minimo ed un massimo consentiti.
Nel novero dei sistemi digitali vanno poi definiti i segnali binari, ovvero quelle grandezze elettriche (generalmente si tratta di correnti ma più frequentemente di tensioni), che sono suscettibili di assumere solo due distinti valori, 0 ed 1, basso ed alto, aperto e chiuso. Questo punto sarà oggetto di opportune precisazioni.
Come è noto le cifre 0 e 1 sono dette cifre binarie, stando esse alla base dell’aritmetica binaria o di radice 2.
-2-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Essi sono anche chiamati bit, contraction dei termini binary digit. I vantaggi dell’introduzione dei sistemi digitali, che ne giustificano ampiamente la diffusione, sono ampiamente noti (p.e. Sacchi, Biondi, pag. 3 e segg.)
Leggendo la manualistica si evidenzia ampiamente che i sistemi digitali “sono meno sensibili ai rumoriâ€?. Operando nella realtĂ concreta e fenomenica, di cui quella teorica è una mera astratta semplificazione, per quanto efficace rappresentazione, anche in senso predittivo, deve essere fornita una ulteriore definizione quella di rumore.
Per rumore intendiamo una “tensione spuria�, una fluttuazione del valore istantaneo che incide sul valore teorico in varia misura.
Una tensione reale, effettiva, è sempre considerabile come la somma algebrica di un valore teorico e di un valore estemporaneo non prevedibile e non previsto che perturba il segnale.
In termini formali semplicemente possiamo scrivere đ?‘‰đ?‘’đ?‘“đ?‘“ (t) = đ?‘‰đ?‘Ą (t) + R(t), đ?‘œđ?‘Łđ?‘’ đ?‘‰đ?‘’đ?‘“đ?‘“ (t) è il valore effettivo, sperimentale della grandezza misurata, đ?‘‰đ?‘Ą (t) è il valore teorico mentre R(t) è il rumore inteso algebricamente.
-3-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
La prassi operativa impone, nell’ambito dei sistemi digitali, di procedere alla conversione di una grandezza analogica in una grandezza digitale.
Si parla al riguardo di conversione analogico-digitale. Essa avviene secondo modalitĂ che possono essere ben definite da tre distinte fasi.
Si parte dal campionamento del segnale.
Esso è costituito dalla determinazione dei valori assunti dalla grandezza elettrica in oggetto misurati ad intervalli regolari di tempo đ?‘Ą0 , đ?‘Ą0 +∆t, đ?‘Ą0 +2∆t ,.. , , đ?‘Ą0 +n∆t
Questo deve avvenire riducendo al minimo la perdita di informazione.
La seconda fase è rappresentata dalla cosiddetta quantizzazione.
-4-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
La quantizzazione consiste nel suddividere l’intervallo (đ?‘‰đ?‘œ , đ?‘‰đ?‘šđ?‘Žđ?‘Ľ ) in fasce solitamente della stessa ampiezza.
Si attribuisce al segnale il valore medio aritmetico calcolato sugli estremi di ogni fascia.
Per una fascia generica i-esima il range è formalizzato dall’intervallo (����,� , ����,� ).
La quantitĂ (đ?‘‰đ?‘šđ?‘Žđ?‘Ľ,đ?‘– − đ?‘‰đ?‘šđ?‘–đ?‘›,đ?‘– ) è detta quanto e si indica colla lettera Q.
Il valore del segnale in detto range viene convenzionalmente definito come
Si ha �� =
����,� + ����,� 2
Di norma tale valore viene codificato, ovvero fatto corrispondere ad un codice.
La quantizzazione comporta un errore di quantizzazione, detto anche rumore di quantizzazione.
Ulteriori interessanti informazioni si ricavano dalla bibliografia (ad esempio Sacchi, Biondo, pag. 5/7).
-5-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Trattandosi di segnali elettrici è bene fare qualche cenno alle grandezze elettriche utili a definirli con rigore.
Dall’elettronica elementare è ben noto che esistono due particolari tipi di segnali periodici, quali ad esempio i segnali sinusoidali e le onde quadre.
Sono di pertinenza stretta dell’elettronica digitale le onde quadre e le onde rettangolari.
L’onda quadra è un segnale puramente teorico caratterizzato dal fatto che il segnale assume nel dominio del tempo solo due valori teorici 0 ed 1. Esso è un segnale periodico ma non alternato. Pure per essi viene definita una frequenza ed un periodo e la relazione tra dette grandezze è quella classica del tipo 1
f=�.
Al solito, la frequenza e il periodo vengono misurate assumendo come unitĂ di misura rispettive l’hertz (đ?‘ đ?‘’đ?‘? −1 ) e il secondo.
-6-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Per le onde quadre (o rettangolari) viene definito il cosiddetto fattore di utilizzo (duty cycle) definito come δ=
đ?‘‡đ??ť đ?‘‡
Vorrei osservare che piÚ propriamente 1 è il livello logico cui corrisponde una tensione (o una corrente) avente un valore elevato, ma non necessariamente costante.
Voglio mutuare quanto riportato in un ottimo testo di reti logiche in circolazione (Mano, Kime).
Gli ottimi autori evidenziano questa non costanza dei valori teorici H e L con una bella semplificazione grafica che salta subito all’occhio, ed evidenzia i range di accettabilità per H ed L.
Per i segnali in ingresso ad un dispositivo digitale si ammette per la grandezza V un relativamente ampio range di variabilitĂ che ho definito nei seguenti termini formali.
Range di variabilitĂ
⌋đ?‘‰0 ,đ?‘– , đ?‘‰ đ?‘šđ?‘Žđ?‘Ľ,đ?‘– âŚŒ
-7-
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Ampiezza del range corrispondente al livello logico 1
⌋đ?‘‰đ?‘šđ?‘Žđ?‘Ľ ,đ?‘– − đ?œ€ , đ?‘‰ đ?‘šđ?‘Žđ?‘Ľ,đ?‘– âŚŒ
Ampiezza del range corrispondente al valore logico 0
⌋đ?‘‰0 , đ?‘‰ đ?‘šđ?‘Žđ?‘Ľ,đ?‘– − đ?œ‰ âŚŒ
Le grandezze Îľ e Ξ > đ?œ€ (positive) considerate hanno le medesime dimensioni di V, solitamente volt se V è una differenza di potenziale elettrico.
Esse sono assunte nell’ipotesi sia ⌋đ?‘‰đ?‘šđ?‘Žđ?‘Ľ ,đ?‘– − đ?œ€ , đ?‘‰ đ?‘šđ?‘Žđ?‘Ľ,đ?‘– âŚŒ â‹‚ ⌋đ?‘‰0 , đ?‘‰ đ?‘šđ?‘Žđ?‘Ľ,đ?‘– − đ?œ‰ âŚŒ = ∅.
Questa è una condizione logica irrinunciabile in quanto non è ammissibile che un valore di tensione possa essere associato a due distinti valori logici.
Nella pratica viene definita per valori fuori dalle bande suindicate una fascia di indeterminazione.
Essa corrisponde all’intervallo ( đ?‘‰ đ?‘šđ?‘Žđ?‘Ľ – đ?œ‰ , đ?‘‰đ?‘šđ?‘Žđ?‘Ľ − đ?œ€ )
Solitamente si impone un valore đ?&#x2018;&#x2030;đ?&#x2018; â&#x2C6;&#x2C6; ( đ?&#x2018;&#x2030; đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ â&#x20AC;&#x201C; đ?&#x153;&#x2030; , đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ â&#x2C6;&#x2019; đ?&#x153;&#x20AC; ) in relazione al quale per V â&#x2030;Ľ đ?&#x2018;&#x2030;đ?&#x2018; viene fatto corrispondere il valore logico 1, mentre per V < đ?&#x2018;&#x2030;đ?&#x2018; đ?&#x2018;?đ?&#x2018;&#x2013; si rapporta al valore logico 0.
-8-
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Ritornando per un attimo alla questione delle bande di oscillazione normalmente considerate vorrei ricordare che Mano e Kime nel loro testo ricordano che i range di corrispondenza con il valore logico 1 e con il valore logico 0, ai fini del corretto funzionamento dei dispositivi elettronici, sono piĂš ampi per le grandezze in ingresso (detti anche inputs) piuttosto che per le grandezze elaborate (in uscita, detti comunemente outputs).
Ă&#x2C6; quanto avviene nei circuito contenenti transistori.
Le informazioni divengono sequenze di zeri e di uni.
In relazione ai livelli logici H e L , 0 e 1, sono associati alle definite bande di accettabilitĂ nella variabilitĂ del segnale. Al riguardo sono evidenti le connessioni con la problematica dei rumori, indesiderati ma sempre presenti, rispetto ai quali (come osservano Sacchi e Biondo, pag. 8) â&#x20AC;&#x153;anche se disturbi o rumore alterano il livello del segnale è possibile risalire al valore originario 0 o 1; questo purchĂŠ disturbi o rumore non facciano uscire il livello del segnale dalla fascia corrispondente e non vengano scambiati 0 e 1â&#x20AC;?.
Per un segnale digitale viene definita una ulteriore grandezza detta valore medio o componente continua. Essa è cosĂŹ definita đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x2019;đ?&#x2018;&#x2018; =
đ?&#x2018;&#x2030;đ??ť đ?&#x2018;&#x2021;đ??ť +đ?&#x2018;&#x2030;đ??ż đ?&#x2018;&#x2021;đ??ż đ?&#x2018;&#x2021;
-9-
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Quando đ?&#x2018;&#x2021;đ??ť â&#x2030;Ş đ?&#x2018;&#x2021;đ??ż e in generale quando nel periodo đ?&#x2018;&#x2021;đ??ť â&#x2020;&#x2019; 0 si è in presenza di un segnale impulsivo. Ă&#x2C6; ammessa anche lâ&#x20AC;&#x2122;ipotesi simmetrica.
Queste considerazioni valgono in logica positiva. Essa presuppone che a livelli piĂš elevati di tensione corrisponda il livello logico 1 e a livelli che definiscono un intorno destro di đ?&#x2018;&#x2030;0 corrisponda il livello logico 0. Quando queste posizioni vengono ribaltate, e quindi ad esempio al range âŚ&#x2039;đ?&#x2018;&#x2030;0 , đ?&#x2018;&#x2030; đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ,đ?&#x2018;&#x2013; â&#x2C6;&#x2019; đ?&#x153;&#x2030; âŚ&#x152; viene fatto corripondere il livello logico 1 e viceversa al range âŚ&#x2039;đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ ,đ?&#x2018;&#x2013; â&#x2C6;&#x2019; đ?&#x153;&#x20AC; , đ?&#x2018;&#x2030; đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ,đ?&#x2018;&#x2013; âŚ&#x152; viene fatto corrispondere il livello logico 0, si utilizza la cosiddetta logica negativa, particolarmente utilizzata negli States.
La letteratura (Cuniberti, De Lucchi a pag. 31, Fedecostante, pag. 14 e 15) evidenzia anche visivamente che allâ&#x20AC;&#x2122;onda quadra teorica corrisponde de facto una forma dâ&#x20AC;&#x2122;onda reale nella quale il passaggio da 0,1đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ a 0,9đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ , corrispondente alla transizione 0 â&#x2020;&#x2019; 1, avviene non istantaneamente ma in un tempo finito đ?&#x2018;Ąđ?&#x2018;&#x; detto tempo di salita, o, in inglese, rise time. Questa semplice figura dĂ conto della situazione nel dominio del tempo.
- 10 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Simmetricamente per il segnale viene definito un tempo detto di discesa, corrispondente alla transizione negativa 0 â&#x2020;&#x2019; 1 corrispondente al tempo che corrisponde al passaggio da 0,9đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ a 0,1đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ .
Si indica con la scrittura đ?&#x2018;Ąđ?&#x2018;¤ đ?&#x2018;&#x2122;đ?&#x2018;&#x17D; parte del periodo T per il quale V â&#x2C6;&#x2C6; âŚ&#x2039;0,5đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ , đ?&#x2018;&#x2030;đ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ âŚ&#x152; cui in logica positiva corrisponde il livello logico 1.
La grandezza đ?&#x2018;Ąđ?&#x2018;¤ viene usualmente chiamata larghezza dellâ&#x20AC;&#x2122;impulso. Solitamente i circuiti digitali sono attivati quando interviene la transizione positiva 0 â&#x2020;&#x2019; 1 , oppure quando interviene la transizione quelle negativa 1 â&#x2020;&#x2019; 0.
- 11 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
2. SISTEMI DI NUMERAZIONE E PASSAGGI DI BASI
L’aritmetica utile ai fini della comprensione dei circuiti digitali è relativamente semplice anche se non mancano formalizzazioni particolarmente sofisticate. Ogni cifra può essere la base, o come si dice la radice, di un sistema di numerazione. Un sistema di numerazione è costituito da cifre, da operazioni e dalle relative regole e proprietà. Si è soliti affermare che il più noto sistema di numerazione è quello in base 10. Esso è costituito da un insieme di cifre ben rappresentato dal seguente insieme {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Ognuno degli elementi di detto insieme è detto cifra. Con queste dieci cifre si possono scrivere tutti i numeri interi (e non solo …).
Il sistema di numerazione in base 10 che noi utilizziamo è detto posizionale. L’aggettivo “posizionale” esprime il peso che la sequenza delle cifre ha nella definizione del numero. Per esempio la scrittura 123, che più formalmente andrebbe formalizzata come (123)10, deve intendersi come 1*102 + 2*101 + 3*100 . Essa viene su alcuni testi anche chiamata rappresentazione polinomiale. Pertanto un numero intero assoluto (o naturale) è sempre ponibile nella forma
- 12 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
(đ?&#x2018;&#x203A;)10 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(10đ?&#x2018;&#x2013; ) Vorrei osservare che per dare questa â&#x20AC;&#x153;definizioneâ&#x20AC;? si deve ammettere noto k, che è un intero ! Si ammettano note le ordinarie operazioni di addizione, sottrazione, moltiplicazione e divisione tra interi. Questa ultima non necessariamente è interna.
Vorrei rilevare che la relazione (đ?&#x2018;&#x203A;)10 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(10đ?&#x2018;&#x2013; ) ha qualcosa di esotico in quanto è ponibile in forma molto piĂš generale.
Dicevo che è possibile considerare un numero intero r qualunque anche r â&#x2030; 10. La lettera r non è messa a caso ma è iniziale del termine radice. Ă&#x2C6; possibile considerare un sistema di numerazione di base r che verifichi la condizione (đ?&#x2018;&#x203A;)đ?&#x2018;&#x; = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(đ?&#x2018;&#x; đ?&#x2018;&#x2013; ) Esso utilizza r cifre.
Per esempio, utilmente in informatica, si può porre r = 8. In questo caso lâ&#x20AC;&#x2122;insieme delle cifre utilizzabili diviene {0, 1, 2, 3, 4, 5, 6, 7}.
Si realizza un sistema di numerazione posizionale detto ottale. Altrettanto utilmente si potrebbe porre r = 16.
- 13 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
In questo caso sarebbe (đ?&#x2018;&#x203A;)16 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(16đ?&#x2018;&#x2013; ) Nel caso della base 16 e quindi del sistema detto esadecimale le cifre del sistema decimale non sono bastevoli e lâ&#x20AC;&#x2122;elenco delle cifre va infarcito di altri simboli, altre cifre che però hanno la sembianza di lettere dellâ&#x20AC;&#x2122;alfabeto (anche se astrattamente ogni altro simbolo andrebbe bene).
Il corrispondente insieme delle cifre del sistema di numerazione in base 16 è il seguente {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F}.
Occorrono 16 simboli ed è immediato capire, ad esempio, che (đ??´)16 = (10)10, (đ??ľ)16 = (11)10 , â&#x20AC;Ś.., (đ??š)16 = (15)10
Ma tra tutti i numeri che possono costituire la base di un sistema di numerazione quello piĂš utile è sicuramente quello binario, per il quale r = 2, che consente di definire il sistema di numerazione binario posizionale. Possiamo al riguardo scrivere che (đ?&#x2018;&#x203A;)2 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(2đ?&#x2018;&#x2013; )
Nel caso del sistema binario lâ&#x20AC;&#x2122;insieme delle cifre da utilizzare ai fini delle operazioni è ridotto a {0 , 1} Vorrei osservare preliminarmente che - 14 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
(đ?&#x2018;&#x203A;)đ?&#x2018;&#x;â&#x20AC;˛ â&#x2030; (đ?&#x2018;&#x203A;)đ?&#x2018;&#x;â&#x20AC;˛â&#x20AC;˛ Vorrei concentrare la mia attenzione sul caso r = 2 Dalla relazione (đ?&#x2018;&#x203A;)2 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(2đ?&#x2018;&#x2013; ) si evince che (đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; ) al variare di i può assumere solo due valori o il valore 0 oppure il valore 1. Pertanto la stenografia (đ?&#x2018;&#x203A;)2 deve essere intesa nel senso che n è una stringa di zeri e di uno, come ad esempio 100011. In questo caso k = 6 è la lunghezza della stringa.
Possiamo scrivere (đ?&#x2018;&#x203A;)2 = (100011)2 = 1*25 + 0*24 +0*23 + 0*22 + 1*21 + 1*20 = (đ?&#x2018;&#x203A;â&#x20AC;˛)10 Vorrei osservare che n â&#x2030; đ?&#x2018;&#x203A;â&#x20AC;˛ .
In buona sostanza la relazione (đ?&#x2018;&#x203A;)đ?&#x2018;&#x; = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(đ?&#x2018;&#x; đ?&#x2018;&#x2013; ) con r â&#x2C6;&#x2C6; N - {10} è utile perchè da essa è possibile avere la sequenza delle cifre che definiscono il numero in base 10.
Se con il simbolo â&#x2020;&#x2019; si intende â&#x20AC;&#x153;ottengoâ&#x20AC;? posso scrivere che (đ?&#x2018;&#x203A;)đ?&#x2018;&#x;â&#x2030; 10 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(đ?&#x2018;&#x; đ?&#x2018;&#x2013; ) â&#x2020;&#x2019;(đ?&#x2018;&#x203A;â&#x20AC;˛)10 = â&#x2C6;&#x2018;1đ?&#x2018;&#x2013;=đ?&#x2018;&#x2DC;â&#x20AC;˛(đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; )(10đ?&#x2018;&#x2013; ) ove kâ&#x20AC;&#x2122;â&#x2030;ś k.
đ?&#x2018;&#x201E;đ?&#x2018;˘đ?&#x2018;&#x2019;đ?&#x2018; đ?&#x2018;Ąđ?&#x2018;&#x2019; considerazioni risolvono una classe di problemi, del tipo dato un numero in base diversa da 10 convertirlo in un numero in base 10.
- 15 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Il problema inverso è gestibile nel modo seguente. Ă&#x2C6; assegnato un numero in base 10. Occorre convertirlo in un numero in base diversa râ&#x2030; 10. Vorrei partire dal caso r = 2. Lâ&#x20AC;&#x2122;algoritmo di trasformazione di una numero in base 10 ad un numero corrispondente in base 2, che utilizza il metodo delle divisioni successive, è ben noto e piĂš sotto lo riproporrò.
Ciò premesso, vorrei però far osservare che è possibile ottenere tale risultato corrispondentemente in modo alternativo.
Ho verificato la tabella di corrispondenza tra i decimali (da 0 a 9) e le corrispondenti codifiche binarie (su 4 bit). Se una codifica binaria contiene un solo 1 il peso di esso è pure la cifra decimale. Ho deciso di estendere questa riflessione ad occhio ed introdurre la seguente relazione di corrispondenza (đ?&#x2018;&#x203A;)10 = â&#x2C6;&#x2018;đ?&#x2018;&#x2014; â&#x2C6;&#x2C6;đ??˝ 2đ?&#x2018;&#x2014; = (đ?&#x2018;&#x203A;â&#x20AC;˛)2 J = { j : đ?&#x2018;?đ?&#x2018;&#x2014; = 1 }
Queste considerazioni sono abbastanza semplici, comunque si potrĂ tornare su di esse quando si sarĂ letto tutto il paragrafo, ivi comprese le nozioni di peso e la struttura posizionale del numero binario.
- 16 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
In ogni caso è possibile considerare il classico algoritmo di calcolo che consente la corrispondenza (đ?&#x2018;&#x203A;)10 â&#x2020;&#x2019; (đ?&#x2018;&#x203A;â&#x20AC;˛)2 đ?&#x2018;&#x153;đ?&#x2018;Łđ?&#x2018;&#x2019; đ?&#x2018;&#x2013;đ?&#x2018;&#x2122; simbolo â&#x2020;&#x2019; è inteso come â&#x20AC;&#x153;ottengoâ&#x20AC;?.
đ?&#x2018;&#x2020;đ?&#x2018;&#x2013;đ?&#x2018;&#x17D; dato un intero in base 10, sia quindi noto (đ?&#x2018;&#x203A;)10 . đ??ˇđ?&#x2018;&#x2019;đ?&#x2018;Ąđ?&#x2018;Ąđ?&#x2018;&#x153; numero viene ripetutamente diviso per due, avendo cura di indicare i quozienti e i resti. đ?&#x2018;&#x2020;đ?&#x2018;&#x2013; đ?&#x2018;&#x153;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x;đ?&#x2018;Łđ?&#x2018;&#x17D; immediatamente che i resti o sono 0 oppure 1. đ?&#x2018;&#x2020;đ?&#x2018;&#x2013; đ?&#x2018;&#x2013;đ?&#x2018;Ąđ?&#x2018;&#x2019;đ?&#x2018;&#x;đ?&#x2018;&#x17D; il procedimento fino a quando non si ottiene il quoziente 0.
La sequenza dei resti considerata dallâ&#x20AC;&#x2122;ultimo al primo costituisce la sequenza binaria.
Vorrei osservare che il metodo delle divisioni successive è utilizzabile â&#x2C6;&#x20AC; r â&#x2C6;&#x2C6; N - {10} oltre che â&#x2C6;&#x20AC;(đ?&#x2018;&#x203A;)10 .
Lâ&#x20AC;&#x2122;algoritmo si complica quando si debba studiare (đ?&#x2018;&#x17E;)10 â&#x2020;&#x2019; (â&#x20AC;Ś . )2 đ?&#x2018;&#x153;đ?&#x2018;Łđ?&#x2018;Łđ?&#x2018;&#x2019;đ?&#x2018;&#x;đ?&#x2018;&#x153; quando si abbia un razionale non intero in base 10.
Un numero razionale può essere formalizzato nella base b con la seguente relazione đ?&#x2018;&#x2013; qb = â&#x2C6;&#x2018;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1 đ?&#x2018;&#x2013;=â&#x2C6;&#x2019;đ?&#x2018;&#x2DC; đ?&#x2018;&#x17D;đ?&#x2018;&#x2013; đ?&#x2018;?
- 17 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Si consideri comunque il caso b = 10.
đ?&#x2018;&#x2C6;đ?&#x2018;&#x203A; numero razionale q può essere interpretato come la somma di una parte intera e della parte decimale di esso. đ??źđ?&#x2018;&#x203A; senso formale possiamo scrivere (đ?&#x2018;&#x17E;)10 = âŚ&#x2039; (đ?&#x2018;&#x17E;)10 âŚ&#x152; + ((đ?&#x2018;&#x17E;)10 ) ove âŚ&#x2039; . âŚ&#x152; + (. ) definiscono, rispettivamente la parte intera e quella decimale, detta anche mantissa.
Alla mantissa, o parte frazionaria, del numero razionale si applica il seguente algoritmo.
La mantissa viene moltiplicata ripetutamente per 2 fino a quando essa non diviene 0. Il che accade quando il risultato della moltiplicazione è un intero.
Infatti per un intero si ha (đ?&#x2018;&#x203A;)10 = âŚ&#x2039; (đ?&#x2018;&#x203A;)10 âŚ&#x152; đ?&#x2018;&#x;đ?&#x2018;&#x2013;đ?&#x2018; đ?&#x2018;˘đ?&#x2018;&#x2122;đ?&#x2018;Ąđ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;đ?&#x2018;&#x153; ((đ?&#x2018;&#x17E;)10 )= 0.
đ??źđ?&#x2018;&#x203A; đ?&#x2018;&#x201D;đ?&#x2018;&#x2019;đ?&#x2018;&#x203A;đ?&#x2018;&#x2019;đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;đ?&#x2018;&#x2019; đ?&#x2018; đ?&#x2018;&#x2019; si deve passare dalla base 10 alla base r â&#x2030; 10 detta mantissa verraâ&#x20AC;&#x2122; moltiplicata ripetutamente per r finchè non diviene 0, avendosi quindi un intero.
đ?&#x2018;&#x192;đ?&#x2018;&#x2019;đ?&#x2018;&#x; đ?&#x2018;&#x153;đ?&#x2018;&#x201D;đ?&#x2018;&#x203A;đ?&#x2018;˘đ?&#x2018;&#x203A;đ?&#x2018;&#x153; đ?&#x2018;&#x2018;đ?&#x2018;&#x2019;đ?&#x2018;&#x2013; đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x17D;đ?&#x2018;&#x201D;đ?&#x2018;&#x201D;đ?&#x2018;&#x2013; effettuati si avrĂ modo di indicare la parte intera.
- 18 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
đ??żđ?&#x2018;&#x17D; sequenza delle parti intere via via ottenute, dallâ&#x20AC;&#x2122;alto verso il basso, costituisce la stringa di cifre corrispondenti al numero dato nella nuova base.
Credo sia utile ricordare che lo studio dei sistemi di numerazione avviene, in questo ambito, in riferimento alla loro utilitĂ per la rappresentazione delle informazioni nei calcolatori, quindi in relazione alle memorie dei computer.
Ă&#x2C6; ben evidente il nesso con lâ&#x20AC;&#x2122;organizzazione dei dati nelle memorie.
La memorizzazione dei dati nei registri è formalizzabile come una sequenza di zeri e di uni, solitamente a gruppi di 8 bit, stringa chiamata byte, contraction dei termini binary octet.
Un numero binario è formalizzato dalla sequenza đ?&#x2018;?7 đ?&#x2018;?6 đ?&#x2018;?5 đ?&#x2018;?4 đ?&#x2018;?3 đ?&#x2018;?2 đ?&#x2018;?1 đ?&#x2018;?0 ove đ?&#x2018;?đ?&#x2018;&#x2013; â&#x2030;¤7 assume i valori 0 oppure 1. La cifra đ?&#x2018;?7 viene chiamata bit piĂš significativo (most significant bit). La cifra đ?&#x2018;?0 viene chiamata bit meno significativo (less significant bit).
La potenza i-esima associata alla posizione è detta peso, coerentemente con la posizionalità del sistema di numerazione considerato.
- 19 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La memoria può essere intesa come un array (matrice) i cui elementi sono k byte di lunghezza 8, quindi una matrice di ordine n*8. I computer piÚ recenti hanno memorie del tipo n*16.
Vorrei osservare che la lunghezza della stringa binaria ha una precisa relazione con i numeri binari che possono essere rappresentati. Questa asserzione si giustifica in termini matematici in modo semplice. Ci si riferisca, per esempio, al byte costituito da 8 bit. Il numero dei numeri binari rappresentabili è funzione della lunghezza della stringa in quando ogni casella soggiace a due possibili ipotesi, vi si colloca uno zero oppure un uno. PoichĂŠ le caselle a disposizione sono otto, si ha che i numeri rappresentabili sono 28 . PoichĂŠ solitamente si parte da zero, con otto caselle, si possono rappresentare i numeri interi da 0 a 28 â&#x2C6;&#x2019; 1. Con memorie piĂš capienti, se k è la lunghezza ammessa per memorizzare un dato possono essere rappresentati i numeri interi da 0 a 2đ?&#x2018;&#x2DC; â&#x2C6;&#x2019; 1.
Detta memoria sarĂ , ovviamente costituita da n*(2đ?&#x2018;&#x2DC; â&#x2C6;&#x2019; 1) đ?&#x2018;?đ?&#x2018;&#x2013;đ?&#x2018;Ą.
Le regole della cosiddetta aritmetica binaria sono semplici.
Esse sono facilmente riassumibili come - 20 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
0+0=0 1+0=0+1=1 1 + 1 = 10 Questa ultima scrittura si intende che detta somma vale 0 con riporto 1.
Sarebbe semplicemente l’equivalente di 9 +1 = 10 che ci è noto dalle elementari.
Questo risultato porta de plano al concetto di traboccamento (overflow), per il quale è necessario un bit ulteriore di memoria per allocare correttamente il riporto 1 di detta somma.
La sottrazione soggiace a regole pure semplici. 0-0=0 1-0=1 1-1=0 Resta da considerare il caso 0 - 1
Essa è possibile solo se la cifra immediatamente a sinistra dello zero può essere presa a prestito.
Le regole della moltiplicazione binaria sono quelle usuali e quindi vige la legge di annullamento del prodotto.
- 21 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Esse sono sintetizzabili nel modo seguente 0*0 = 0*1 = 1*0 = 0 1*1 = 1
Per la divisione si ha che 1: 0 non è definito 0 :1 = 0 1 :1 = 1 0: 0 non ha significato.
Vorrei fare qualche altra riflessione sui passaggi di base in particolare dalla base 10 alle basi 8 e 16 ampiamente utilizzate in ambito informatico.
Il sistema di numerazione in base 8 ha otto cifre, da 0 ad 8, con le quali è possibile scrivere i numeri in base 8. Quanto detto circa la codifica (che di fatto esprime una corrispondenza univoca) consente di capire agevolmente che 8 cifre possono essere codificate in modo inequivoco come sequenze di tre bit. Non casualmente 8 = 23 . (0)8 = (000)2 đ?&#x2018;&#x2018;đ?&#x2018;&#x17D; cui
- 22 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
(1)8 = (0)8 +(1)8 = (000)2 +(001)2 = (001)2
Questo ragionamento può essere iterato e fatto sui primi 7 numeri del sistema ottale evidenzia che ogni cifra nel sistema di numerazione in base 8 corrisponde ad una terna di zeri e di uni ottenuti come nel primo caso indicato, iterativamente.
Questo evidentemente è un modo corretto per codificare una informazione in una base r = 2đ?&#x2018;&#x2DC; con k intero assoluto come numero binario e viceversa. Da Ciò discende una regola pratica evidente. Dato un numero binario, anche con la virgola è possibile raggruppare gli zeri e gli uni a gruppi di k, spostandosi a sinistra della virgola e a destra rispettivamente e procedere. Vorrei fare un esempio inusuale considerando la base r =4 = 22 . In questo caso si ha k = 2.
Si consideri il numero (1100000, 0111)2. Identifico i raggruppamenti in gruppi di due cifre, partendo dalla virgola. Per la parte intera essi sono 00, 00, 10 e a questo punto risulta spaiato lâ&#x20AC;&#x2122;1 piĂš significativo. Ă&#x2C6; ammesso scrivere 1 = 01 (lo 0 è inserito formalmente ma è come se non ci fosse â&#x20AC;Ś).
La tecnica di inserimento di questo zero algebricamente innocuo è detta pudding.
- 23 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Vorrei osservare che in generale è sempre (00000 â&#x20AC;Ś . .00000đ?&#x2018;&#x203A;)đ?&#x2018;&#x; =(đ?&#x2018;&#x203A;)đ?&#x2018;&#x; â&#x2C6;&#x20AC; r : râ&#x2C6;&#x2C6; N. Se si opera sulla mantissa si fa un ragionamento del tipo 0,1 = 0,1000000â&#x20AC;Ś 0â&#x20AC;Ś . Detta riflessione è pure immediatamente generalizzabile. Per parte intera si ottiene immediatamente il numero (1200)4 La mantissa (parte frazionaria) è immediatamente (13)4 . Coordinando i risultati si ottiene che (1100000, 0111)2 = (1200,13)4 Per inciso lâ&#x20AC;&#x2122;alfabeto delle cifre nel sistema di numerazione in base 4 è đ?&#x2018; 4 = {0, 1, 2, 3} Queste considerazioni hanno un significato eminentemente pratico ai fini dei passaggi di basi e si applicano anche al caso del sistema esadecimale, ove dato un numero in binario si considerano i raggruppamenti di 4 cifre binarie. Nei casi considerati vi è univocitĂ di corrispondenza tra numero in base due e numero in base 2đ?&#x2018;&#x2DC; al variare di k negli interi.
Esiste una semplice definizione di variabile binaria (Fedecostante, pag. 14). Sia assegnato un insieme B : B = {0, 1 }. Una variabile x è detta binaria se x â&#x2C6;&#x2C6; B = {0, 1 } Non è detto che una base r sia del tipo r = 2đ?&#x2018;&#x2DC; .
Quando r < 2đ?&#x2018;&#x2DC; si potrebbe pensare di eliminare la evidente condizione di ridondanza facendo in modo che la univocitĂ di corrispondenza sia garantita considerando il numero (đ?&#x2018;&#x; â&#x2C6;&#x2019; 1)đ?&#x2018;&#x; e determinando la corrispondenza con una sequenza in base 2. - 24 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Una codifica univoca è la corrispondenza che associa alla sequenza di numeri in base r, ovvero alla sequenza 0đ?&#x2018;&#x; , 1đ?&#x2018;&#x; , â&#x20AC;Ś . đ?&#x2018;&#x2014;đ?&#x2018;&#x; , â&#x20AC;Ś . . (đ?&#x2018;&#x; â&#x2C6;&#x2019; 1)đ?&#x2018;&#x; i corrispondenti valori in base 2.
Se r > 2đ?&#x2018;&#x2DC; đ?&#x2018;?đ?&#x2018;&#x2019;đ?&#x2018;&#x; k assegnato non è possibile istituire una corrispondenza. Basta fare un esempio pratico r = 11 e k = 3. Al solito 2đ?&#x2018;&#x2DC;=3= 8 porta a 8 possibili combinazioni di 0 e di 1.
Resterebbero incodificati tutti gli (đ?&#x2018;&#x203A;)đ?&#x2018;&#x;=11 : (8)đ?&#x2018;&#x;=11 â&#x2030;¤ (đ?&#x2018;&#x203A;)đ?&#x2018;&#x;=11 â&#x2030;¤ (10)đ?&#x2018;&#x;=11
Una spiegazione lineare delle problematiche della codificazione di trova in diversi testi di uso comune (Fedecostante, pagg. 18 e19, Mano Kime, pag 21 e segg.).
Nella pratica operativa dei comupter è stato istituito un particolare codice detto BCD, acronimo di binary coded decimal.
PoichĂŠ il sistema decimale utilizza 9 cifre sequenze di tre cifre binarie non sono sufficienti ad avere una codifica competa mentre 4 definiscono una codifica ridondante.
Il criterio utilizzato è quello definito come (0)10 = (0000)2
- 25 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
(1)10 =(0001)2 (đ?&#x2018;&#x203A;)10 =(đ?&#x2018;?(đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1)10 + (0001)2 )2 â&#x2C6;&#x20AC; n â&#x2C6;&#x2C6; {2, 3, 4, 5, 6, 7, 8, 9}
đ?&#x2018;?(đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1)10 designa la codifica binaria associata al numero (đ?&#x2018;&#x203A; â&#x2C6;&#x2019; 1)10 .
đ??źđ?&#x2018;&#x203A; relazione alla codifica delle informazioni e alla trasmissione remota delle informazioni diviene utile avere nozione del bit di paritĂ . Sia data una sequenza binaria di lunghezza k. Si determina il numero degli uni contenuti nella stringa. Essi sono al piĂš k.
Sono ammesse due convenzioni, dette, rispettivamente, paritĂ pari e paritĂ dispari.
Si ammetta di operare secondo la procedura della paritĂ pari. Se la stringa contiene un numero dispari di 1 si aggiunge un uno nella posizione piĂš significativa, altrimenti si mette uno 0. Se si opera in paritĂ dispari si contano gli uni e se sono pari si aggiunge un 1 nella posizione piĂš significativa.
- 26 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Lâ&#x20AC;&#x2122;utilitĂ di questa procedura è ben nota (Mano, Kime, pag. 26 e 27).
Nellâ&#x20AC;&#x2122;elaborazione delle informazioni rivestono ampia importanza anche altri codici, quali quelli del tipo k su n.
Vi è, ad esempio, il caso della codifica 1 su n, che contiene stringhe di zeri e di uni con la particolarità di contenere uno ed un solo 1 ed (n-1) zeri.
Se n è la cifra decimale allora si ha đ?&#x2018;?đ?&#x2018;&#x203A; =1 e đ?&#x2018;?đ?&#x2018;&#x203A;â&#x20AC;˛ = 0 â&#x2C6;&#x20AC; đ?&#x2018;&#x203A;â&#x20AC;˛ â&#x2C6;&#x2C6; {0, 1, 2, 3, â&#x20AC;Ś. 9 } -{n}. đ?&#x2018;?đ?&#x2018;&#x203A; indica il bit collocato in posizione n.
Esiste anche una codifica 2 su n (vedi, ad esempio, Fedecostante, pag. 20).
Tutte le codifiche considerate fino a questo punto sono sequenziali. Tra gli elementi (stringhe) codificate sussiste una relazione dâ&#x20AC;&#x2122;ordine stretto. Sia Îś un qualunque elemento codificato, ovvero una qualunque stringa ottenuta. Ă&#x2C6; possibile munire di un indice dette stringhe binarie.
Nelle codifiche sequenziali si ha sempre đ?&#x153; đ?&#x2018;&#x2DC;â&#x2C6;&#x2019;1 < đ?&#x153; đ?&#x2018;&#x2DC; < đ?&#x153; đ?&#x2018;&#x2DC;+1
- 27 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Non sono per ovvia ragione ammissibili relazioni del tipo â&#x2030;¤ per la ovvia ragione che non possono esistere due elementi distinti aventi eguale codifica. Le codifiche sequenziali non esauriscono il novero delle possibili codifiche.
Esistono pure codifiche ulteriori dette non sequenziali.
Ă&#x2C6; il caso del cosiddetto codice Gray che ha origini meccaniche, utile per la rivelazione di posizioni angolari (Fedecostante) ed appartenente alla categoria dei codici riflessi (Mano, Kime).
In questo codice nel passaggio da una configurazione a quella successiva commuta una sola cifra.
Al vettore colonna (
1 0 ) corrisponde quello riflesso ( ). 0 1
Ed anche 0 0 0 1 cui corrisponde la matrice riflessa 0 1 0 0
In generale data đ?&#x2018;&#x17D;11 â&#x20AC;Śâ&#x20AC;Ś đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;1
â&#x20AC;Śâ&#x20AC;Ś â&#x20AC;Śâ&#x20AC;Ś â&#x20AC;Śâ&#x20AC;Ś.
đ?&#x2018;&#x17D; 1đ?&#x2018;&#x161; â&#x20AC;Ś.. đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x161;
- 28 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
mentre la forma riflessa assume la forma đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;1 â&#x20AC;Ś â&#x20AC;Ś â&#x20AC;Śâ&#x20AC;Ś â&#x20AC;Śâ&#x20AC;Ś đ?&#x2018;&#x17D;11 â&#x20AC;Ś â&#x20AC;Ś .
đ?&#x2018;&#x17D; đ?&#x2018;&#x203A;đ?&#x2018;&#x161; â&#x20AC;Ś.. đ?&#x2018;&#x17D;1đ?&#x2018;&#x161;
đ?&#x2018;&#x2018;đ?&#x2018;&#x17D; cui si ottiene la sequenza complessiva, con la limitazione di una sola commutazione nel passaggio da una sequenza alla successiva. đ?&#x2018;&#x2C6;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D; trattazione avanzata della codifica dovuta a Frank Gray presuppone la conoscenza dellâ&#x20AC;&#x2122;operatore binario booleano OR esclusivo, noto come XOR (Mano, Kime, pag. 29 e 30).
Nel mondo binario esiste una particolare operazione detta negazione, altrimenti nomata complementazione.
Essa viene realizzata bit a bit nel senso che ogni bit di una sequenza binaria viene appunto complementato nel senso che ogni zero viene sostituito dal valore 1 e ogni valore 1 viene sostituito da uno zero.
Ad esempio (00010110)2 diviene (11101001)2 .
In termini formali si scrive Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; (00010110)2 = (11101001)2 . I nessi con la negazione sono evidenti.
- 29 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x2122; đ?&#x2018;&#x161;đ?&#x2018;&#x153;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;đ?&#x2018;&#x153; đ?&#x2018;?đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x17D;đ?&#x2018;&#x;đ?&#x2018;&#x2013;đ?&#x2018;&#x153; valgono due stati 0 ed 1, alto e basso, acceso o spento. Quindi negare 1 vuol dire affermare 0 e viceversa. Come si avrĂ modo di vedere nelle algebre di Boole si ammette che 0Ě&#x2026; = 1 đ?&#x2018;&#x2019;đ?&#x2018;&#x2018; đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;?â&#x201E;&#x17D;đ?&#x2018;&#x2019; 1Ě&#x2026; = 0. đ??żđ?&#x2018;&#x2019; algebre di Boole saranno oggetto del prossimo paragrafo.
Quella sovraesposta è anche nota come complementazione ad 1.
Essa va tenuta distinta dalla cosiddetta complementazione a 2.
In buona sostanza la complementazione a 2 si ottiene in due step.
Data la stringa binaria la si complementa ad uno (negazione), quindi, al risultato ottenuto si somma (1)2 . La complementazione a due riveste una notevole rilevanza pratica in quanto consente di semplificare la sottrazione binaria, evitando lâ&#x20AC;&#x2122;uso dei prestiti.
Da un punto di vista generale e astratto è possibile dire che (đ?&#x2018;&#x17D;)đ?&#x2018;&#x; â&#x2C6;&#x2019;(đ?&#x2018;?)đ?&#x2018;&#x; = (đ?&#x2018;&#x17D;)đ?&#x2018;&#x; +(â&#x2C6;&#x2019;(đ?&#x2018;?)đ?&#x2018;&#x; )
- 30 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
In termini chiari la differenza tra due numeri è eguale alla somma del primo e dellâ&#x20AC;&#x2122;opposto del secondo.
Nel sistema binario si ha (đ?&#x2018;&#x17D;)2 â&#x2C6;&#x2019;(đ?&#x2018;?)2 = (đ?&#x2018;&#x17D;)2 +(â&#x2C6;&#x2019;(đ?&#x2018;?)2 ) Sono noti (đ?&#x2018;&#x17D;)2 đ?&#x2018;&#x2019; (đ?&#x2018;?)2. Il secondo membro contiene una quantitĂ incognita il numero negativo â&#x2C6;&#x2019;(đ?&#x2018;?)2 . Detto numero è il complemento a 2 del numero (đ?&#x2018;?)2 e si scrive â&#x2C6;&#x2019;(đ?&#x2018;?)2 = đ?&#x2018;?.2 (đ?&#x2018;?)2 La rappresentazione degli interi con segno utilizzando il metodo della complementazione a due presuppone lâ&#x20AC;&#x2122;introduzione di un ulteriore bit nella posizione piĂš significativa, detto normalmente bit di segno.
Pertanto, nella rappresentazione dei numeri relativi il bit piĂš rappresentativo definisce il segno del numero. Se il bit piĂš significativo, quello piĂš a sinistra, è uno zero allora il numero è positivo mentre se detto bit ha valore 1 per convenzione si ammette che il numero sia negativo. Osservo che (0)10 è definito da una sequenza di zeri in base due del tipo (0000 â&#x20AC;Ś .0000)2 nel sistema binario. Il numero degli zeri necessari è variabile in relazione alle esigenze di rappresentazione dei relativi interi. Ad esempio per đ?&#x2018;?đ?&#x2018;&#x2014;â&#x2C6;&#x2C6;đ??˝â&#x160;&#x201A;đ?&#x2018;?â&#x2C6;śđ??˝ = { â&#x2C6;&#x2019;4,â&#x20AC;Ś.0,â&#x20AC;Ś.4} sono necessari 4 bit, tre di valore ed uno di segno.
- 31 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
3. ALGEBRA DI BOOLE
George Boole scrisse alla meta dell’Ottocento (1854) un interessante testo sulle leggi della logica che poi divenne la base teorica per la cosiddetta algebra di commutazione.
ritratto di George Boole
Gli sviluppi successivi e in particolare la sua assiomatizzazione sono dovuti a Hungtington.
Negli anni Trenta del secolo scorso Claude Shannon ha creato le condizioni per l’utilizzazione dell’algebra di commutazione nel dominio dei circuiti e dell’informatica.
- 32 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
foto di Claude Shannon
Questo paragrafo è dedicato allâ&#x20AC;&#x2122;algebra di Boole nel suo assetto teorico. GiĂ sono state definite le variabili binarie. Il livello piĂš elementare di spiegazione delle algebre di commutazione parte dalla constatazione che si tratti di un sistema matematico. Il supporto è lâ&#x20AC;&#x2122;insieme B = {0, 1} Viene quindi definito un insieme di operazioni. Esse sono la complementazione, il prodotto logico e la somma logica. Viene quindi introdotto un sistema di postulati dal quale consegue il complesso dei teoremi che la definiscono. Si hanno, ovviamente, due costanti, lo 0 e il numero 1.
Viene definita anche una funzione booleana delle variabili binarie đ?&#x2018;Ľđ?&#x2018;&#x2013; â&#x2030;¤đ?&#x2018;&#x203A; formalizzata come f(đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . đ?&#x2018;Ľđ?&#x2018;&#x203A; ) e costituita dalle sequenze del tipo ( (đ?&#x2018;?1 , đ?&#x2018;?2 , â&#x20AC;Ś . đ?&#x2018;?đ?&#x2018;&#x203A; ) , b)
- 33 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
In buona sostanza il numero delle coppie è 2đ?&#x2018;&#x203A; , quando si considera una funzione di n variabili binarie. Ho ritenuto di modificare leggermente il formalismo, introducendo due pedici, secondo la modalitĂ seguente.
đ?&#x2018;&#x201C;(đ?&#x2018;Ľ1 ,đ?&#x2018;Ľ2 ,â&#x20AC;Ś.đ?&#x2018;Ľđ?&#x2018;&#x203A; )
Solitamente â&#x2C6;&#x20AC; (đ?&#x2018;? 1,đ?&#x2018;&#x2013; , đ?&#x2018;?2,đ?&#x2018;&#x2013; , â&#x20AC;Ś . đ?&#x2018;?đ?&#x2018;&#x203A;,đ?&#x2018;&#x2013; ) â&#x2C6;&#x192;! b : ( đ?&#x2018;? 1,đ?&#x2018;&#x2013; , đ?&#x2018;?2,đ?&#x2018;&#x2013; , â&#x20AC;Ś . đ?&#x2018;?đ?&#x2018;&#x203A;,đ?&#x2018;&#x2013; ) â&#x2020;&#x2019;
đ?&#x2018;?đ?&#x2018;&#x2013;
Ho infatti deciso di formalizzare in questo modo le stringhe del dominio delle funzioni di Boole di n variabili per coordinarmi meglio con lâ&#x20AC;&#x2122;uso standard delle tavole della veritĂ che vedono collocati gli elementi costituitivi delle stringhe che individuano il dominio in una struttura sostanzialmente matriciale. Vorrei osservare che i â&#x2C6;&#x2C6; I = { 1, 2, 3, â&#x20AC;Ś . . , 2đ?&#x2018;&#x203A; } ove n è il numero delle vv. ii. booleane. La scrittura đ?&#x2018;?đ?&#x203A;˝,đ?&#x203A;ż reca due pedici, il primo â&#x2030;¤ n è il numero che afferisce alla variabile mentre il secondo pedice δ(β) afferisce al numero dâ&#x20AC;&#x2122;ordine della stringa del dominio Vorrei fare un esempio per chiarire usando una f di due sole due variabili di Boole, come nel caso seguente F(x,y).
Gli elementi del dominio sono 0
0
- 34 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
0
1
1
0
1
1
In questo caso si ha n = 2 e i = 22 = 4 Per comprendere il formalismo appena introdotto basta ammettere sia 0 = đ?&#x2018;?1,1
0 = đ?&#x2018;?2,1
0 = đ?&#x2018;?1,2
1 = đ?&#x2018;?2,2
1 = đ?&#x2018;?1,3
0 = đ?&#x2018;?2,3
1 = đ?&#x2018;?1,4
1 = đ?&#x2018;?2 4
Vorrei osservare che questo stato di cose, ovvero che â&#x2C6;&#x20AC; (đ?&#x2018;? 1,đ?&#x2018;&#x2013; , đ?&#x2018;?2,đ?&#x2018;&#x2013; , â&#x20AC;Ś . đ?&#x2018;?đ?&#x2018;&#x203A;,đ?&#x2018;&#x2013; ) â&#x2C6;&#x192;! b : ( đ?&#x2018;? 1,đ?&#x2018;&#x2013; , đ?&#x2018;?2,đ?&#x2018;&#x2013; , â&#x20AC;Ś . đ?&#x2018;?đ?&#x2018;&#x203A;,đ?&#x2018;&#x2013; ) đ?&#x2018;&#x201C;(đ?&#x2018;Ľ1 ,đ?&#x2018;Ľ2 ,â&#x20AC;Ś.đ?&#x2018;Ľđ?&#x2018;&#x203A; )
â&#x2020;&#x2019;
đ?&#x2018;?đ?&#x2018;&#x2013; non è vero in generale.
Esistono infatti funzioni booleane per le quali esiste almeno una configurazione delle variabili per le quali non si ha un corrispondente valore di b.
In questo caso si scrive (( đ?&#x2018;? 1,đ?&#x2018;&#x2013; , đ?&#x2018;?2,đ?&#x2018;&#x2013; , â&#x20AC;Ś . đ?&#x2018;?đ?&#x2018;&#x203A;,đ?&#x2018;&#x2013; ), -)
Giova osservare che il trattino - esprime una condizione di indifferenza.
- 35 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Queste osservazioni saranno ancor piĂš chiare quando si prenderanno in esame le tavole della veritĂ delle macchine combinatorie, prive di memoria. Ă&#x2C6; opportuno esaminare le tre operazioni booleane e quindi i tre operatori logici.
Il primo operatore è lâ&#x20AC;&#x2122;operatore di negazione (o complementazione) NOT. Esso è solitamente indicato da scritture del tipo NOT(X) oppure, piĂš comunemente xâ&#x20AC;&#x2122; e đ?&#x2018;ĽĚ&#x2026; .
Ă&#x2C6; un operatore unario e operando su una variabile ne commuta il valore nel modo seguente x = 0 â&#x2021;&#x2019; xâ&#x20AC;&#x2122; = 1 x = 1 â&#x2021;&#x2019; xâ&#x20AC;&#x2122; = 0
Il secondo operatore booleano è la somma logica, definita dallâ&#x20AC;&#x2122;operatore OR. Si tratta di un operatore binario e il comportamento è ben definito dalla seguente tabella della veritĂ đ?&#x2018;Ľ1
đ?&#x2018;Ľ2
đ?&#x2018;Ľ1 +đ?&#x2018;Ľ2
0
0
0
1
0
1
0
1
1
1
1
1
- 36 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Si osservi che la somma logica non coincide con la somma aritmetica in base 2.
In termini formali si ha
đ?&#x2018;Ľ1 +đ?&#x2018;Ľ2 = 0 â&#x2021;&#x201D; đ?&#x2018;Ľ1 = 0, đ?&#x2018;Ľ2 = 0
La somma logica può essere estesa ad un numero qualunque di variabili booleane come segue f(đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) = đ?&#x2018;Ľ1 +đ?&#x2018;Ľ2 + â&#x20AC;Śâ&#x20AC;Ś +đ?&#x2018;Ľđ?&#x2018;&#x203A;
Vi è un terzo operatore, pure esso binario, dellâ&#x20AC;&#x2122;algebra di Boole, detto AND o anche prodotto logico. Esso è ben rappresentato nella seguente tabella
đ?&#x2018;Ľ1
đ?&#x2018;Ľ2
đ?&#x2018;Ľ1 â&#x2C6;&#x2014; đ?&#x2018;Ľ2
0
0
0
1
0
0
0
1
0
1
1
1
Dalla semplice ispezione della tabella si evince che
- 37 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
f(đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 ) = đ?&#x2018;Ľ1 â&#x2C6;&#x2014; đ?&#x2018;Ľ2 = 1 â&#x2021;&#x201D; đ?&#x2018;Ľ1 = đ?&#x2018;Ľ2 = 1. Ă&#x2C6; utile precisare che anche per la funzione AND essa è estensibile ad un numero qualunque di variabili binarie. Quindi, in generale y = đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 â&#x20AC;Ś . đ?&#x2018;Ľđ?&#x2018;Ľ y vale 0 se esiste almeno un đ?&#x2018;Ľđ?&#x2018;&#x2013; = 0
Le tavole delle funzioni OR e AND appena esaminate sono dette tavole della veritĂ .
Esse dicono per quali valori delle variabili indipendenti la variabile dipendente f assume valore 1 e per quali valori delle vv. ii. essa assume 0.
Ă&#x2C6; bene osservare che per una data funzione booleana esistono piĂš espressioni ma che data una espressione ad essa corrisponde una ed una sola funzione booleana.
Nel definire gli operatori NOT, OR, e AND si sono di fatto introdotti i postulati dellâ&#x20AC;&#x2122;algebra di Boole.
Reco una prima indicazione di essi (Fedecostante) precisando che nelle righe seguenti darò anche conto di ulteriori approcci.
- 38 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Essi sono i seguenti 0+0 = 0 1+0 = 1 0+1 = 1 1+1 = 1 0*0 = 0 1*0 = 0 0*1 = 0 1*1 = 1 0â&#x20AC;&#x2122; = 1 1â&#x20AC;&#x2122; = 0 Definiti i postulati vanno enunciati i principali teoremi di particolare utilitĂ pratica.
Il primo teorema definisce la proprietĂ commutativa degli operatori AND e OR. Infatti, per essi, si ha x+y = y+x , xy = đ?&#x2018;Śđ?&#x2018;Ľ.
Nellâ&#x20AC;&#x2122;algebra booleana gli operatori AND e OR godono della proprietĂ associativa per la quale x+y+z = x +(y+z) , - 39 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
xyz = x(yz) ed anche delle proprietà distributive per le quali x(y + z) = xy + xz, x + yz = (x +y)(x+z) )
Vale una particolare proprietà detta idempotenza per la quale si ha x+x=x, x*x=x
Nell’algebra booleana valgono le seguenti relazioni fondamentali x*1 = 0 x∗ 0 = 0 x+0 = x x+1 = 1
Vale poi la proprietà di assorbimento per la quale x +(xy) = x x(x+y) = x
Non si può poi sottovalutare una importante relazione detta doppia negazione per la quale - 40 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
(xâ&#x20AC;&#x2122;)â&#x20AC;&#x2122; = x
Vale la proprietĂ di involuzione. Ă&#x2C6; immediato dimostrare che x +(x)â&#x20AC;&#x2122; = 1 ed anche che x(x)â&#x20AC;&#x2122; = 0
Ă&#x2C6; parimenti dimostrabile la seguente proprietĂ detta di combinazione per la quale ax + axâ&#x20AC;&#x2122; = a (a + x)(a + xâ&#x20AC;&#x2122;) = a
Rivestono fondamentale importanza nelle applicazioni i cosiddetti teoremi di De Morgan. Ě&#x2026;Ě&#x2026;Ě&#x2026; = đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026; đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ + đ?&#x2018;Ś = đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; Questi due fondamentali teoremi sono dovuti al genio del matematico inglese Augustus De Morgan, detto â&#x20AC;&#x153;la primadonna della logica matematica ingleseâ&#x20AC;? â&#x20AC;&#x153;rivaleâ&#x20AC;? di George Boole.
- 41 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
ritratto di Augustus De Morgan
Possiamo interpretare f(x,y) = đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; come una funzione composta del tipo đ?&#x2018;&#x201C;1
đ?&#x2018;&#x201C;2
(x, y) â&#x2020;&#x2019; xy â&#x2020;&#x2019; đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; (ho mutuato questa inusuale modalitĂ rappresentativa dalla teoria delle funzioni scalari)
La scrittura đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; è detta NOT AND, o per contraction, NAND.
La tavola della veritĂ di detto operatore NAND si ricava immediatamente dalla tavola della funzione and complementando il valore di and per le varie combinazioni degli ingressi.
Essa è la seguente đ?&#x2018;Ľ1
đ?&#x2018;Ľ2
đ?&#x2018;Ľ1 â&#x2C6;&#x2014; đ?&#x2018;Ľ2
đ?&#x2018;Ľ1 â&#x2C6;&#x2014; đ?&#x2018;Ľ2 Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; - 42 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
0
0
0
1
1
0
0
1
0
1
0
1
1
1
1
0
ove đ?&#x2018;Ľ2 = y. Vorrei preliminarmente osservare che đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; â&#x2030; đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026;.
Lâ&#x20AC;&#x2122;operatore NAND definisce il negato dellâ&#x20AC;&#x2122;operatore AND, mentre il secondo membro è il prodotto dei negati.
Per đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; posso porre đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; = 1 â&#x2021;&#x201D; x = y = 0 Ě&#x2026;Ě&#x2026;Ě&#x2026; = 1 â&#x2021;&#x201D; (x = y = 0, y =0 con x=1 , x =0 con y =1). đ?&#x2018;Ľđ?&#x2018;Ś Dalla non coincidenza dei lati destri delle due coimplicazioni si desume immediatamente Ě&#x2026;Ě&#x2026;Ě&#x2026; â&#x2030; đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026;. đ?&#x2018;Ľđ?&#x2018;Ś
Vorrei soffermarmi sul primo teorema di De Morgan per il quale Ě&#x2026;Ě&#x2026;Ě&#x2026; = đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026; đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; = 0 â&#x2021;&#x201D; x =y = 1 đ?&#x2018;Ľđ?&#x2018;Ś đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026; = 0 â&#x2021;&#x201D; x =y = 1 Ě&#x2026;Ě&#x2026;Ě&#x2026; = 1 â&#x2021;&#x201D; x =y = 0 , x â&#x2030; đ?&#x2018;Ś đ?&#x2018;Ľđ?&#x2018;Ś
- 43 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026; = 1 â&#x2021;&#x201D; x =y = 0, x â&#x2030; đ?&#x2018;Ś
La validità del teorema di De Morgan è assicurata per i casi previsti dalla eguaglianza dei lati destri e sinistri delle coimplicazioni.
Con Ciò è dimostrato il teorema 1 di De Morgan
Bisogna dare giustificazione della scrittura x â&#x2030; đ?&#x2018;Ś. Essa è formalizzabile come segue (x â&#x2030; đ?&#x2018;Ś) â&#x2021;&#x201D; (x= 1 â&#x2021;&#x201D; y =0 , x= 0 â&#x2021;&#x201D; y =1).
Consultando qualunque testo che enuncia i teoremi dellâ&#x20AC;&#x2122;algebra booleana si potrĂ verificare che la dimostrazione dei teoremi enunciati è facile, quasi banaleâ&#x20AC;Ś.
Purtuttavia essi, nella loro semplicitĂ , rivestono una importanza fondamentale.
Vorrei ora introdurre lâ&#x20AC;&#x2122;ulteriore operatore logico di fondamentale importanza nel contesto booelano. Si tratta dellâ&#x20AC;&#x2122;operatore logico NOT OR, sintetizzato dalla sigla NOR.
- 44 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La relativa tavola della veritĂ si ricava da quella dellâ&#x20AC;&#x2122;operatore OR complementando i valori di esso.
Essa è la seguente
đ?&#x2018;Ľ1
đ?&#x2018;Ľ2
Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ1 +đ?&#x2018;Ľ2
đ?&#x2018;Ľ1 +đ?&#x2018;Ľ2
0
0
0
1
1
0
1
0
0
1
1
0
1
1
1
0
Il secondo teorema di De Morgan è posto nella forma Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ + đ?&#x2018;Ś = đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; Ammetto sia Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ + đ?&#x2018;Ś = đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; = 1 Ciò è verificato per x = y = 0 , come si verifica immediatamente. Ammetto sia Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ + đ?&#x2018;Ś = đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; = 0 Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; In questo secondo caso da đ?&#x2018;Ľ + đ?&#x2018;Ś = 0 ottengo immediatamente x + y = 1. Tale relazione è vera per x = y = 1 ed anche quando almeno una delle due variabili è 1.
Occorre verificare che sia đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; = 0 negli stessi casi.
- 45 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Se x =y = 1 allora đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; = 0 (bisogna sempre ricordare il postulato 0Ě&#x2026; = 1 e 1Ě&#x2026; = 0).
Ma affiche sia đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; = 0 deve pure essere đ?&#x2018;ĽĚ&#x2026; =1 ovvero x = 0 con đ?&#x2018;ŚĚ&#x2026;= 0 da cui y =1 o, alternativamente, đ?&#x2018;ŚĚ&#x2026; =1 ovvero y = 0 con đ?&#x2018;ĽĚ&#x2026; = 0 da cui x =1.
Con cioâ&#x20AC;˛ anche il secondo teorema di de Morgan è dimostrato.
Ă&#x2C6; bene soffermarsi ancora sullâ&#x20AC;&#x2122;algebra di Boole facendo qualche cenno ulteriore e di precisazione rispetto a quanto detto.
Lâ&#x20AC;&#x2122;insieme {0, 1} đ?&#x2018;&#x2019; â&#x20AC;˛ đ?&#x2018;&#x2013;đ?&#x2018;&#x2122; sostegno dellâ&#x20AC;&#x2122;algebra di Boole.
Si assume per postulato che se A e B sono due variabili booleane allora anche A + B e AB lo sono. Questo è coerente con la definizione di somma logica e di prodotto logico come già definiti. Molti dei teoremi introdotti in realtà sono intendibili anche come assiomi.
A questo punto si è ben compreso che una espressione booleana (e quindi anche una funzione booleana) sono stringhe dette anche connettivi, costituiti da variabili binarie e da operatori, tipicamente or, and e not.
- 46 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Lâ&#x20AC;&#x2122;ordine gerarchico di precedenza tra operatori è not, quindi and e or. Esso è superabile con lâ&#x20AC;&#x2122;usuale uso delle parentesi, in genere tonde.
In termini formali (vedi ad esempio Bolchini, Brandolese, Salice, Sciuto) una algebra di Boole è definita da un sestupla del tipo Đ´ = ( A, +, *, â&#x20AC;&#x2DC;, 0, 1 )
Lâ&#x20AC;&#x2122;insieme A è il supporto dellâ&#x20AC;&#x2122;algebra di Boole. Il supporto è costituito da â&#x20AC;&#x153;coppie di elementi complementariâ&#x20AC;?. Ciò discende dalla ammissione della proprietĂ di chiusura.
La definita algebra Đ´ = (A, +, *, â&#x20AC;&#x2DC;, 0, 1) è chiusa se â&#x2C6;&#x20AC; (a , b) : a â&#x2C6;&#x2C6; A , b â&#x2C6;&#x2C6; A â&#x2021;&#x2019; (a+b â&#x2C6;&#x2C6; A , ab â&#x2C6;&#x2C6; A, aâ&#x20AC;&#x2122; â&#x2C6;&#x2C6; A).
I precitati autori (Bolchini e altri) riferiscono di un adattamento dei postulati di Hungtington nel senso che assumono rango di assiomi la proprietĂ commutativa, rispetto agli operatori and e or, la esistenza degli elementi neutri (identici, 1 per la somma e 0 per il prodotto logico), le giĂ ricordate proprietĂ distributive, e lâ&#x20AC;&#x2122;introduzione del concetto di complemento di a indicato come aâ&#x20AC;&#x2122; oppure đ?&#x2018;&#x17D;Ě&#x2026;.
A
è
costituito
da
tutte
e
sole
le
variabili
che
appartengono
a
{0, 1}, đ?&#x2018;&#x203A;đ?&#x2018;&#x2019;đ?&#x2018;&#x2122; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x203A;đ?&#x2018; đ?&#x2018;&#x153; đ?&#x2018;?â&#x201E;&#x17D;đ?&#x2018;&#x2019; đ?&#x2018;?đ?&#x2018;&#x153;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x153;đ?&#x2018;&#x203A;đ?&#x2018;&#x153; đ?&#x2018;&#x17D;đ?&#x2018;Łđ?&#x2018;&#x2019;đ?&#x2018;&#x;đ?&#x2018;&#x2019; đ?&#x2018; đ?&#x2018;&#x153;đ?&#x2018;&#x2122;đ?&#x2018;&#x153; đ?&#x2018;&#x2013; đ?&#x2018;Łđ?&#x2018;&#x17D;đ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018;&#x;đ?&#x2018;&#x2013; 0 đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;?đ?&#x2018;˘đ?&#x2018;&#x;đ?&#x2018;&#x2019; 1.
- 47 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
In pratica ogni variabile entra nell’insieme A in forma diretta e in forma complementata, quindi detto insieme è finito ed è costituito da coppie del tipo x, x’.
Vorrei osservare che se una variabile potesse, ad esempio, avere tre distinti possibili valori, 0, 1, α allora A sarebbe costituito da una sequenza di terne, etc.
Solitamente si scrive A ={a, a’, b, b’,……}.
L’algebra booleana a due valori, detta anche di commutazione, è ben rappresentata come ℬ = ( {0, 1}, +, *, ‘, 0, 1 )
Anche in essa vige un principio fondamentale detto di dualità. Per esso si ammette che ogni espressione ricavata a partire dagli assiomi rimane valida scambiando gli operatori not e and e gli zeri con gli uni (e viceversa).
A questo punto, dopo aver introdotto gli operatori NAND e NOR (negazione di AND e OR) conviene introdurre un ulteriore operatore logico detto OR esclusivo, o XOR.
Tale operatore viene così formalizzato a ⊕ b = a’b + ab’
- 48 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Esso offre lo spunto per precisare quanto detto in relazione agli ordini di precedenza.
Quando si deve stabilire il valore di a â&#x160;&#x2022; b al variare di a e b si procede come segue. Si determina aâ&#x20AC;&#x2122;b previamente stabilito quanto vale aâ&#x20AC;&#x2122; dato a. Si determina abâ&#x20AC;&#x2122; previamente determinato bâ&#x20AC;&#x2122; dato b. Quindi si somma (in senso logico). Facendo i conti si scoprirĂ che a â&#x160;&#x2022; b = aâ&#x20AC;&#x2122;b + abâ&#x20AC;&#x2122; = 1 â&#x2021;&#x201D; x â&#x2030; y altrimenti a â&#x160;&#x2022; b = 0.
Le principali proprietĂ di detto operatore sono ampiamente riportate (vedi ad esempio, Bolchini, Brandolese, Salice, Sciuto, pagg.12 e 13). Detto operatore ha una funzione evidente di verificatore di eguaglianza.
Vorrei osservare che dato a â&#x160;&#x2022; b ha significato la scrittura Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x17D; â&#x160;&#x2022; đ?&#x2018;?.
Essa formalizza lâ&#x20AC;&#x2122;operatore negazione di XOR, detto XNOR. Per esso si ha Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x17D; â&#x160;&#x2022; đ?&#x2018;? = Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x17D;â&#x20AC;&#x2122;đ?&#x2018;? + đ?&#x2018;&#x17D;đ?&#x2018;?â&#x20AC;&#x2122; = 0 â&#x2021;&#x201D; x = y altrimenti Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x17D; â&#x160;&#x2022; đ?&#x2018;? = 1. Scendendo nel dettaglio dovrebbe essere introdotta pure la definizione di letterale. Per letterale si intende la coppia variabile e valore della variabile.
- 49 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Una variabile ha due letterali (questo è vero perché una variabile booleana ha due soli valori possibili 0 e 1).
Per la variabile x si hanno i letterali (x, 1) e (x, 0). x ↔ (x, 1) x’ ↔ (x, 0) Ho introdotto anche i letterali perché li ho rinvenuti in letteratura.
Così come presentati sono per certi aspetti fuorvianti perché di primo acchito uno potrebbe ritenere che scrivere x vuol dire scrivere x = 1 e scrivere x’ = 0. Ciò non è evidentemente vero come ben si capisce con le tavole della verità.
Mi sono riformalizzato д = ( A, +, *, ‘, 0, 1 ) come segue per un numero discreto di variabili, ad esempio 2, x ed y di Boole.
Per esso potrei ammettere A ={x, y}. Ma in luogo di essere potrei considerare A = { (0, 1), (0,1)} ove (0, 1) definisce i valori ammessi per x ed y. Sinteticamente A = { (0, 1)}
- 50 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
La complementazione logica di una variabile di Boole posta in forma di coppia di valori ammessi è x ↔ (0, 1) ⇔ x’ = (1, 0). Mi riservo di implementare questo approccio.
Quelli precedentemente enunciati non sono tutti i teoremi dell’algebra di Boole, anzi parte della letteratura (Sacchi, Biondi) riserva la tassonomia dei teoremi ai seguenti, oltre ad altri già da noi introdotti:
1) teorema di induzione matematica. Questo teorema, ma forse sarebbe meglio definirlo un principio, è di fondamentale importanza per dimostrare i teoremi dell’algebra di commutazione. Esso è enunciabile (Sacchi, Biondo) nel modo seguente “se una proposizione può essere verificata per tutti i valori che le variabili possono assumere la proposizione è perfettamente valida”. Si tratta dell’induzione perfetta. 2) principio di dualità (già illustrato, ma che sarà ripreso in considerazione più oltre) e, soprattutto, al 3) teorema di Shannon, detto anche teorema fondamentale dell’algebra booleana.
- 51 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Questo ultimo teorema, detto anche di Boole-Shannon, riveste una grande importanza operativa e sarà utilizzato per convertire una funzione di Boole in una delle due forme canoniche note, quella detta somma di prodotti e quella detta prodotto di somme. Svilupperò questo teorema, e relative esemplificazioni piÚ oltre.
Una espressione booleana è detta somma di prodotti se è del tipo 1 + đ?&#x2018;&#x201C;1 (â&#x20AC;Śâ&#x20AC;Ś..) + đ?&#x2018;&#x201C;đ?&#x2018;&#x2DC; (â&#x20AC;Ś..) ove le f considerate sono prodotti logici di variabili booleane.
Il caso degenere đ?&#x2018;&#x201C;đ?&#x2018;&#x2014; â&#x2030;¤đ?&#x2018;&#x2DC; (â&#x20AC;Ś..) identicamente 0 conduce a 1 che è un caso particolare di funzione somma di prodotti.
Per istruttive spiegazioni con esempi pratici si rimanda alla manualistica universitaria (ad esempio Bolchini e altri, giĂ citati, pag. 14 e seg. ).
Per una espressione booleana, e quindi per una funzione di Boole, esiste una seconda forma canonica, detta prodotto di somme.
La variabile 0 è considerata un caso degenere di somma di prodotti cui si ricade ogni volta che un termine vale 0, per la legge di annullamento del prodotto.
- 52 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Per una funzione di Boole completamente specificata le due forme canoniche esistono e sono uniche.
Ă&#x2C6; possibile definire in termini ancor piĂš formali una funzione di Boole con la scrittura f : đ??´đ?&#x2018;&#x203A; â&#x2020;&#x2019; A con la quale si istituisce una corrispondenza tra i 2đ?&#x2018;&#x203A; elementi del dominio e {0, 1} che costituisce il codominio.
La formalizzazione non suscita certo spavento in quanto la si evidenzia bene con le tavole della veritĂ giĂ usate per le funzioni booleane di base.
Già si scrisse che ad una funzione corrispondono infinite espressioni equivalenti che opportunamente trattate riconducono alla funzione. Non è vero il contrario. Due espressioni cui corrisponde la medesima funzione sono dette equivalenti.
Vorrei enfatizzare il legame tra dominio della funzione e tabella della veritĂ . Il dominio è costituito dalle 2đ?&#x2018;&#x203A; possibili combinazioni dei due stati possibili (0, 1) per ognuna delle n variabili. Ad ognuna delle 2đ?&#x2018;&#x203A; possibili combinazioni dei due stati possibili costitutive del dominio è, solitamente associato uno dei due possibili stati logici, 0 oppure 1.
- 53 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Quando questa condizione è realizzata si parla di funzioni completamente specificate. Tale condizione non si verifica in ogni caso possibile.
Esistono infatti casi nei quali ad almeno un elemento del dominio non è associato alcun elemento del codominio (funzione non controllabile) oppure se esiste almeno una stringa del dominio per la quale il valore di output può risultare indifferentemente 0 oppure 1 (funzione non osservabile), realizzandosi una condizione di indifferenza. In questi casi si parla di funzioni non completamente specificate.
Va rimarcata nuovamente una importante proprietà delle funzioni completamente specificate. Per esse esiste una unica rappresentazione come somma di prodotti ed una unica rappresentazione come prodotto di somme.
Ciò non vale per le funzioni non completamente specificate, dette anche don’t care. Nel caso delle funzioni non completamente specificate vi sono particolari valori di configurazione degli ingressi per le quali la funzione può assumere indifferentemente i valori 0 oppure 1.
Sia ad esempio x
y
f(x,y)
0
0
0
0
1
/
- 54 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
1
0
1
1
1
1
Per (x, y) = (0 , 1) la funzione può assumere indifferentemente il valore 1 oppure il valore 0.
In realtĂ da essa sono costruibili due distinte tavole della veritĂ , come segue
x
y
đ?&#x2018;&#x201C;1 (x,y)
0
0
0
0
1
0
1
0
1
1
1
1
x
y
đ?&#x2018;&#x201C;2 (x,y)
0
0
0
0
1
1
1
0
1
1
1
1
e
Per le funzioni di Boole a n variabili indipendenti vale, come giĂ anticipato, il fondamentale teorema di espansione di Boole e Shannon.
- 55 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
â&#x2C6;&#x20AC; f : đ??ľ đ?&#x2018;&#x203A; â&#x2020;&#x2019; B , â&#x2C6;&#x20AC; (đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . đ?&#x2018;Ľđ?&#x2018;&#x203A; ) â&#x2C6;&#x2C6; dom f si ha f(đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . đ?&#x2018;Ľđ?&#x2018;&#x203A; ) = đ?&#x2018;Ľâ&#x20AC;˛1 f(0, đ?&#x2018;Ľ2 , â&#x20AC;Ś . đ?&#x2018;Ľđ?&#x2018;&#x203A; ) + đ?&#x2018;Ľ1 f(1, đ?&#x2018;Ľ2 , â&#x20AC;Ś . đ?&#x2018;Ľđ?&#x2018;&#x203A; ).
Esso ammette una relazione duale.
Il teorema di Shannon solitamente viene applicato iterativamente ad ottenere la prima forma canonica come somma di prodotti. Il procedimento è un poco lungo ma ben definito.
In pratica quando è nota la tavola della verità tutti questi calcoli non si fanno ma si usa una regola pratica che voglio spiegare con un esempio strampalato ma chiarificatore.
Ammettiamo di avere la seguente funzione f(x, y, z) per la quale la relazione dominio codonomio è definita dalla seguente tavola della verità .
x
y z
f(x, y, z)
0
0
0
1
0
0
1
1
- 56 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
0
Per osservazione si nota che f(x,y,z) vale 1 solo per input che valgono (0,0,0) e (0,0,1).
Immediatamente si scrive f(x,y,z) = x’y’z’ + x’y’z .
A questa si arriva con la regola di indicare la variabile in forma negata quando essa vale 0 in corrispondenza di un elemento di output corrispondente a 1 e in forma non negata quando vale 1.
La forma ottenuta è del tipo somma di prodotti.
Essa è poi manipolabile algebricamente ad esempio raccogliendo a fattore comune (ammessa anche nelle algebre di commutazione …) avendosi
f(x,y,z) = x’y’z’ + x’y’z = x’y’(z’ + z).
- 57 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Ma z’ + z = 1 ∀ z Quindi f(x, y, z) = x’y’ = (x + y)’.
L’ultimo passaggio è il teorema di De Morgan.
Sempre con riferimento all’ultima tavola di verità indicata è possibile scriverla in forma semplificata nel modo seguente, tenendo conto che per ogni coppia di valori della x e della y il valore di z non modifica l’output.
x
y
z
f(x, y, z)
0
0
/
1
0
1
/
0
1
0
/
0
1
1
/
0
La variabile z per come ho impostato è ridondante.
/ indica la condizione di indifferenza.
È bene dare conto di due ulteriori proprietà dell’algebra di Boole.
- 58 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La prima è detta anche implicazione. Per essa si ha x â&#x2030;¤ x + y e xy â&#x2030;¤ x
Sono vere anche due relazioni che costituiscono il cosiddetto teorema del consenso. xy + xâ&#x20AC;&#x2122;z + yz = xy + xâ&#x20AC;&#x2122;z y(x + z) + xâ&#x20AC;&#x2122;z = xy + xâ&#x20AC;&#x2122;z
Nelle algebre di Boole non è ammessa la cancellazione nel senso che da a + b = c + b non discende a=c. Per x = 0 si ha y(0 + z) + 1z = 0y + 1z da cui yz + z = z(y +1) = z Ă&#x2C6; evidente che si arriva a z = z. Per x = 1 y(1 + z) + 0z = 1y + 0z y(1) + 0 = y â&#x2021;&#x2019; y = đ?&#x2018;Ś
Nelle algebre di commutazione non è ammesso dividere per una variabile binaria.
Esiste, come giĂ detto, anche una seconda modalitĂ del teorema del consenso per la quale
- 59 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
(x + y) (x’ + z)(y + z) = (x + y) (x’ + z) Basta fare i duali e si ricade nella prima identità.
Mi sono per così dire complicato la vita a cercare una dimostrazione meno consolidata e la ho trovata nella seguente che in effetti è un poco cervellotica……
Ho ragionato sul II membro per il quale deve essere (x + y) (x’ + z) = 1 oppure (x + y) (x’ + z) = 0. I casi per i quali π (x, y, z) = (x + y) (x’ + z) = 1.
Ho radunato il tutto in forma tabellare
x
y
z
1
1
0
1
0
1
0
1
1
0
1
0
Ma per le posizioni fatte deve essere 1*1*(y + z) = 1
- 60 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Deve quindi essere posta la condizione y + z = 1 compatibile con la precedente tabella.
Pertanto da π(x, y, z) = (x + y) (x’ + z) = 1 il teorema è vero con le limitazioni della tabella, in quanto la condizione y + z = 1 è assorbita dalla medesima, avendosi questa particolare sottotabella.
y
z
1
0
0
1
1
1
Analoghe riflessioni possono farsi per il caso π (x, y, z) = (x + y) (x’ + z) = 0.
In questo caso l’identità è verificata per ognuno dei possibili valori di (y + z).
È opportuno introdurre un po’ di terminologia sicuramente utile per il numero dedicato alle applicazioni.
Viene detta espressione canonica SP una espressione formalizzata da una somma di prodotti.
- 61 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Viene invece detta espressione canonica PS ogni espressione booleana rappresentata da un prodotto di somme.
Ogni prodotto di variabili parte di una espressione canonica SP è detto mintermine.
Ogni somma di variabili booleane di una espressione canonica PS è detto maxtermine.
Ă&#x2C6; bene fare qualche cenno ulteriore al concetto di duale peraltro giĂ definito piĂš sopra.
Sia Ď&#x2C6; = f (đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) una variabile di Boole di n variabili indipendenti di Boole. Il suo duale, che è una funzione di Boole, viene cosĂŹ formalizzato đ?&#x153;&#x201C;đ??ˇ = đ?&#x153;&#x201C;Ě&#x2026; (đ?&#x2018;Ľ Ě&#x2026;Ě&#x2026;Ě&#x2026;, đ?&#x2018;Ľ2 â&#x20AC;Ś.., Ě&#x2026;Ě&#x2026;Ě&#x2026;) đ?&#x2018;Ľđ?&#x2018;&#x203A; 1 Ě&#x2026;Ě&#x2026;Ě&#x2026;,
đ?&#x2018;&#x192;đ?&#x2018;&#x;đ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;&#x2013;đ?&#x2018;?đ?&#x2018;&#x17D;đ?&#x2018;&#x161;đ?&#x2018;&#x2019;đ?&#x2018;&#x203A;đ?&#x2018;Ąđ?&#x2018;&#x2019; , il duale è il negato delle variabili complementate.
In relazione al duale valgono due importanti teoremi (đ?&#x153;&#x201C;đ??ˇ )đ??ˇ = đ?&#x153;&#x201C; đ??źđ?&#x2018;&#x2122; đ?&#x2018;&#x2018;đ?&#x2018;˘đ?&#x2018;&#x17D;đ?&#x2018;&#x2122;đ?&#x2018;&#x2019; del duale riproduce la funzione booeleana data. đ??ˇđ?&#x2018;˘đ?&#x2018;&#x2019; espressioni di Boole equivalenti hanno lo stesso duale, risulta quindi đ?&#x2018;&#x2039; = đ?&#x2018;&#x152; â&#x2021;&#x2019; đ?&#x2018;&#x2039;đ??ˇ = đ?&#x2018;&#x152;đ??ˇ
- 62 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
4. PORTE LOGICHE
Questa tabella ricapitola le proprietà delle varie porte logiche caratterizzate sempre da uno o più ingressi e da una sola uscita. Esse sono implementate con tecnologie diverse
.
La prima porta logica che si considera è detta buffer. Essa si caratterizza per la relazione y = x, nel senso che il valore di uscita (output) y dipende da x (input) nel senso della eguaglianza.
x
y
0
0
1
1.
- 63 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La seconda porta logica AND rappresenta il prodotto logico e nella forma del prodotto di somme è ponibile nella forma y = đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 Anche la porta OR ha due ingressi đ?&#x2018;Ľ1 đ?&#x2018;&#x2019; đ?&#x2018;Ľ2 e la relativa rappresentazione come somma di prodotti è y = đ?&#x2018;Ľ1 + đ?&#x2018;Ľ2 Ă&#x2C6; ammesso, per le porte AND e OR, che si abbia un numero maggiore di 2 degli ingressi.
Ă&#x2C6; poi considerata la porta logica XOR per la cui tavola di veritĂ e quindi per la relativa forma funzionale si rinvia al paragrafo precedente.
Vanno considerate ora due ulteriori porte logiche basiche la porta NOR e la porta NAND.
Detti operatori sono detti funzionalmente completi nel senso che un circuito contenente gate AND, OR e NOT può essere costruito o con sole porte NAND o con sole porte logiche NOR.
- 64 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Quello piÚ sopra è il simbolo logico della porta NAND.
La tavola di verità è la seguente
đ?&#x2018;Ľ1
đ?&#x2018;Ľ2
đ?&#x2018;Ľ1 â&#x2C6;&#x2014; đ?&#x2018;Ľ2 Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;
0
0
1
1
0
1
0
1
1
1
1
0
Il secondo importante gate da considerare è NOR (ovvero lâ&#x20AC;&#x2122;OR negato).
Il simbolo logico di esso è il seguente
- 65 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
A due ingressi corrisponde una uscita come dalla seguente tabella della veritĂ . Si osservi il â&#x20AC;&#x153;pallinoâ&#x20AC;? che lo differenzia graficamente dallâ&#x20AC;&#x2122;operatore OR
đ?&#x2018;Ľ1
đ?&#x2018;Ľ2
Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ1 +đ?&#x2018;Ľ2
0
0
1
1
0
0
0
1
0
1
1
0
Ă&#x2C6; bene a questo punto fare un esempio concreto di rete logica.
Elaboro le riflessioni seguenti da questo esempio che ho â&#x20AC;&#x153;pescatoâ&#x20AC;? nel Web.
- 66 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Si osserva che vi sono due segnali in ingresso, detti A e B. Parimenti vi sono due segnali in uscita, indicati colle lettere S ed R. I segnali A e B viaggiano sui tratti rettilinei.
Da sinistra a destra si notano rispettivamente due operatori NOT, quindi due operatori AND ed un operatore OR. L’uscita di esso è il segnale S.
La questione da chiarire è che relazione esista tra i segnali A, B e il segnale S.
Conviene andare per gradi. Il segnale A entra nel gate and posto in alto. Detto gate ha un secondo ingresso che per la presenza a monte dell’inverter è costituito dal segnale B’ (il negato di B). Ma i due segnali A e B sono anche ingressi del secondo operatore and. Vediamo in che modo. La presenza del secondo inverter fa sì che gli ingressi al gate and siano A’ e B. Le uscite dai due primi due gate and (intesi dall’alto in basso) sono rispettivamente i segnali AB’ e A’B. Essi sono input per il gate or posto in alto di output di segnale S. Quindi S = AB’ + A’B. Queste riflessioni non sono ancora sufficienti a spiegare il circuito logico.
- 67 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Si osserva che i segnali A e B sono gli ingressi di un gate and per il quale R = AB
Anche per questo circuito logico è possibile avere una corrispondente tavola della verità, avente due input A e B e due output R ed S, dipendenti funzionalmente da A e B. In questo caso R ed S sono funzioni booleane ben note.
In realtà i circuiti logici ben vengono implementati con componenti elettroniche, quali i diodi e i transistori come ben si può vedere nella figura seguente
In essa si riconoscono immediatamente i resistori e i transistori n- p- n.
- 68 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Ciò detto vorrei osservare che in genere è data una espressione booleana che deve essere trattata per la sua riduzione ad una delle due forme canoniche.
In realtà la semplificazione delle espressioni è sempre possibile utilizzando i teoremi dell’algebra di Boole.
Per semplificare le funzioni booleane sono stati introdotti particolari metodi quali quello delle K map, dette anche mappe di Karmaugh.
Le mappe di Karmaugh sono particolarmente utili per rappresentare in forma canonica una funzione di Boole. Mi limito a considerare il caso di 4 variabili indipendenti.
Si tratta di una modalità, rappresentativa non algebrica, che reca le medesime informazioni contenute nella tabella della verità.
Gli ingressi sono riportati sia nel senso delle righe che nel senso delle colonne, con l’avvertenza che ogni sequenza differisce da quella precedente per un solo bit, nel senso del codice di Gray. Per esempio se le variabili sono tre la relativa K map è data dalla seguente rappresentazione
x/yz
00
01
11
10
- 69 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
0
…
….
….
….
1
….
….
….
….
Nel senso della riga sono indicate le variabili y e z mentre la variabile x è posta nel senso della colonna. I puntini indicano il valore della variabile dipendente per i corrispondenti valori di x y e z.
Per esempio, la sottoindicata mappa di Karmaugh
x/yz
00
01
11
10
0
1
0
1
0
1
0
0
0
1
evidenzia che la funzione assume valore 1 in corrispondenza dei soli ingressi (0 0 0), (0 1 1), (1 1 0).
Pertanto la funzione f(x,y,z) può essere posta in forma canonica come somma di prodotti nel modo seguente f(x, y, z) = x’y’z’ + x’yz + xyz’
- 70 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Si indica la forma negata ogni qualvolta detta variabile assume valore 0 in corrispondenza di una sequenza di input per il quale il corrispondente output vale 1.
Si indica la forma diretta ogni qualvolta detta variabile assume valore 1 in corrispondenza di una sequenza di input per il quale il corrispondente output vale 1.
Questo metodo si applica quando il numero delle variabili indipendenti è ≤ 6.
Vorrei osservare che la stessa funzione può essere posta in forma canonica come prodotto di somme. Essa contiene tanti fattori quanti sono gli 0 della funzione.
Per la data funzione si può scrivere f(x, y, z) = (x + y + z) (x + y’ + z) (x’ + y + z’) (x’ + y’ + z) (x’ + y’ + z’)
Essa è trattabile algebricamente nel senso seguente f(x, y, z) = (x + z) (y + y’) (x’ + y’ ) (z + z’) (x’ + y + z’) = (x + z) (1) (x’ + y’ ) (1) (x’ + y + z’) = (xx’ + xy’+ zx’ + zy’) (x’ + y + z’) = (0 + xy’+ zx’ + zy’) (x’ + y + z’) = (xy’+ zx’ + zy’) (x’ + y + z’) = xy’x’+ zx’x’ + zy’x’ +xy’y+ zx’y + zy’y + xy’z’+ zx’z’ + zy’z’ = 0+ zx’ + zy’x’ + 0+ zx’y +0 + xy’z’+ 0 + 0 = zx’ + zy’x’ + zx’y + xy’z’ = zx’(y +1) + zx’y + xy’z’ = zx’(1) + zx’y + xy’z’ = zx’(1) + zx’y + xy’z’ = zx’(1 +y) + xy’z’ = zx’ + xy’z’.
- 71 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Ovvero si ha f(x, y, z) = zxâ&#x20AC;&#x2122; + xyâ&#x20AC;&#x2122;zâ&#x20AC;&#x2122;.
In questa funzione si può osservare che per z = 1 si ha f(x, y, z) = z e per z = 0 si ha f(x, y, z) = xyâ&#x20AC;&#x2122;.
Questo è un esempio di K map con cinque variabili di ingresso.
Vi è un punto vieppiÚ importante costituito dalle modalità che consentono, dato un circuito logico con gate AND, OR e NOT, di realizzare un circuito costituito da sole porte NAND o da sole porte NOR.
Giova preliminarmente osservare che detti operatori vengono in letteratura rappresentati differentemente come x NAND y = đ?&#x2018;Ľ â&#x2020;&#x2018; đ?&#x2018;Ś = x â&#x160;&#x2014; đ?&#x2018;Ś = đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; x NOR y = x â&#x2020;&#x201C; đ?&#x2018;Ś = đ?&#x2018;Ľ +đ?&#x2018;Ś
- 72 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Come diretta applicazione dei teoremi di De Morgan è possibile passare da una rappresentazione circuitale contenente operatori OR, AND e NOT a circuiti aventi gates logici NAND o NOR.
Gli operatori NAND e NOR sono commutativi ma non godono della proprietĂ associativa.
Ă&#x2C6; bene partire dai due fondamentali teoremi di De Morgan, ovvero dalle relazioni Ě&#x2026;Ě&#x2026;Ě&#x2026; = đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026; đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ + đ?&#x2018;Ś = đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026; Partiamo dalla prima relazione negandola. Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľđ?&#x2018;Ś = (đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026;)â&#x20AC;&#x2122; â&#x2021;&#x2019; xy = (đ?&#x2018;ĽĚ&#x2026; + đ?&#x2018;ŚĚ&#x2026;)â&#x20AC;&#x2122; đ??źđ?&#x2018;&#x2122; secondo membro ha una immediata descrizione circuitale cosĂŹ sintetizzabile. đ??ź segnali x ed y vengono negati quindi essi costituiscono gli ingressi di una porta OR la cui uscita è ingresso di un inverter. đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
đ?&#x2018;&#x153;đ?&#x2018;&#x;
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
(x, y) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122; , yâ&#x20AC;&#x2122;) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122; + yâ&#x20AC;&#x2122;) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122;+ yâ&#x20AC;&#x2122;)â&#x20AC;&#x2122;
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
Poichè lâ&#x20AC;&#x2122;operatore NOT è unario (un ingresso, una uscita) la scrittura (x, y) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122; , yâ&#x20AC;&#x2122;) deve essere intesa che sono applicati due inverter ai due segnali x ed y, un inverter al segnale x che diviene xâ&#x20AC;&#x2122; ed un distinto inverter per il quale il segnale y che viene commutato in yâ&#x20AC;&#x2122;. đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
La scrittura (x, y) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122; , y) va intesa nel senso che solo il segnale x viene commutato in xâ&#x20AC;&#x2122; mediante un operatore unario NOT mentre il segnale y non viene commutato da un inverter.
- 73 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Il segnale non invertito si propaga senza essere modificato.
đ?&#x2018;&#x201E;đ?&#x2018;˘đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;đ?&#x2018;&#x2013; đ?&#x2018;˘đ?&#x2018;&#x203A; đ?&#x2018;&#x201D;đ?&#x2018;&#x17D;đ?&#x2018;Ąđ?&#x2018;&#x2019; xy è circuitalmente equivalente a due inverter con ingressi rispettivamente x ed y seguito da un gate OR e da un successivo inverter.
đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x201D;đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;đ?&#x2018;&#x153; i due membri del II teorema di De Morgan si ottiene una ulteriore interessante relazione per la quale x + y = Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;ĽĚ&#x2026; đ?&#x2018;ŚĚ&#x2026;
Il primo membro banalmente è lâ&#x20AC;&#x2122;operatore OR.
Il secondo membro definisce due inverter cui sono applicati in ingresso i segnali x ed y che escono in forma negata, quindi un operatore logico AND seguito da un inverter.
Ă&#x2C6; utile ricordare che due inverter in sequenza riproducono il segnale in ingresso nel primo di essi. đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
Infatti x â&#x2020;&#x2019; xâ&#x20AC;&#x2122; â&#x2020;&#x2019; x
Considero la scrittura Ě&#x2026;đ?&#x2018;ĽĚ&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;ŚĚ&#x2026; e la definisco nei termini della formalizzazione piĂš sopra delineata. Essa viene cosĂŹ rappresentata
- 74 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;
(x, y) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122; , yâ&#x20AC;&#x2122;) â&#x2020;&#x2019;
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
(xâ&#x20AC;&#x2122;yâ&#x20AC;&#x2122;) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122;yâ&#x20AC;&#x2122;)â&#x20AC;&#x2122;
Ho cercato di dare un senso piĂš ampio a questo mio modo particolare di rappresentare i circuiti logici evitando di doverli disegnare.
Anzi proprio la carenza di un software adeguato al bisogno mi ha indotto a cercare di costruire una rappresentazione formale coerente e di facile interpretazione.
Ho, quindi, per esemplificare, attinto da un testo in uso (Fedecostante) per fornire la rappresentazione di funzioni note nella loro espressione normale o di cui fosse noto il circuito nella sua veste grafica standard.
Ad esempio data la funzione F(X, Y, Z) = Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x2039;đ?&#x2018;&#x152; + Z la conseguente sua formalizzazione diviene
đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;
(x, y, z ) â&#x2020;&#x2019;
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
đ?&#x2018;&#x153;đ?&#x2018;&#x;
(xy, z) â&#x2020;&#x2019; (đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026;, z) â&#x2020;&#x2019; (đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; + z)
đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;
Si hanno tre variabili booleane x, y, z il primo step (x, y, z ) â&#x2020;&#x2019;
(xy, z) indica che i segnali x ed
y sono gli ingressi di una porta AND mentre il segnale z non viene modificato. đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
Il secondo step (xy, z) â&#x2020;&#x2019; (đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026;, z) indica che il segnale xy viene negato mentre il segnale z non subisce modificazioni.
- 75 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
đ?&#x2018;&#x153;đ?&#x2018;&#x;
Il terzo step, per il quale (đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026;, z) â&#x2020;&#x2019; (đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; + z), evidenzia che i due segnali đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; e z sono gli ingressi di un gate OR e quindi si ha un segnale di uscita corrispondente definito da đ?&#x2018;Ľđ?&#x2018;Ś Ě&#x2026;Ě&#x2026;Ě&#x2026; + z.
Quando è dato il circuito in veste grafica la rappresentazione formale è molto semplice.
Quando per contro sia nota la sola rappresentazione funzionale la rappresentazione formale diventa un poco piĂš ostica.
Andrebbero definire rigorosamente le regole ma esse di fatto sono le medesime dellâ&#x20AC;&#x2122;algebra di Boole.
đ?&#x2018;&#x153;đ?&#x2018;&#x;
Per esempio deve essere minimalmente (Îą, β) â&#x2020;&#x2019; (Ď&#x201E;),ove Îą, β, e Ď&#x201E; sono variabili di Boole.
Lo stesso vale per AND, in quanto si tratta di gate aventi almeno due ingressi.
A titolo eserciziale vorrei applicare il metodo di rappresentazione appena delineato ad una funzione precedentemente studiata ed elaborata per sole esigenze personali.
Essa è f(x, y, z) = zxâ&#x20AC;&#x2122; + xyâ&#x20AC;&#x2122;zâ&#x20AC;&#x2122;
- 76 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La relativa rappresentazione è la seguente
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;
(x, y, z ) â&#x2020;&#x2019; ((đ?&#x2018;Ľ, đ?&#x2018;Ś, đ?&#x2018;§ ) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122;, y, z) â&#x2020;&#x2019;
đ?&#x2018;&#x203A;đ?&#x2018;&#x153;đ?&#x2018;Ą
đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;
(xâ&#x20AC;&#x2122;z, y), (đ?&#x2018;Ľ, đ?&#x2018;Ś, đ?&#x2018;§ ) â&#x2020;&#x2019; (x, yâ&#x20AC;&#x2122;, zâ&#x20AC;&#x2122;) â&#x2020;&#x2019;
(xyâ&#x20AC;&#x2122;zâ&#x20AC;&#x2122;) ) â&#x2020;&#x2019; (xâ&#x20AC;&#x2122;z,
đ?&#x2018;&#x153;đ?&#x2018;&#x;
xyâ&#x20AC;&#x2122;zâ&#x20AC;&#x2122;)â&#x2020;&#x2019; xâ&#x20AC;&#x2122;z + xyâ&#x20AC;&#x2122;zâ&#x20AC;&#x2122;
Ho utilizzato il simbolo â&#x2020;&#x2019; quale mero simbolo di coordinamento.
Esiste una ulteriore porta logica detta buffer three states per il quale si ha un ulteriore segnale di abilitazione.
Esso è ben rappresentato, dal punto di vista logico, dalla seguente figura.
Esso Esso E Esso si differenzia da un buffer ordinario per la presenza di un ulteriore segnale di ingresso, detto enable, o segnale di abilitazione.
- 77 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Sostanzialmente vi sono due ingressi e una uscita il cui valore dipende dal segnale x ma anche dal valore del segnale di abilitazione. In buona sostanza quando il segnale di abilitazione è e = 1 vale y = x mentre quando e = 0 il valore di uscita non è definito.
Si ha una condizione detta alta impedenza.
In questo caso particolare la situazione è ben rappresentata da un circuto aperto ideale.
Questa tabella ben definisce la situazione nei casi possibili, essendo x ed e gli input e y la uscita corrispondente.
x
e
y
0
1
0
1
1
1
0
0
circuito aperto ideale
1
0
circuito aperto ideale
- 78 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
5. MACCHINA DIGITALE E CIRCUITI LOGICI
Va considerata la macchina (o rete) digitale comunemente detta macchina sequenziale o automa a stati finiti. Il modello piÚ generale è detto macchina sequenziale.
Essa è definita da una quintupla del tipo đ?&#x2018;&#x20AC;đ?&#x2018; = { I, U, S, F, G}
I è un insieme di elementi di cardinalitĂ finita, avente come elementi tutti i possibili ingressi đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC; . U è un insieme di elementi di cardinalitĂ finita, avente come elementi tutti le possibili uscite đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC; .
Non necessariamente i due insiemi hanno la medesima cardinalitĂ .
S è un insieme di elementi di cardinalitĂ finita, avente come elementi tutti le possibili uscite đ?&#x2018; đ?&#x2018;&#x; .
Detti insiemi sono detti rispettivamente, alfabeto di ingresso, alfabeto di uscita, e insieme degli stati.
F e G sono due funzioni, dette, rispettivamente, funzione di uscita e funzione di stato.
- 79 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La funzione di uscita ha due input, una sorta di variabili indipendenti, e produce un output costituito da un elemento di U. In termini formali si scrive F : S Ă&#x2014; I â&#x2020;&#x2019; U .
Tale formalizzazione è di immediata interpretazione se si ragiona nel dominio del tempo.
Essa ci dice che alla coppia ( đ?&#x2018; đ?&#x2018;&#x;,đ?&#x2018;Ą , đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC; ,đ?&#x2018;Ą ) viene fatto corrispondere lâ&#x20AC;&#x2122;uscita đ?&#x2018;˘đ?&#x2018;&#x2DC;,đ?&#x2018;Ą . Ovvero con riferimento al tempo t si ha ( đ?&#x2018; đ?&#x2018;&#x;,đ?&#x2018;Ą , đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC; ,đ?&#x2018;Ą ) â&#x2020;&#x2019; đ?&#x2018;˘đ?&#x2018;&#x2DC;,đ?&#x2018;Ą .
Nei sistemi sequenziali si ammette, â&#x2C6;&#x20AC; t noto lo stato del sistema ovvero si ammette noto đ?&#x2018; đ?&#x2018;&#x;,đ?&#x2018;Ą .
Il concetto di stato è sinonimo di condizione in cui il sistema si trova nellâ&#x20AC;&#x2122;intervallo âŚ&#x2039;đ?&#x2018;Ąâ&#x201E;&#x17D; +dt , đ?&#x2018;Ąâ&#x201E;&#x17D;+1+dt)
Il termine dt definisce il ritardo, legato alle tecnologie usate, nella transizione da uno stato allâ&#x20AC;&#x2122;altro per effetto di variazioni degli ingressi.
Si ammette poi la conservazione di stato per il â&#x2C6;&#x2020;t per il quale đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC; ,đ?&#x2018;Ą si mantiene costante.
- 80 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
La formalizzazione matematica standard, peraltro irrealistica, del problema impone che la funzione di stato sia trattata nei termini seguenti
G:GĂ&#x2014;Iâ&#x2020;&#x2019;I da intendersi come ( đ?&#x2018; đ?&#x2018;&#x;,đ?&#x2018;Ą , đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC; ,đ?&#x2018;Ą ) â&#x2020;&#x2019; đ?&#x2018; đ?&#x2018;&#x2DC;,đ?&#x2018;Ą+1 facilmente interpretabile come il fatto che dato lo stato del tempo t e lâ&#x20AC;&#x2122;ingresso pure del tempo si ottiene lo stato al tempo t+ 1.
Dette macchine sono dette deterministiche in quanto lo stato al tempo (t+1) dipende unicamente dallo stato e dagli ingressi al tempo t di campionamento.
Vorrei osservare che non necessariamente đ?&#x2018; đ?&#x2018;&#x2DC;,đ?&#x2018;Ą+1 â&#x2030; đ?&#x2018; đ?&#x2018;&#x;,đ?&#x2018;Ą .
Nel novero delle macchine a stati finiti sono ricomprese le macchine binarie nelle quali I = đ?&#x2018;&#x2C6; = { 0, 1}. Vorrei osservare che lâ&#x20AC;&#x2122;insieme degli stati non è generalmente S = { 0, 1}.
Vi sono particolari reti dette combinatorie per le quali non è necessario introdurre la funzione che definisce lo stato.
- 81 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Esse sono definite rigorosamente da una funzione F di uscita molto semplificata, del tipo F: I â&#x2020;&#x2019; đ??š
U immediatamente definita da đ?&#x2018;&#x2013;đ?&#x2018;&#x2014;,đ?&#x2018;Ą â&#x2020;&#x2019; đ?&#x2018;˘đ?&#x2018;&#x2DC; ,đ?&#x2018;Ą .
- 82 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
6. MACCHINE COMBINATORIE
(esempio di macchina combinatoria, il decoder con due ingressi e quattro uscite)
Una macchina combinatoria è, come giĂ ricordato, tipicamente una macchina nella quale il valore (o i valori) del segnale di uscita dipende dagli ingressi correnti, ovvero per la quale đ?&#x2018;˘đ?&#x2018;Ą = đ?&#x2018;˘đ?&#x2018;Ą (đ?&#x2018;Ľđ?&#x2018;Ą ) ove i vettori đ?&#x2018;˘đ?&#x2018;Ą đ?&#x2018;&#x2019; đ?&#x2018;Ľđ?&#x2018;Ą non hanno generalmente la stessa lunghezza.
La rappresentazione della funzione F nelle macchine (o reti) combinatorie avviene, solitamente, mediante le giĂ note tabelle della veritĂ che mettono in relazione gli ingressi (elementi del dominio della funzione booleana di n variabili di Boole) con il codominio.
Vorrei osservare che le uscite possono essere piĂš di una come le R ed S del circuito in precedenza esaminato.
- 83 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Anche nel caso delle reti logiche combinatorie si assiste al fenomeno dei ritardi per il quale una variazione negli ingressi viene recepita in uscita dopo un intervallo di tempo finito dellâ&#x20AC;&#x2122;ordine di grandezza dei ns. Le macchine combinatorie hanno grande importanza pratica.
Ă&#x2C6; il caso del multiplexer. Per semplicitĂ si considera quello a due ingressi. In esso si hanno due segnali in ingresso, detti đ?&#x2018;Ľ0 đ?&#x2018;&#x2019; đ?&#x2018;Ľ1 e da un segnale binario di selezione s. In termini formali per detta rete combinatoria si ha che per s = 0 si ha đ?&#x2018;˘đ?&#x2018;Ą = đ?&#x2018;Ľ0,đ?&#x2018;Ą đ?&#x2018;&#x161;đ?&#x2018;&#x2019;đ?&#x2018;&#x203A;đ?&#x2018;Ąđ?&#x2018;&#x;đ?&#x2018;&#x2019; per s = 1 si ha đ?&#x2018;˘đ?&#x2018;Ą = đ?&#x2018;Ľ1,đ?&#x2018;Ą , ovvero ha đ?&#x2018;˘đ?&#x2018;Ą = đ?&#x2018;Ľđ?&#x2018; ,đ?&#x2018;Ą è il valore di s al tempo t. Una esaustiva trattazione del multiplexer è contenuta nel testo di Bolchini e altri (pag. 175 e seg.), citato in bibliografia. I multiplexer generalmente contengono n segnali di selezione e 2đ?&#x2018;&#x203A; segnali di ingresso, quindi il vettore đ?&#x2018;Ľđ?&#x2018;Ą đ?&#x2018;&#x2019;â&#x20AC;&#x2122; una stringa binaria di dimensione ( 2đ?&#x2018;&#x203A; + n). Ognuno dei possibili vettori dati è un elemento del dominio della funzione booleana đ?&#x2018;&#x203A; +đ?&#x2018;&#x203A;
đ??ľ2
â&#x2020;&#x2019; B = {0, 1}.
In pratica đ?&#x2018;˘đ?&#x2018;Ą = đ?&#x2018;Ľđ?&#x2018;&#x2014; : (đ?&#x2018;&#x2014;)2 = (đ?&#x2018; đ?&#x2018;&#x203A;,đ?&#x2018;Ą â&#x20AC;Ś . . đ?&#x2018; đ?&#x2018;&#x153;,đ?&#x2018;Ą )2
La funzione duale del multiplexer è espletata dal demultiplexer.
- 84 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Nel demultiplexer ad un ingresso đ?&#x2018;Ľđ?&#x2018;Ą con n segnali di selezione s si hanno 2đ?&#x2018;&#x203A; possibili uscite Ad esempio nel demultiplexer a 4 uscite si hanno due segnali di selezione đ?&#x2018; 0 đ?&#x2018;&#x2019; đ?&#x2018; 1 . Lâ&#x20AC;&#x2122;ingresso x può assumere i soli valori binari 0 oppure 1. Il numero binario (đ?&#x2018; 1 đ?&#x2018; 0 )2 determina lâ&#x20AC;&#x2122;unica uscita per la quale đ?&#x2018;˘(đ?&#x153;?)10=(đ?&#x2018; 1 đ?&#x2018; 0)2 = x Ogni altra uscita vale 0.
Una ulteriore macchina combinatoria è costituita dal decodificatore. Esso ha n ingressi e 2đ?&#x2018;&#x203A; segnali di uscita. Esso non ha segnali di selezione.
La tabella della veritĂ di detta macchina (vedasi ad esempio la figura in inizio di paragrafo), come anche avviene el caso generale di n ingressi e 2đ?&#x2018;&#x203A; uscite, evidenzia che lâ&#x20AC;&#x2122;uscita vale 1 per đ?&#x2018;Śđ?&#x153;? đ?&#x2018;&#x2019;đ?&#x2018; đ?&#x2018; đ?&#x2018;&#x2019;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;đ?&#x2018;&#x153; Ď&#x201E;10 = (đ?&#x2018;Ľ1 đ?&#x2018;Ľ0 )2 .
Una ulteriore interessante macchina combinatoria è il priority encoder. Si tratta di un circuito combinatorio dotato di 2đ?&#x2018;&#x203A; ingressi e di (n +1) uscite. Lâ&#x20AC;&#x2122;uscita z assume valore 1 quando đ?&#x2018;Ľđ?&#x2018;&#x2013; = 0 â&#x2C6;&#x20AC; i â&#x2C6;&#x2C6; { 0,â&#x20AC;Śâ&#x20AC;Ś , 2đ?&#x2018;&#x203A; - 1} altrimenti z = 0. La tavola della veritĂ di detta macchina evidenzia poi che le uscite quando sia dato almeno un i tale che sia đ?&#x2018;Ľđ?&#x2018;&#x2013; â&#x2030; 0 sono đ?&#x2018;˘đ?&#x2018;Ą = (đ?&#x2018;Ś1 đ?&#x2018;Ś0 )2 | (đ?&#x2018;Ś1 đ?&#x2018;Ś0 )2 = max ( đ?&#x2018;&#x2013;)10 : đ?&#x2018;Ľđ?&#x2018;&#x2013; â&#x2030; 0. In tutti questi casi lâ&#x20AC;&#x2122;uscita z vale identicamente 0.
- 85 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
Vanno fatte ulteriori riflessioni all’uopo utilizzando la tabella della verità con tre uscite La tavola della verità di detta funzione viene solitamente data nella forma seguente.
x3
x2
x1
x0
y0
y1
z
0
0
0
0
/
/
1
0
0
0
1
0
0
0
0
0
1
/
0
1
0
0
1
/
/
1
0
0
1
/
/
/
1
1
0
I simboli di indifferenza si giustificano con il fatto che ai fini dell’uscita conta l’1 posto nella posizione più significativa. Essa è scomponibile in tre tavole con una unica uscita, tra cui la seguente.
x3
x2
x1
x0
z
0
0
0
0
1
0
0
0
1
0
0
0
1
/
0
0
1
/
/
0
1
/
/
/
0
- 86 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Immediatamente si ha z = Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ0 Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ1 đ?&#x2018;Ľ Ě&#x2026;Ě&#x2026;Ě&#x2026;2 Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;Ľ3 Per completare la sintesi è necessario utilizzare le K map.
A questo punto è necessario fare qualche approfondimento in relazione alle K map al fine di pervenire alla sintesi delle espressioni delle uscite. Ă&#x2C6; bene riprendere la figura della K map per il caso di quattro variabili indipendenti, come nel modello seguente.
đ?&#x2018;Ľ3 đ?&#x2018;Ľ2 \đ?&#x2018;Ľ1 đ?&#x2018;Ľ0
00
01
11
10
00
â&#x20AC;Ś
A
â&#x20AC;Ś
â&#x20AC;Ś
01
A
X
A
â&#x20AC;Ś
11
A
A.
A
â&#x20AC;Ś
10
â&#x20AC;Ś
â&#x20AC;Ś
â&#x20AC;Ś
â&#x20AC;Ś
I puntini definiscono delle celle. La cella X ha come adiacenti quelle indicata dalla lettera A.
Due celle sono adiacenti se hanno un lato in comune come le A della cella X.
X è adiacente ad ognuna delle A considerate.
- 87 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Due celle sono adiacenti anche quando sono poste alle estremitĂ di una stessa riga o di una stessa colonna.
Mi limito al caso di n variabili indipendenti con n â&#x2030;Ľ 4.
Nei termini piÚ generali due celle si dicono adiacenti quelle associate in output a configurazioni di ingressi, soggette alla variazione di un solo bit. Agli incroci è collocato il valore 0 o 1 della funzione per quei dati valori delle variabili indicate nel senso delle righe e delle colonne
La letteratura (per esempio Fedecostante pag. 50 e segg. ) ben giustifica il procedimento utilizzato per la riduzione della rete logica.
Se ci si riferisce ad una funzione di 4 variabili indipendenti, đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , đ?&#x2018;Ľ3 per la proprietĂ di combinazione vale ad esempio (đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 đ?&#x2018;Ľ3 )+ (đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 đ?&#x2018;Ľâ&#x20AC;˛3 ) =(đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 ) (đ?&#x2018;Ľ3 + đ?&#x2018;Ľâ&#x20AC;˛3 ) = (đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 ) (1) = (đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 ).
Questa è la giustificazione algebrica che sta alla base della semplificazione con il metodo delle K map.
Viene definito quindi il concetto di raggruppamento rettangolare.
- 88 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Esso a volte è indicato con le lettere RR.
Un raggruppamento rettangolare di ordine p è un insieme costituito da 2đ?&#x2018;? celle in cui ognuna di esse ha p celle adiacenti. Un raggruppamento rettangolare ha sempre una potenza di p intero assoluto di elementi.
A questo punto sovvengono due teoremi. Il primo di essi dice che un raggruppamento rettangolare di ordine p descrive una funzione costituita dal prodotto delle ( n- p) variabili che non cambiano di valore prese in forma diretta se hanno valore 1 oppure in forma complementata per quelle di esse che hanno valore 0. Ma si può anche usare, in alternativa, il seguente teorema. Un raggruppamento rettangolare di ordine p descrive una funzione costituita dalla somma delle ( n- p) variabili che non cambiano di valore prese in forma diretta se hanno valore 0 oppure in forma complementata per quelle di esse che hanno valore 1.
In caso nello studio dellâ&#x20AC;&#x2122;adiacenza fosse coinvolta una cella in corrispondenza della quale si ha una condizione donâ&#x20AC;&#x2122;t care essa può essere parte di un raggruppamento ai sensi di uno dei due teoremi.
Vorrei fare un esempio con una macchina combinatoria puramente eserciziale, quale la seguente
- 89 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
đ?&#x2018;Ľ3 đ?&#x2018;Ľ2 \đ?&#x2018;Ľ1 đ?&#x2018;Ľ0
00
01
11
10
00
1
0
0
1
01
0
1
0
1
11
0
0
1
1.
10
1
0
0
1
I raggruppamenti rettangolari sono ad esempio quelli definiti dagli uni dei diversi colori.
Considero il primo raggruppamento rettangolare, quello degli uni color senape. In questo caso varia il valore di đ?&#x2018;Ľ3 per le altre variabili si ha che esse sono costanti al valore 0. Quindi il primo termine della somma è del tipo đ?&#x2018;Ľâ&#x20AC;˛0 đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľâ&#x20AC;˛2 . Occorre ora considerare il raggruppamento costituito dal solo 1 evidenziato in grigio. Per esso si ha il termine del tipo đ?&#x2018;Ľ0 đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľ2 đ?&#x2018;Ľâ&#x20AC;˛3 Per il terzo 1, quello nero, si ha il termine del tipo đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 đ?&#x2018;Ľ3 . Le variabili ci sono tutte perchĂŠ non câ&#x20AC;&#x2122;è variazione di valore ed esse sono tutte nella forma non complementata perchĂŠ in questo caso valgono 1. Occorre, infine, considerare il caso dei quattro uni indicati in colore verde che costituiscono un raggruppamento rettangolare di ordine p = 2, costituito da 4 elementi. Per essi le variabili che non cambiano di valore sono đ?&#x2018;Ľ0 đ?&#x2018;&#x2019; đ?&#x2018;Ľ1 . Il corrispondente termine è đ?&#x2018;Ľâ&#x20AC;˛0 đ?&#x2018;Ľ1 .
- 90 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Vorrei osservare che questo modo di procedere ha portato a considerare raggruppamenti rettangolari tali che la loro unione insiemistica è costituita da tutti e soli gli uni della funzione.
Questo modo di procedere definisce una copertura di una funzione di Boole.
Data una funzione esistono piĂš copertura, ma data una copertura ad essa corrisponde una ed una sola funzione di Boole.
La f associata alla K mappa suindicata si scrive come f( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , đ?&#x2018;Ľ3 ) = đ?&#x2018;Ľâ&#x20AC;˛0 đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľâ&#x20AC;˛2 + đ?&#x2018;Ľ0 đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľ2 đ?&#x2018;Ľâ&#x20AC;˛3 + đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 đ?&#x2018;Ľ3 +đ?&#x2018;Ľâ&#x20AC;˛0 đ?&#x2018;Ľ1
A questo punto posso operare algebricamente nel modo seguente f( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , đ?&#x2018;Ľ3 ) = đ?&#x2018;Ľâ&#x20AC;˛0 đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľâ&#x20AC;˛2 + đ?&#x2018;Ľâ&#x20AC;˛0 đ?&#x2018;Ľ1 + đ?&#x2018;Ľ0 đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľ2 đ?&#x2018;Ľâ&#x20AC;˛3 + đ?&#x2018;Ľ0 đ?&#x2018;Ľ1 đ?&#x2018;Ľ2 đ?&#x2018;Ľ3 = đ?&#x2018;Ľâ&#x20AC;˛0 (đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľâ&#x20AC;˛2 ) +đ?&#x2018;Ľ0 đ?&#x2018;Ľ2 (đ?&#x2018;Ľâ&#x20AC;˛1 đ?&#x2018;Ľâ&#x20AC;˛3 + đ?&#x2018;Ľ1 đ?&#x2018;Ľ3 )
Ai fini di eventuali approfondimenti è necessario ricordare che lâ&#x20AC;&#x2122;obiettivo del progettista è quello di realizzare una rete logica a costo minimo.
Esiste una semplice formula per la quale viene definito il costo totale della rete. Essa è la seguente
- 91 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Costo totale della rete = Costo delle interconnessioni + Costo degli operatori.
Il costo delle interconnessioni è il numero delle variabili contante tante volte quante esse compaiono cui si somma il numero dei termini contenenti almeno due variabili.
Il costo degli operatori è definito dal numero totale dei termini con piÚ di un operatore sommato di 1 quando vi sia piÚ di un termine.
Sono di fondamentale importanza le definizioni seguenti.
1) Data una funzione f( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) dicesi implicante della data funzione ogni funzione g( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) tale che per ogni elemento del dominio per il quale sia g( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) = 1 risulti pure f( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) = 1.
2) Data una funzione f( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) dicesi implicante primo della data funzione ogni funzione g( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) che sia un implicante della funzione f( đ?&#x2018;Ľ0 , đ?&#x2018;Ľ1 , đ?&#x2018;Ľ2 , â&#x20AC;Ś . , đ?&#x2018;Ľđ?&#x2018;&#x203A; ) che non sia un implicante quando si toglie una qualunque variabile che compare nel prodotto.
Un implicante primo che copre un mintermine di f non coperto da altri implicanti di f è detto implicante primo essenziale.
- 92 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
La rete a costo minimo si realizza con implicanti primi essenziali e non.
Le K map hanno il pregio di evidenziarli icto oculi. Vorrei ricordare che le K map e i raggruppamenti rettangolari sono particolarmente utili alla soluzione del problema delle alee statiche e dinamiche.
Uno studio più approfondito delle K map dovrà essere affrontato in un numero ad hoc dedicato alle applicazioni, unitamente all’algoritmo di Quine e McCluskey.
Arrivati a questo punto il lettore dovrebbe agevolmente riprendere le altre due tavole della verità del priority encoder e ridurre alla forma sum of products.
x3
x2
x1
x0
y0
y1
0
0
0
0
/
/
0
0
0
1
0
0
0
0
1
/
0
1
0
1
/
/
1
0
1
/
/
/
1
1
In luogo della condizione di indifferenza si può porre il valore 1.
- 93 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Se in luogo della condizione di indifferenza si pone il valore 0 è possibile ottenere un prodotto di somme.
Vorrei, prima di concludere, considerare il caso di una macchina combinatoria detta sommatore completo, ovvero full hadder. Bisogna in primis dare giustificazione della esigenza di questa rete logica.
Ă&#x2C6; stato evidenziato che la somma binaria nel caso 1 + 1 porta al risultato 0 con riporto di 1.
Pertanto, in via generale, quando si sommano due numeri binari bisogna tenere conto di un eventuale pregresso riporto, esso è quantificato, nei valori ammessi, ovvero 0 oppure 1, da una variabile binaria detta carry in.
Vi sono quindi tre ingressi, quindi tre variabili binarie indipendenti, ovvero x, y e carry in e due variabili in uscita la somma binaria s e il riporto dellâ&#x20AC;&#x2122;operazione di somma corrente, detto carry out.
Nella tabella di veritĂ deve prevedersi che per ogni combinazione ammessa delle variabili siano previsti i due possibili casi di riporto di una pregressa somma, ovvero sia previsto đ?&#x2018;?đ?&#x2018;&#x2013; = 0 e đ?&#x2018;?đ?&#x2018;&#x2013; = 1.
Tenendo conto di Ciò la tabella della verità di detta funzione logica diviene
- 94 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
x
y
đ?&#x2018;?đ?&#x2018;&#x2013;
s
đ?&#x2018;?đ?&#x2018;&#x153;
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Dalla semplice ispezione della tavola si ricava che la prima funzione s (x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) vale in forma sum of products s( x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) = xâ&#x20AC;&#x2122;yâ&#x20AC;&#x2122;đ?&#x2018;?đ?&#x2018;&#x2013; + xâ&#x20AC;&#x2122;yđ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + xyâ&#x20AC;&#x2122;đ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + xyđ?&#x2018;?đ?&#x2018;&#x2013; = xâ&#x20AC;&#x2122; (yâ&#x20AC;&#x2122;đ?&#x2018;?đ?&#x2018;&#x2013; + yđ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; ) + x(yâ&#x20AC;&#x2122;đ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + yđ?&#x2018;?đ?&#x2018;&#x2013; )
Osservo che yâ&#x20AC;&#x2122;đ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + yđ?&#x2018;?đ?&#x2018;&#x2013; = y XNOR đ?&#x2018;?đ?&#x2018;&#x2013; mentre yâ&#x20AC;&#x2122;đ?&#x2018;?đ?&#x2018;&#x2013; + yđ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; = y XOR đ?&#x2018;?đ?&#x2018;&#x2013; A questo punto pongo yâ&#x20AC;&#x2122;đ?&#x2018;?đ?&#x2018;&#x2013; + yđ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; = Îą. Osservo che yâ&#x20AC;&#x2122;đ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + yđ?&#x2018;?đ?&#x2018;&#x2013; = Îąâ&#x20AC;&#x2122; Ciò posto la s( x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) assume la forma seguente s( x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) = s(Îą, x) = xâ&#x20AC;&#x2122;Îą + xđ?&#x203A;źâ&#x20AC;˛ = Îą XOR x = (y XOR c) XOR x
- 95 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Essa viene rappresentata graficamente come x XOR
y XOR
đ?&#x2018;?đ?&#x2018;&#x2013; Tale stato di fatto lo posso formalizzare nel modo seguente. đ?&#x2018;Ľđ?&#x2018;&#x153;đ?&#x2018;&#x;
đ?&#x2018;Ľđ?&#x2018;&#x153;đ?&#x2018;&#x;
(x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) â&#x2020;&#x2019; (x, yâ&#x20AC;&#x2122;đ?&#x2018;?đ?&#x2018;&#x2013; + yđ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; = Îą) â&#x2020;&#x2019; x XOR Îą = f(x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ).
Per la seconda funzione associata alla data macchina combinatoria, quella che definisce il valore del riporto in uscita, detto carry out, in funzione delle medesime tre variabili di ingresso, si ha đ?&#x2018;?đ?&#x2018;&#x153;đ?&#x2018;˘đ?&#x2018;Ą ( x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) = xâ&#x20AC;&#x2122;yđ?&#x2018;?đ?&#x2018;&#x2013; + xyâ&#x20AC;&#x2122;đ?&#x2018;?đ?&#x2018;&#x2013; + xyđ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + xyđ?&#x2018;?đ?&#x2018;&#x2013; = đ?&#x2018;?đ?&#x2018;&#x2013; (đ?&#x2018;Ľâ&#x20AC;&#x2122;đ?&#x2018;Ś + đ?&#x2018;Ľđ?&#x2018;Śâ&#x20AC;&#x2122; ) + xy (đ?&#x2018;?â&#x20AC;˛đ?&#x2018;&#x2013; + đ?&#x2018;?đ?&#x2018;&#x2013; ) = đ?&#x2018;?đ?&#x2018;&#x2013; (đ?&#x2018;Ľâ&#x20AC;&#x2122;đ?&#x2018;Ś + đ?&#x2018;Ľđ?&#x2018;Śâ&#x20AC;&#x2122; ) + xy, đ?&#x2018;&#x153;đ?&#x2018;Łđ?&#x2018;&#x2019; đ?&#x2018;Ľâ&#x20AC;&#x2122;đ?&#x2018;Ś + đ?&#x2018;Ľđ?&#x2018;Śâ&#x20AC;&#x2122; = x XOR y. Il circuito può essere formalizzato come đ?&#x2018;Ľđ?&#x2018;&#x153;đ?&#x2018;&#x;
(x, y, đ?&#x2018;?đ?&#x2018;&#x2013; ) â&#x2020;&#x2019;
đ?&#x2018;&#x17D;đ?&#x2018;&#x203A;đ?&#x2018;&#x2018;
(x, y, đ?&#x2018;?đ?&#x2018;&#x2013; , đ?&#x2018;Ľ đ?&#x2018;&#x2039;đ?&#x2018;&#x201A;đ?&#x2018;&#x2026; đ?&#x2018;Ś) â&#x2020;&#x2019;
đ?&#x2018;&#x153;đ?&#x2018;&#x;
(xy, đ?&#x2018;?đ?&#x2018;&#x2013; (đ?&#x2018;Ľ đ?&#x2018;&#x2039;đ?&#x2018;&#x201A;đ?&#x2018;&#x2026; đ?&#x2018;Ś) ) â&#x2020;&#x2019; xy + đ?&#x2018;?đ?&#x2018;&#x2013; (đ?&#x2018;Ľ đ?&#x2018;&#x2039;đ?&#x2018;&#x201A;đ?&#x2018;&#x2026; đ?&#x2018;Ś) = đ?&#x2018;?đ?&#x2018;&#x153;đ?&#x2018;˘đ?&#x2018;Ą ( x, y, đ?&#x2018;?đ?&#x2018;&#x2013; )
Graficamente si ha pure x XOR
AND
y OR
đ?&#x2018;?đ?&#x2018;&#x2013; AND
Da questa porzione di circuito si desume immediatamente che per đ?&#x2018;Ľ â&#x2030; y đ?&#x2018;?đ?&#x2018;&#x2013; = 0 â&#x2021;&#x2019; đ?&#x2018;?đ?&#x2018;&#x153; = 0. - 96 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Basta ragionare sui valori di output allâ&#x20AC;&#x2122;uscita della porta XOR e del gate AND in basso. Per x = y = 1 si ha đ?&#x2018;?đ?&#x2018;&#x153; = 1 comunque sia đ?&#x2018;?đ?&#x2018;&#x2013; . Per x = y = 0 si ha đ?&#x2018;?đ?&#x2018;&#x153; = 0 comunque sia đ?&#x2018;?đ?&#x2018;&#x2013; .
In realtà i due circuiti andrebbero coordinati in un unico circuito e tale operazione è immediatamente realizzabile dal punto di vista grafico.
I due AND non sono sostituibili con un AND a 4 ingressi, che pure esiste in commercio.
Per una rappresentazione visiva di detto circuito nella sua interezza implementato in altro modo, e con un numero minore di gate (quindi preferibile â&#x20AC;Ś) cinque contro i sei usati in questa sede, si rimanda a Sacchi, Biondo, pag. 259.
- 97 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
7. MACCHINE SEQUENZIALI
Il modello matematico della rete logica sequenziale come introdotto al par. 5 è ideale in quanto non tiene conto dei ritardi, già introdotti in relazione alle macchine senza memoria, quindi prive di stato.
Solitamente per le macchine sequenziali il ritardo ha una durata prestabilita, correlata a un segnale detto clock.
Il sistema viene valutato negli istanti di campionamento, ad ogni colpo di clock.
Allâ&#x20AC;&#x2122;impulso di clock dellâ&#x20AC;&#x2122;istante đ?&#x2018;Ąâ&#x201E;&#x17D; , per effetto degli ingressi correnti in quellâ&#x20AC;&#x2122;istante, avviene la transizione di stato, dipendente pure dagli ingressi correnti, đ?&#x2018; đ?&#x2018;&#x2014; ,â&#x201E;&#x17D;â&#x2C6;&#x2019;1 â&#x2020;&#x2019; đ?&#x2018; đ?&#x2018;§ ,â&#x201E;&#x17D; .
Tale transizione di stato, passaggio da uno stato allâ&#x20AC;&#x2122;altro, avviene con un ritardo dt quindi allâ&#x20AC;&#x2122;istante đ?&#x2018;Ąâ&#x201E;&#x17D; + dt.
Vorrei osservare che non necessariamente đ?&#x2018; đ?&#x2018;&#x2014; ,â&#x201E;&#x17D;â&#x2C6;&#x2019;1 â&#x2030; đ?&#x2018; đ?&#x2018;§ ,â&#x201E;&#x17D; .
- 98 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Non è infrequente il caso di configurazioni di ingressi per i quali si ha z = j ovvero per i quali si può scrivere per successivi campionamenti che đ?&#x2018; đ?&#x2018;&#x2014; ,â&#x201E;&#x17D;â&#x2C6;&#x2019;1 â&#x2030; đ?&#x2018; đ?&#x2018;&#x2014; ,â&#x201E;&#x17D; , ovvero che il sistema resta nel medesimo stato.
Nel caso piĂš ampio possibile dato đ?&#x2018; đ?&#x2018;&#x2014; ,â&#x201E;&#x17D;â&#x2C6;&#x2019;1 a ingressi diversi corrispondono evoluzioni diverse.
Lo strumento formale che consente di ben rappresentare il modello di macchina a stati finiti è fornito da una tabella a doppia entrata detta delle transizioni.
Voglio fare una semplice esemplificazione, senza pretesa che essa rappresenti un qualcosa di definito nella pratica, costituita da una macchina a tre possibili stati con ingressi 0 e 1.
Ci potremmo trovare di fronte ad una raffigurazione del genere.
Ingressi Stato attuale
0
1
A
B,1
C,0
B
B,0
A,1
C
B,0
B,1
- 99 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Questa rappresentazione è di immediata interpretazione. Per ogni stato iniziale e per ogni possibile ingresso è data una coppia (stato futuro, uscita).
Se al tempo đ?&#x2018;Ąâ&#x201E;&#x17D; di campionamento il sistema si trova in A e lâ&#x20AC;&#x2122;ingresso corrente è 0 il sistema dopo un tempo dt si porterĂ nello stato B e lâ&#x20AC;&#x2122;uscita vale 1. Se però al tempo đ?&#x2018;Ąâ&#x201E;&#x17D; di campionamento lâ&#x20AC;&#x2122;ingresso corrente è 0 il sistema dopo un tempo dt si porterĂ nello stato C con uscita 0.
Se al tempo đ?&#x2018;Ąâ&#x201E;&#x17D; di campionamento il sistema si trova in B e lâ&#x20AC;&#x2122;ingresso corrente è 0 il sistema dopo un tempo dt si manterrĂ nello stato B e lâ&#x20AC;&#x2122;uscita vale 0. Se però al tempo đ?&#x2018;Ąâ&#x201E;&#x17D; di campionamento lâ&#x20AC;&#x2122;ingresso corrente è 1 il sistema dopo un tempo dt si porterĂ nello stato A con uscita 1.
Si osservi che quando il sistema è in C esso subirĂ la transizione C â&#x2020;&#x2019; B ma con distinte uscite al variare degli ingressi.
Quello descritto nella tabella è un esempio di modello di Mealy.
Una variazione degli ingressi è per cosÏ dire una condizione necessaria ma non sufficiente per una transizione di stato ai vari tempi di campionamento.
GiĂ queste osservazioni pongono un primo problema, quello di definire lo stato iniziale, detto anche di reset.
- 100 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
È definito (Bolchini e altri, cit.) “come il punto da cui la macchina sincrona inizia ad evolvere”, ovvero come “lo stato della macchina che permette di considerare tutto Ciò che è accaduto in precedenza come privo di significato”.
Una macchina a stati finiti può essere definita nel modello di Mealy, come abbiamo già detto, oppure nel modello di Moore per il quale lo stato corrente deterministicamente definisce l’uscita per ogni valore degli ingressi.
Un esempio di macchina di Moore potrebbe essere dato dalla seguente tabella delle transizioni di stato.
Ingressi Stato corrente
0
1
Uscita
A
B
C
0
B
B
A
1
C
B
B
1
Essa si interpreta come segue. Se il sistema si trova in condizione (stato) A e l’ingresso è 0 esso subisce la transizione A → B mentre se l’ingresso è 1 esso subisce la transizione di stato A → C.
- 101 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
In ogni caso lâ&#x20AC;&#x2122;uscita vale 0. Ă&#x2C6; evidente la correlazione stato corrente uscita.
Ammettiamo che il sistema sia giunto nello stato C allora comunque al campionamento esso subirĂ la transizione C â&#x2020;&#x2019; B con uscita 1, etc.
Una macchina deterministica sincrona viene piĂš correttamente definita dalla sestupla seguente che amplia la definizione piĂš sopra data đ?&#x2018;&#x20AC;đ?&#x2018; = { I, U, S, F, G, đ?&#x2018; 0 } đ?&#x2018;&#x153;đ?&#x2018;Łđ?&#x2018;&#x2019; đ?&#x2018; 0 indica lo stato iniziale che è unico.
Esiste sempre un segnale di inizializzazione che permette la transizione tra uno stato corrente ed uno stato che può definirsi iniziale.
Detto segnale, come è noto, è detto reset.
Nella operativitĂ ogni stato viene codificato con una sequenza binaria.
Nelle applicazioni si rende ampiamente necessario procedere alla riduzione del numero degli stati.
- 102 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
Anche per le tabelle delle transizioni si hanno i due casi di tabelle completamente specificate e delle tabelle non completamente specificate. Si ha una tabella non completamente specificata quando esiste almeno uno stato cui corrisponde almeno un caso di uscita indifferente.
Due stati đ?&#x2018; đ?&#x2018;Ľ đ?&#x2018;&#x2019;đ?&#x2018;&#x2018; đ?&#x2018; đ?&#x2018;Ś sono detti indistinguibili (o equivalenti) se assunti come stati iniziali, per ogni possibile sequenza di ingressi di lunghezza qualunque, determinano sequenze di uscita identiche.
Tutti gli stati indistinguibili sono raggruppabili in un insieme detto classe di equivalenza.
Trattandosi di una relazione di equivalenza la relazione tra stati indistinguibili gode della proprietĂ riflessiva, della proprietĂ simmetrica e della proprietĂ transitiva.
Risulta molto utile ricordare che due righe di una tabella completamente specificata definiscono due stati indistinguibili, nel senso sopra indicato, se, per ogni colonna, le uscite sono identiche e gli stati futuri sono a loro volta indistinguibili.
In sede di approfondimenti si vedrĂ che esiste un particolare algoritmo che consente di procedere alla riduzione degli stati.
- 103 -
* APPUNTI MATEMATICI 16 â&#x20AC;&#x201C; APRILE 2016 *
8. INDICAZIONI BIBLIOGRAFICHE
Nellâ&#x20AC;&#x2122;elaborazione di questo breve saggio mi sono risultati particolarmente utili i seguenti testi, di sicuro interesse per quanti dovessero o volessero approfondire la materia.
Giovanni Fedecostante, Elementi di elettronica digitale, Edizioni CompoMat, 2011.
Enrico Sacchi, Giuseppe Biondo, Elettronica digitale. Analisi e progetto di circuiti logici, Hoepli, 2000.
Cristiana Bolchini, Carlo Brandolese, Fabio Salice, Donatella Sciuto, Reti logiche, II edizione, Apogeo, 2004/2008.
M. Morris Mano, Charles R. Kime, Reti logiche, IV edizione, Pearson, 2008.
E. Cuniberti, L. De Lucchi, Elettronica. Componenti digitali e programmabili, Petrini, 2008.
- 104 -
* APPUNTI MATEMATICI 16 – APRILE 2016 *
PROPRIETÀ LETTERARIA
Questo breve saggio non ha finalità commerciali o lucrative. Ne è autorizzata la divulgazione, anche totale, a condizione che essa non abbia finalità commerciali o lucrative purché essa avvenga con la citazione dell’autore e del soggetto diffusore dell’opera. Nell’elaborare questo studio ho potuto utilizzare diverse pregevoli figure estratte dal Web non potendo purtroppo citare le relative fonti.
- 105 -
pubblicazione a cura di Pascal McLee
2016 Š mclee consulting | web solutions. all rights reserved. web www.pascalmclee.com - mail pas.meli@gmail.com - mob. +39 335 6856486