Patrizio Gravano
APPUNTI MATEMATICI
LE MACCHINE SEQUENZIALI CONSIDERAZIONI GENERALI SULLE MACCHINE CON MEMORIA numeri 40/41 - aprile/maggio 2018
INTRODUZIONE
Ho deciso di dedicare questo numero di Appunti matematici allo studio delle macchine sequenziali. La trattazione e’ riservata agli aspetti logici e teorici. Sara’
infatti
opportuno
introdurre
una
terza
parte
di
elettronica digitale dedicata agli aspetti circuitali. Ulteriormente
nel
futuro
sara’
necessario
un
adeguato
approfondimento che superi la caratterizzazione di teoria dei circuiti analogici e digitali per entrare nel merito della fisica che sta alla base del funzionamento dei transistori, avendo come punto di riferimento gli elementi contenuti nel primo capitolo dell’elettronica di Millmann. Da esso partiranno gli sviluppi della teoria. Pertanto
questo
numero
e’
limitato
alle
nozioni
teoriche
strettamente necessarie per comprendere gli aspetti logici del funzionamento delle macchine sequenziali, dette anche macchine (o automi) con memoria.
E’ ben evidente che ad ogni macchina trattata teoricamente corrisponde un particolare supporto fisico che andrebbe studiato in termini circuitali complessivi e di componenti circuitali.
Cosi’ come nel campo dell’elettrotecnica si studia, ad un certo punto,
il
funzionamento
fisico
del
condensatore,
o
dell’induttore, in questo contesto, considerata la dimensione hardware
(circuito
fisico)
sara’
necessario
capire
il
funzionamento del transistore, andando, come anticipato, ben oltre le solite considerazioni, seppur importanti, di natura circuitale. Questi sono utili approfondimenti che dovranno essere portati ad esecuzione con numeri ad hoc. Ho deciso di dedicare al matematico americano Edward Moore la copertina di questo numero. Egli, con il suo connazionale prof. Mealy, introdusse uno dei due modelli teorici che descrivono il funzionamento degli automi con memoria.
Quanto ai contenuti concreti dalla nozione astratta di macchina con memoria, si perverra’ allo studio dei cosiddetti flip flop e a quello dei contatori e dei registri. Roma, marzo 2018
Patrizio Gravano patrizio.gravano@libero.it
Reti logiche sequenziali
La macchina sequenziale e’ detta anche automa a stati finiti. Da un punto di vista matematico la rete sequenziale e’ definita da una quintupla M = {đ??ź, đ?‘ˆ, đ?‘†, đ??š, đ??ş} dove I indica l’insieme di tutti i possibili ingressi (input), U l’insieme i cui elementi sono tutte le possibili
uscite
(output),
S
e’
l’insieme
dei
possibili stati interni. F
e
G
sono
due
funzioni
dette,
rispettivamente,
funzione di uscita e funzione di stato.
In particolare si ha: F : S Ă— đ??ź → đ?‘ˆ
e
G : S Ă— đ??ź → đ?‘†
Il
formalismo
F
:
S
Ă—
đ??ź
→
đ?‘ˆ
e’
interpretabile
immediatamente.
Vuol semplicemente dire che dato uno stato interno dell’automa al tempo t e dato un ingresso a tale coppia ordinata, indicata come (
(đ?‘ đ?‘Ľđ?‘Ąâ‰¤đ?‘˜ , đ?‘–đ?‘Śđ?‘Ąâ‰¤â„Ž), corrisponde univocamente una uscita – sempre, in condizioni di idealita’, riferita al tempo t
- individuata come ���≤� .
Formalmente con riferimento alla funzione F si puo’ scrivere che: đ??š :(đ?‘ đ?‘Ľđ?‘Ąâ‰¤đ?‘˜ , đ?‘–đ?‘Śđ?‘Ą
≤ℎ)
Assegnato
uno
macchina
→ ���≤� .
stato
e
sequenziale
fornito
l’uscita
un
ingresso
della
alla
macchina
e’
univocamente determinata.
Gli elementi degli insiemi I e U sono detti elementi degli alfabeti di ingresso e di uscita. Non
necessariamente
possono
pure
avere
i
due
alfabeti
distinta
coincidono
cardinalita’,
e
cioe’
possono essere costituiti da un numero distinto di elementi.
In modo del tutto analogo puo’ essere spiegata la cosiddetta funzione di stato.
Infatti il formalismo G : S Ă— đ??ź → đ?‘† e’ immediatamente interpretabile
nel
senso
che
ad
una
coppia
del
prodotto cartesiano S Ă— đ??ź corrisponde un solo valore dello stato che definisce una transizione di stato.
A partire dallo stato della macchina al tempo t un dato ingresso, riferito sempre al tempo t, determina una
transizione
solitamente
da
di uno
stato
nel senso
stato
che
all’altro,
si
tra
passa quelli
possibili.
In astratto i due stati, riferiti al tempo t ed al tempo (t+1) possono essere anche eguali. Cio’ ovviamente non e’ vero in generale.
In termini rigorosi il formalismo G : S Ă— đ??ź → đ?‘† e’ declinabile scrivendo che: (đ?‘ đ?‘Ľđ?‘Ąâ‰¤đ?‘˜ , đ?‘–đ?‘Śđ?‘Ąâ‰¤â„Ž)
Ovviamente rispetto
→ đ?‘ đ?‘Ľđ?‘Ą+≤đ?‘˜1.
il
considerare
all’ingresso
e’
l’uscita una
istantanea
semplificazione
accettata rispetto a quanto accade nella realta’. Con riferimento al formalismo utilizzato la t posta ad esponente definisce il tempo, mentre i numeri a deponente dei simboli s, i ed u.
Macchina digitale
E’ possibile semplificare la rappresentazione di una macchina ammettendo che gli alfabeti di ingresso I e di uscita U siano tali che I = đ?‘ˆ = {0,1}. Anche per la macchina binaria conservano validita’ le nozioni di funzione di uscita e di funzione di stato.
Per la rappresentazione di un circuito sequenziale si utilizza il formalismo del diagramma a blocchi. Il diagramma a blocchi di un circuito sequenziale e’ sostanzialmente il seguente.
Ingressi
uscite
Stato futuro
Questo schema a blocchi, ricavato dal testo di Mano, va spiegato nei dettagli in quanto la direzione delle frecce e le indicazioni relative allo stato potrebbero essere equivocate.
I
due
ingressi
nel
circuito
combinatorio
devono
intendersi sostanzialmente contemporanei, almeno in via astratta e quindi riferiti al tempo t, inteso in senso istantaneo. Analoga riflessione vale per l’uscita. Lo
stato
uscente
dal
circuito
combinatorio
deve
intendersi riferito indicato come “stato futuro” viene conservato in memoria e diviene lo stato presente al tempo (t+1) quando l’ingresso al circuito combinatorio del segnale che
viene chiamato input e’ parimenti
riferito al tempo (t+1). La corrispondente uscita (output) e’ pure essa riferita al tempo (t+1).
Distinzione tra macchine sincrone e asincrone
Nelle macchine sequenziali le variabili di ingresso e di uscita possono essere misurate. Lo stato e’ la memoria della macchina. Dato
lo
stato,
un
ingresso
determina
una
uscita
dipendente dall’ingresso ma anche dallo stato. Le variabili di stato, corrispondenti ai possibili stati della macchina, sono un numero finito.
Le macchine con memoria vengono ordinariamente distinte in:
macchine sequenziali sincrone;
macchine sequenziali asincrone.
Nelle macchine sequenziali sincrone l’evoluzione dello stato e’ realizzata in corrispondenza di un segnale dovuto ad una sorgente indipendente di sincronizzazione caratterizzata da un segnale periodico.
La variazione (transizione) di stato nelle macchine asincrone non obbedisce a detto principio, per cui in astratto la transizione di stato e’ direttamente legata alla variazione degli ingressi.
Macchina deterministica
Una macchina sequenziale e’ detta deterministica se e solo se lo stato del sistema al tempo (t + 1)
dipende
dallo stato al tempo t e dagli ingressi pure valutati al tempo t.
Modello di circuito sequenziale sincrono Una
rappresentazione
di
un
circuito
sequenziale
sincrono potrebbe essere la seguente.
In questa rappresentazione simbolica
il clock chiude
i due circuiti contemporaneamente il che consente al dato acquisito dalla memoria (stato futuro) di giungere alla
macchina
combinatoria
per
essere
elaborato
contemporaneamente al (ai) valore/i di ingresso in modo che la macchina generi un segnale di uscita ed uno stato futuro che diverra’ stato corrente al successivo colpo di clock.
La rappresentazione della macchina sequenziale sincrona mutuata da Mano e Kime
La
rappresentazione
della
macchina
sequenziale
sincrona mutuata dal testo di mano e Kime e’ la seguente.
I
Macchina combinatoria
U Stato futuro
Memoria
Clock
Indica che le funzioni F e G “operanoâ€? nel circuito combinatorio, risultando che: đ?‘˘đ?‘Ą = đ??š(đ?‘ đ?‘Ą,đ?‘–đ?‘Ą) đ?‘ đ?‘Ą+1 = đ??ş(đ?‘ đ?‘Ą,đ?‘–đ?‘Ą)
Con riferimento alle due relazioni funzionali il deponente t e’ riferito al tempo, piu’ precisamente agli istanti di campionamento.
Macchina sequenziale sincrona
A livello formale la macchina a stati finiti sincrona, munita e governata da un clock puo’ essere descritta da una sestupla i cui elementi sono l’insieme degli ingressi I, l’insieme delle uscite U, l’insieme degli stati S, le funzioni di uscita F e di stato G.
Infine, si considera il cosiddetto stato iniziale đ?œŽ0.
Lo stato iniziale e’ unico.
In
termini
formali
la
descrizione
della
macchina
sequenziale sincrona e’ la seguente:
M =< đ??ź, đ?&#x2018;&#x2C6;, đ?&#x2018;&#x2020;, đ??š, đ??ş, đ?&#x153;&#x17D;0 >
Il segnale di clock â&#x20AC;&#x201C; Caratteristiche dellâ&#x20AC;&#x2122;onda e diagramma nel dominio del tempo
Il campionamento eâ&#x20AC;&#x2122; solitamente gestito da unâ&#x20AC;&#x2122;onda quadra o rettangolare che nel dominio del tempo eâ&#x20AC;&#x2122; ben rappresentata dal temporizzazione seguente diagramma di temporizzazione. Fronte di salita e fronte di discesa
t
Questa eâ&#x20AC;&#x2122; una rappresentazione idealizzata di unâ&#x20AC;&#x2122;onda quadra. Le frecce rosse indicano i fronti di salita e di discesa del segnale.
Gli
istanti
đ?&#x2018;Ąđ?&#x2018;&#x153; đ?&#x2018;&#x2019;
đ?&#x2018;Ą1
sono
due
successivi
istanti
di
rilevamento dei segnali e di campionamento. Il periodo T in generale puoâ&#x20AC;&#x2122; essere inteso come: T = đ?&#x2018;Ąđ?&#x2018;&#x203A; â&#x2C6;&#x2019; đ?&#x2018;Ąđ?&#x2018;&#x203A;â&#x2C6;&#x2019;1
Il campionamento puoâ&#x20AC;&#x2122; avvenire anche con riferimento al fronte di discesa, uno dei quali eâ&#x20AC;&#x2122; indicato dalla freccia arancione.
A
volte
sono
utilizzate
onde
rettangolari
la
cui
rappresentazione si riconduce al caso seguente.
Anche in questo caso si tratta di onde periodiche il cui periodo T eâ&#x20AC;&#x2122; ben indicato dalla figura.
Evoluzione della macchina nel tempo
Lâ&#x20AC;&#x2122;evoluzione della macchina, e quindi lâ&#x20AC;&#x2122;andamento nel tempo delle uscite e degli stati interni eâ&#x20AC;&#x2122; data se e solo se sono note le sequenze degli ingressi nei vari istanti t successivi a đ?&#x2018;Ą0 , istante di avvio della machina, oltre alle funzioni F e G oltre allo stato inziale đ?&#x153;&#x17D;0.
Gli istanti t sono quelli nei quali i circuiti della figura
rappresentativa
della
macchina
sequenziale
sincrona sono, nella rappresentazione ideale, chiusi per effetto dellâ&#x20AC;&#x2122;impulso di clock.
La macchina sequenziale di Mealy
Nella macchina di Mealy lâ&#x20AC;&#x2122;uscita dipende dallo stato corrente e dallâ&#x20AC;&#x2122;ingresso corrente .
In altri termini eâ&#x20AC;&#x2122; possibile affermare che esiste una funzione riferita a detta macchina đ??šđ?&#x2018;&#x20AC;đ?&#x2018;&#x2019; tale che:
đ??šđ?&#x2018;&#x20AC;đ?&#x2018;&#x2019;| (đ?&#x2018; đ?&#x2018;&#x2DC;đ?&#x2018;Ą , đ?&#x2018;&#x2013;đ?&#x2018;&#x2014;đ?&#x2018;Ą ) â&#x2020;&#x2019; đ?&#x2018;˘đ?&#x2018;&#x2DC;đ?&#x2018;Ą
Esiste anche una funzione di stato per una macchina di Mealy per la quale ad uno stato corrente ed a dati ingressi correnti corrisponde in modo univoco uno ed uno solo stato futuro. In termini formali possiamo scrivere che: đ??şđ?&#x2018;&#x20AC;đ?&#x2018;&#x2019;| (đ?&#x2018; đ?&#x2018;&#x2DC;đ?&#x2018;Ą , đ?&#x2018;&#x2013;đ?&#x2018;&#x2014;đ?&#x2018;Ą ) â&#x2020;&#x2019; đ?&#x2018; đ?&#x2018;&#x2DC;đ?&#x2018;Ą+1
Sia ad esempio data la macchina di Mealy seguente.
Stato presente đ?&#x2018; 1 đ?&#x2018; 2
00
01
11
10
đ?&#x2018; 2 , 1 đ?&#x2018; 1 , 0
đ?&#x2018; 2 , 0 đ?&#x2018; 2 , 1
đ?&#x2018; 2 , 1 đ?&#x2018; 1 , 0
đ?&#x2018; 2 , 0 đ?&#x2018; 2 ,1
Ad esempio se lo stato presente eâ&#x20AC;&#x2122; đ?&#x2018; 2 e lâ&#x20AC;&#x2122;ingresso corrente eâ&#x20AC;&#x2122; 11 lâ&#x20AC;&#x2122;uscita ad essi coeva saraâ&#x20AC;&#x2122; 0 e lo stato futuro risulteraâ&#x20AC;&#x2122; essere eguale a đ?&#x2018; 1 .
Osservazioni e casi particolari di macchine di Mealy Eâ&#x20AC;&#x2122; possibile fornire un esempio e costruire una tabella delle transizioni di una macchina di Mealy avente due
stati interni. La seguente rappresentazione grafica evidenzia
gli
ingressi
dato
lo
stato
e
la
corrispondente uscita (ad essi coeva) e il nuovo stato rappresentato dal rettangolo immediatamente a destra.
La tabella corrispondente eâ&#x20AC;&#x2122; la seguente.
Stato presente
ingressi
00
01
11
10
đ?&#x2018; 1
đ?&#x2018; 1,0
đ?&#x2018; 1, 1
đ?&#x2018; 1, 1
đ?&#x2018; 1, 1
đ?&#x2018; 2
đ?&#x2018; 2,0
đ?&#x2018; 2 ,1
đ?&#x2018; 2, 1
đ?&#x2018; 2 ,1
In realtaâ&#x20AC;&#x2122; eâ&#x20AC;&#x2122; sufficiente un solo stato interno. Si ricade quindi nel caso di una macchina combinatoria.
La
corrispondente
tabella
rappresentativa
eâ&#x20AC;&#x2122;
seguente.
Ingressi
Uscita
00
0
01
1
11
1
10
1
Dalla tabella della veritaâ&#x20AC;&#x2122;
si puoâ&#x20AC;&#x2122; scrivere che:
đ?&#x2018;&#x2013;Ě&#x2026;1đ?&#x2018;&#x2013;2 + đ?&#x2018;&#x2013;1đ?&#x2018;&#x2013;2 + đ?&#x2018;&#x2013;1đ?&#x2018;&#x2013;Ě&#x2026;2 = đ?&#x2018;&#x2013;2(đ?&#x2018;&#x2013;1 + đ?&#x2018;&#x2013;Ě&#x2026;1) +đ?&#x2018;&#x2013;1đ?&#x2018;&#x2013;Ě&#x2026;2 = đ?&#x2018;&#x2013;2 + đ?&#x2018;&#x2013;1đ?&#x2018;&#x2013;Ě&#x2026;2 ove in generale đ?&#x2018;&#x2013;Ě&#x2026; indica il negato di i.
Il corrispondente circuito logico eâ&#x20AC;&#x2122; il seguente.
Le tavole degli operatori NOT, AND e OR sono ben note.
la
Per comoditaâ&#x20AC;&#x2122; esse si riportano qui sotto.
X
đ?&#x2018;ĽĚ&#x2026;
0
1
1
0
Per la porta logica AND la tavola eâ&#x20AC;&#x2122; , come noto, la seguente.
x
y
xy
0
0
0
1
0
0
0
1
0
1
1
1
La porta logica OR ha la seguente tavola di veritaâ&#x20AC;&#x2122; .
x Y
x+y
0 0
0
1 0
1
0 1
1
1 1
1
Un ulteriore esempio puoâ&#x20AC;&#x2122; consentire di affermare che partendo da una ipotesi astratta di esigenza di una macchina di Mealy si giunge alla conclusione che per risolvere il problema eâ&#x20AC;&#x2122; sufficiente considerare una macchina combinatoria.
Ci si chiede come funziona la seguente macchina di Mealy ?
Stato presente
00
01
11
10
đ?&#x2018; 1
đ?&#x2018; 1, 0
đ?&#x2018; 1, 1
đ?&#x2018; 1, 1
đ?&#x2018; 1, 1
đ?&#x2018; 2
đ?&#x2018; 2, 0
đ?&#x2018; 2 , 1
đ?&#x2018; 2, 1
đ?&#x2018; 2 ,1
Si ipotizzi sia đ?&#x153;&#x17D;0 = đ?&#x2018; 1 lo stato iniziale .
Eâ&#x20AC;&#x2122; possibile con i dati del problema rappresentare ingressi, uscite e stati nel tempo come segue.
0
00
0
00
1
1
0
01
01
11
In questo modello astratto questa ipoteca macchina funziona come segue:
â&#x2013;Ş uscita 0 quando i due ingressi sono eguali
â&#x2013;Ş uscita 1 quando i due ingressi sono diseguali.
Anche in questo caso non eâ&#x20AC;&#x2122; necessario un circuito sequenziale in quanto eâ&#x20AC;&#x2122; sufficiente un unico stato.
Un unico stato eâ&#x20AC;&#x2122; sufficiente in quanto a prescindere dallo stato lâ&#x20AC;&#x2122;uscita vale 0 oppure 1 a seconda che i segnali siano eguali o meno.
Sotto questo profilo gli stati đ?&#x2018; 1 đ?&#x2018;&#x2019; đ?&#x2018; 2 sono il medesimo stato.
Da ultimo si puoâ&#x20AC;&#x2122; fare un esempio di macchina di Mealy quale la seguente.
Stato presente
00
01
11
10
đ?&#x2018; 1
đ?&#x2018; 1, 0
đ?&#x2018; 1, 0
đ?&#x2018; 2, 1
đ?&#x2018; 1, 0
đ?&#x2018; 2
đ?&#x2018; 2, 0
đ?&#x2018; 2 , 0
đ?&#x2018; 2, 0
đ?&#x2018; 2 ,0
Tale macchina indica lâ&#x20AC;&#x2122;uscita
1
se e solo se i due
ingressi sono 11 non tenendo conto della eventuale permanenza degli ingressi
11
nei successivi istanti
di valutazione, indicando lâ&#x20AC;&#x2122;uscita 0 se per un dato istante lâ&#x20AC;&#x2122;ingresso eâ&#x20AC;&#x2122; 11 e lo eâ&#x20AC;&#x2122; pure per il successivo istante di valutazione.
Sono cerchiati i â&#x20AC;&#x153;motiviâ&#x20AC;? per i quali non ci si puoâ&#x20AC;&#x2122; ricondurre al caso di una macchina sequenziale.
La macchina sequenziale di Moore Per Moore la funzione di uscita dipende dal solo stato corrente. In termini formali si puoâ&#x20AC;&#x2122; scrivere che:
đ?&#x2018; đ?&#x2018;&#x2013;đ?&#x2018;Ą â&#x2020;&#x2019; đ?&#x2018;˘đ?&#x2018;&#x2014;đ?&#x2018;Ą
đ??šđ?&#x2018;&#x20AC; |
In termini formali una macchina di Moore si caratterizza per una funzione di stato đ??şđ?&#x2018;&#x20AC;, ove la M denota che si tratta di una macchina di Moore, potendo dire che:
đ?&#x2018;Ą đ??şđ?&#x2018;&#x20AC; | (đ?&#x2018;&#x2013;đ?&#x2018;&#x153;đ?&#x2018;Ą , đ?&#x2018;&#x2013;1đ?&#x2018;Ą , â&#x20AC;Ś â&#x20AC;Ś , đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1 ) â&#x2020;&#x2019; đ?&#x2018; đ?&#x2018;&#x2013;đ?&#x2018;Ą+1
Gli
esponenti
t
e
(t+1)
sono
riferiti
allâ&#x20AC;&#x2122;istante
attuale e allâ&#x20AC;&#x2122;istante futuro.
Tabella delle transizioni di una macchina di Moore In questa rappresentazione si eâ&#x20AC;&#x2122; ammesso che il numero degli ingressi sia n e lo stato successivo eâ&#x20AC;&#x2122; per una data combinazione degli ingressi lo stato eâ&#x20AC;&#x2122; definito univocamente e sempre dato, privo di condizione do not care.
Data la relazione funzionale introdotta dalla đ??šđ?&#x2018;&#x20AC; la tabella
delle
transizioni
di
stato
ha
una
semplificata che evidenzia la citata dipendenza.
forma
Eâ&#x20AC;&#x2122; costituita da due colonne estreme che contengono gli stati presenti e le possibili uscite, dipendenti dagli stati al tempo t e, in condizioni di idealitaâ&#x20AC;&#x2122;, riferite allo stesso istante (assenza di ritardi). In questa rappresentazione si eâ&#x20AC;&#x2122; ammesso che il numero degli ingressi sia n
e lo stato successivo eâ&#x20AC;&#x2122; per una
data combinazione degli ingressi lo stato eâ&#x20AC;&#x2122; definito univocamente e sempre dato, privo di condizione do not care.
Data la relazione funzionale introdotta dalla đ??šđ?&#x2018;&#x20AC; la tabella
delle
transizioni
di
stato
ha
una
forma
semplificata che evidenzia la citata dipendenza.
Eâ&#x20AC;&#x2122; costituita da due colonne estreme che contengono gli stati presenti e le possibili uscite, dipendenti dagli stati al tempo t e, in condizioni di idealitaâ&#x20AC;&#x2122;, riferite allo stesso istante (assenza di ritardi). Per ogni possibile configurazione degli ingressi eâ&#x20AC;&#x2122; univocamente definito lo stato futuro.
Si
puoâ&#x20AC;&#x2122;
proporre
â&#x20AC;&#x153;didatticaâ&#x20AC;?
come
una quella
tavola seguente
delle che
transizioni consente
di
spiegare quanto giaâ&#x20AC;&#x2122; detto in via generale ed astratta.
Stato presente
Ingressi 00
01
Uscita
11
10
đ?&#x2018; 1
đ?&#x2018; 1
đ?&#x2018; 2
đ?&#x2018; 1
đ?&#x2018; 2
0
đ?&#x2018; 2
đ?&#x2018; 2
đ?&#x2018; 1
đ?&#x2018; 2
đ?&#x2018; 1
1
Questa macchina combinatoria ha due distinti stati interni a ciascuno dei quali corrisponde una uscita.
Se al tempo
t, quando
lo stato
eâ&#x20AC;&#x2122;
ad
esempio
đ?&#x2018; 2
che ha il ruolo di stato iniziale, gli ingressi sono 11 lo stato si conserva (lo stato futuro, imputabile ai nuovi ingressi eâ&#x20AC;&#x2122; lo stesso, cioeâ&#x20AC;&#x2122; non avviene transizione di stato).
Ove lo stato iniziale sia il medesimo e gli ingressi sono 10 allora allo stato corrente đ?&#x2018; 2 seguiraâ&#x20AC;&#x2122; lo stato đ?&#x2018; 1.
Macchina di Moore che segnala se due segnali non sono eguali
Banalmente entro la matrice i valori allâ&#x20AC;&#x2122;incrocio tra uno stato corrente
ed
una
possibile
configurazione
degli
ingressi
individuano lo stato futuro. Ho rappresentato nella tabella delle transizioni una macchina sequenziale per la quale una transizione dellâ&#x20AC;&#x2122;uscita 0 â&#x2020;&#x2019; 1 oppure lâ&#x20AC;&#x2122;altra possibile
1 â&#x2020;&#x2019; 0
indica che gli ingressi non
sono eguali. La tabella di questa macchina eâ&#x20AC;&#x2122; la seguente:
Stato
Ingressi
Uscita
presente 00
01
11
10
đ?&#x2018; 1
đ?&#x2018; 1
s2
đ?&#x2018; 1
đ?&#x2018; 2
0
đ?&#x2018; 2
đ?&#x2018; 2
đ?&#x2018; 1
đ?&#x2018; 2
đ?&#x2018; 1
1
Si tratta della tabella giaâ&#x20AC;&#x2122; considerata.
Si ammetta che lo stato iniziale sia đ?&#x153;&#x17D;0 = đ?&#x2018; 1 .
Si puoâ&#x20AC;&#x2122; costruire una storia della macchina come quella che segue, ove i valori posti tra un box e il successivo vanno intesi come
rappresentativi
campionamento.
degli
ingressi,
nei
vari
istanti
di
00 S1 U=0
01 S1 U=0
S2 U=1
00
01 S1 U=0
S2 U=1
Quando entra un input del tipo HL oppure LH
le uscite riferite
a due istanti di campionamento successivi si caratterizzano per una delle due possibili transizioni.
Le nuvolette racchiudono i valori degli ingressi a partire dal tempo inziale.
I circuiti combinatori
Nella macchina combinatoria ideale gli ingressi e le uscite devono ritenersi coeve potendo sostanzialmente scrivere che:
đ?&#x2018;˘đ?&#x2018;Ą = đ?&#x2018;&#x201C;(đ?&#x2018;&#x2013;đ?&#x2018;Ą)
Solitamente si utilizza una rappresentazione grafica del tipo seguente.
I
In realtaâ&#x20AC;&#x2122;
U
anche nella ipotesi poco realistica di un ingresso
e di una sola uscita
non eâ&#x20AC;&#x2122;
corretto ritenere che lâ&#x20AC;&#x2122;ingresso
e il dato elaborato dal circuito combinatorio siano coevi.
Sotto lâ&#x20AC;&#x2122;ipotesi semplicistica di un ingresso
e di una uscita
eâ&#x20AC;&#x2122; comunque necessario introdurre un ritardo di elaborazione dellâ&#x20AC;&#x2122;uscita rispetto allâ&#x20AC;&#x2122;ingresso.
La rappresentazione corrispondente eâ&#x20AC;&#x2122; la seguente.
â&#x2C6;&#x2020;t
f
In realtaâ&#x20AC;&#x2122; combinatoria
eâ&#x20AC;&#x2122;
necessario introdurre un modello di macchina
ancora piuâ&#x20AC;&#x2122;
sofisticata.
Infatti in generale una macchina combinatoria ha n ingressi ed m uscite con m = đ?&#x2018;&#x203A;
oppure m â&#x2030; đ?&#x2018;&#x203A;.
Lo schema a blocchi eâ&#x20AC;&#x2122; sostanzialmente il seguente.
Si
eâ&#x20AC;&#x2122;
đ?&#x2018;&#x2013;0
đ?&#x2018;˘0
đ?&#x2018;&#x2013;đ?&#x2018;&#x203A; â&#x2C6;&#x2019;1
đ?&#x2018;˘đ?&#x2018;&#x161;â&#x2C6;&#x2019;1
soliti,
nellâ&#x20AC;&#x2122;introdurre
le
macchine
combinatorie,
utilizzare il termine â&#x20AC;&#x153;scatola neraâ&#x20AC;? , traduzione dellâ&#x20AC;&#x2122;inglese black
box,
comportamento
in
quanto
ci
si
riferisce
generalmente
al
esterno â&#x20AC;&#x153;cioeâ&#x20AC;&#x2122; il modo in cui risponde lâ&#x20AC;&#x2122;uscita
della rete ad un cambiamento del suo ingressoâ&#x20AC;? (Geraci). Affinando le riflessioni sulle macchine combinatorie si puoâ&#x20AC;&#x2122; affermare che â&#x20AC;&#x153;la struttura interna di una rete puoâ&#x20AC;&#x2122; essere descritta da un gruppo di espressioni algebriche (logiche) tante quante sono le uscite della reteâ&#x20AC;? (Geraci). In definitiva le varie uscite possono essere rappresentate formalmente come segue: đ?&#x2018;˘0 = đ?&#x2018;&#x201C;0(đ?&#x2018;&#x2013;0,đ?&#x2018;&#x2013;1, â&#x20AC;Ś . , đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC;,â&#x20AC;Ś . đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;) â&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Śâ&#x20AC;Ś. đ?&#x2018;˘đ?&#x2018;&#x161;â&#x2C6;&#x2019;1 = đ?&#x2018;&#x201C;đ?&#x2018;&#x161;â&#x2C6;&#x2019;1(đ?&#x2018;&#x2013;0,đ?&#x2018;&#x2013;1, â&#x20AC;Ś . , đ?&#x2018;&#x2013;đ?&#x2018;&#x2DC;,â&#x20AC;Ś . đ?&#x2018;&#x2013;đ?&#x2018;&#x203A;)
Per una macchina combinatoria reale le uscite non sono coeve alle entrate ma sono riferite agli istanti t +â&#x2C6;&#x2020;đ?&#x2018;Ąđ?&#x2018;&#x2014; essendo
0 â&#x2030;¤ đ?&#x2018;&#x2014;
â&#x2030;¤ đ?&#x2018;&#x161; â&#x2C6;&#x2019; 1, potendo ogni uscita avere un ritardo caratteristico. Quando non si considerano i ritardi di propagazione si parla di reti combinatorie ideali. Occorre, in particolare ricordare che (Geraci) â&#x20AC;&#x153;Nei circuiti fisici con i quali sono costruite le reti logiche vi sono inoltre
elementi
parossistici
(capacitori,
induttori)
che
generano
ritardi e distorcono segnaliâ&#x20AC;? e quindi eâ&#x20AC;&#x2122; opportuno â&#x20AC;&#x153;pensare di schematizzare il fenomeno associando un ritardo ad ogni portaâ&#x20AC;?. Occorre quindi considerare un periodo transitorio, inteso quale lâ&#x20AC;&#x2122;intervallo di tempo compreso tra la prima transizione di una variabile in ingresso e lâ&#x20AC;&#x2122;ultima transizione che si determina in uscita. Detto periodo eâ&#x20AC;&#x2122; di durata variabile
e dipende dal
circuito che si considera. Questo dato di fatto eâ&#x20AC;&#x2122; di fondamentale rilevanza e utile a comprendere il fenomeno delle alee statiche del primo ordine (vedi infra).
Gli elementi di memoria
La macchina a stati finiti eâ&#x20AC;&#x2122; costituita da un blocco combinatorio e da un elemento di memoria, generalmente costituito da flip flop, circuiti che saranno esaminati successivamente.
Se
n
eâ&#x20AC;&#x2122;
il
numero
dei
flip
flop
utilizzati allora il numero massimo dei possibili stati della macchina eâ&#x20AC;&#x2122; 2đ?&#x2018;&#x203A; .
La spiegazione di questa relazione e’ immediata. Infatti,
2n
e’
proprio
il
numero
delle
possibili
combinazioni delle sequenze di zeri e di uni di estensione pari ad n. Con tre flip flop si puo’ costruire una macchina
avente
8 stati, corrispondenti alle sequenze 000,… … . . , 111.
Si consideri una porzione di macchina sequenziale come da figura (vedi sopra)
Si e’ gia’ constatato che il blocco combinatorio e’ collegato alla memoria. In effetti, come gia’ ricordato, una delle uscite del blocco combinatorio e’ un ingresso per la memoria. Tale collegamento porta il segnale di stato futuro che dovra’ essere appunto memorizzato e al successivo colpo di clock verra’ inviato al blocco combinatorio. In realta’ si tratta di un insieme di collegamenti, che inviano
i
segnali
l’espressione
binaria
di
eccitazione
dello
stato
che futuro
definiscono che
verra’
immagazzinato nella memoria e al momento di campionamento verra’ condotto al blocco combinatorio, per l’elaborazione tramite le funzioni F e G.
Queste considerazioni
ben
giustificano
la seguente
rappresentazione formale della macchina sincrona.
ingressi
uscite esterne
segnali di eccitazione attualizzazione dello stato futuro
clock
Macchina sequenziale asincrona
Non tutte le macchine sequenziali sono sincrone. Quelle prive di un segnale di clock che consente di definire gli istanti nei quali vengono valutati gli ingressi e che consentono la valutazione dello stato
(stato futuro
â&#x2020;&#x2019; stato attuale).
La rappresentazione a blocchi di detta macchina eâ&#x20AC;&#x2122; la seguente.
ingressi
Macchina
uscite esterne
combinatoria
segnali di eccitazione Memoria attualizzazione dello stato futuro dopo un Ritardo â&#x2C6;&#x2020;đ?&#x2018;Ą
Schematizzazione del funzionamento della
macchina asincrona
Nelle macchine asincrone manca il clock. La sequenza logica degli eventi eâ&#x20AC;&#x2122; sostanzialmente la seguente. â&#x153;&#x201C;
varia almeno uno degli ingressi
â&#x153;&#x201C;
varia lâ&#x20AC;&#x2122;uscita
â&#x153;&#x201C;
variano i segnali di eccitazione
Le variazioni di uscita e dei segnali di eccitazione sono istantanee. La transizione di stato avviene dopo un â&#x2C6;&#x2020;đ?&#x2018;Ą.
Rappresentazione a blocchi della macchine I due blocchi (memoria e ritardo) vanno intesi nel senso che gli ingressi alla memoria, costituiti dai segnali di eccitazione, che definiscono il nuovo stato, vengono elaborati
con un ritardo â&#x2C6;&#x2020;đ?&#x2018;Ą segnali
di eccitazione al tempo t
.
segnali di eccitazione al tempo t
nuovo stato inviato al blocco comb.
al tempo t +â&#x2C6;&#x2020;đ?&#x2018;Ą
Quella seguente eâ&#x20AC;&#x2122; una rappresentazione a blocchi della macchina di Mealy.
I tre blocchi C.C.U., C.C.I. e M sono rispettivamente il
circuito
combinatorio
di
uscita,
il
circuito
combinatorio di ingresso e la memoria. Le uscite dipendono dagli ingressi e dallo stato corrente. La rappresentazione corrispondente per una macchina di Moore eâ&#x20AC;&#x2122; la seguente.
Nella
macchina
di
Moore
lâ&#x20AC;&#x2122;uscita
dipende
esclusivamente dallo stato corrente.
Anche nella macchina di Moore gli ingressi e le uscite sono coeve e sincronizzate con il segnale di clock.
Modello misto di automa a stati finiti
Si tratta sostanzialmente di una machina di Mealy che ammette uscite di Moore o uscite di Mealy.
Diagramma e tabella degli stati di una macchina di Moore
Il diagramma degli stati e’ detto anche diagramma di flusso. Ogni stato e’ rappresentato da un cerchio. Ogni transizione di stato e’ indicata da una freccia. Per ogni stato si indicano le uscite (per Moore stato corrente → uscite).
Nel caso della macchina di Moore lo stato non varia al variare degli ingressi, dovendo attendere il successivo istante di valutazione per processare gli ingressi ed avere il nuovo stato. Ma ottenuto esso come stato corrente si hanno di per se’ le corrispondenti uscite.
Ad esempio
indica
X/1
lo stato X cui e’ associata una data uscita. Nel caso
di specie l’uscita e’ 1.
La relazione (stato corrente, uscita) e’ univoca. La transizione seguente.
tra due stati e’ descrivibile come da esempio
Questa rappresentazione intende affermare che la macchina si trova nello stato X (cui corrisponde l’uscita 1)
che
per effetto
degli ingressi 01 avra’ stato interno Y cui corrisponde l’uscita 0.
Si avra’ modo di constatare che dato uno stato corrente distinti ingressi
a
possono corrispondere distinti stati futuri.
Una situazione che si puo’ verificare e’ quella per la quale una macchina (nel caso di specie una macchina di Moore) che si trova in uno stato X, per effetto di una data configurazione degli ingressi si mantenga in detto stato. In questo caso si parla di loop o di autoanello.
In questo caso la macchina resta nello stato A quando gli ingressi sono 11. E’ possibile fare un esempio di diagramma per una macchina di Moore. Si ipotizzi, per esempio, una macchina di Moore a tre stati interni, detti A, B e C.
Si ammette che ad ogni stato corrisponda una uscita.
Ad una data uscita possono corrispondere piu’ distinti stati. Una rappresentazione elementare potrebbe essere la seguente.
Stato
Uscita
Ingresso 0 Ingresso 1
A
0
B
C
B
1
A
B
C
0
B
C
L’interpretazione e’ immediata. Ad esempio se lo stato corrente e’ C (con uscita coeva 0)
ove
l’ingresso sia 1 allora lo stato futuro sara’ C. Per realizzare questa macchina saranno necessari due
flip flop.
Il diagramma degli stati corrispondenti alla tabella e’ il seguente.
Una macchina in A resta in A con uscita 0 fino a quando l’ingresso resta 1 (loop).
Gli operatori logici NOR e NAND
Per comprendere gli operatori logici NOR e NAND occorre preliminarmente ricordare che essi esprimono, rispettivamente, la negazione degli operatori OR e AND. In altri termini NOR significa NOT OR e NAND significa NOT AND. Si puo’ considerare quindi la tabella di verita’ di NOR, avendo che:
X
Y
X OR Y
NOR
O
O
O
1
O
1
1
O
1
O
1
O
1
1
1
O
Gia’ dalla tabella si comprende che per ottenere NOR e’ sufficiente collegare una porta NOT alla porta OR, come segue.
Occorre, quindi, considerare l’operatore NAND. X
Y
XY
NAND
O
O
O
1
O
1
O
1
1
O
O
1
1
1
1
O
Evidentemente per ritornare allâ&#x20AC;&#x2122;operatore AND occorre ed eâ&#x20AC;&#x2122; sufficiente aggiungere un operatore NOT, poicheâ&#x20AC;&#x2122; ̿̿̿̿. XY = đ?&#x2018;&#x2039;đ?&#x2018;&#x152;
Le porte logiche possono avere un numero discreto di ingressi > 2. Vanno ricordate le due equivalenze di De Morgan.
La spiegazione della equivalenza deriva immediatamente dal teorema di De Morgan in quanto la scrittura đ?&#x2018;&#x2039;Ě&#x2026;đ?&#x2018;&#x152;Ě&#x2026; eâ&#x20AC;&#x2122; equivalente a đ?&#x2018;&#x2039;Ě&#x2026; + đ?&#x2018;&#x152;Ě&#x2026;.
Molto banalmente quando si ha un circuito che contiene lâ&#x20AC;&#x2122;operatore perviene
NOR
o
lâ&#x20AC;&#x2122;operatore
immediatamente
NAND,
alla
o
entrambi
possibilitaâ&#x20AC;&#x2122;
si di
rappresentarlo con gli operatori OR, AND, e OR a partire dalla definizione di NOR e di NAND. In generale il passaggio da porte NOT oppure NOR a porte AND, OR, NOT eâ&#x20AC;&#x2122; una banale applicazione dei due teoremi Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x2039;đ?&#x2018;&#x152; = đ?&#x2018;&#x2039;Ě&#x2026; + đ?&#x2018;&#x152;Ě&#x2026;
di De Morgan per i quali:
Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x2039; + đ?&#x2018;&#x152; = đ?&#x2018;&#x2039;Ě&#x2026;đ?&#x2018;&#x152;Ě&#x2026; Si osservi che đ?&#x2018;&#x2039;Ě&#x2026;đ?&#x2018;&#x152;Ě&#x2026; â&#x2030; Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x2039;đ?&#x2018;&#x152;. Negando i due membri delle due relazioni di De Morgan si ottengono due relazioni circuitali rilevanti (Fedecostante). Cioâ&#x20AC;&#x2122; consente di ammettere le seguenti due equivalenze circuitali e logiche.
Logica boleana e logiche relative ai dispositivi La macchina binaria astratta conosce solo due valori 0 oppure 1. Le componenti reali del blocco combinatorio sono caratterizzate dalla presenza di correnti o tensioni aventi due distinti valori alto (H) oppure basso (L), riferiti a particolari valori (range) di accettabilitaâ&#x20AC;&#x2122;. Solitamente ci si attiene a tensioni misurate in volt (V). Detti range vengono solitamente rappresentati come segue: đ?&#x2018;&#x2030;đ?&#x2018;?đ?&#x2018;? â&#x2030;¤ đ??ť â&#x2030;¤ đ?&#x2018;&#x2030;đ??ťđ?&#x2018;&#x161;đ?&#x2018;&#x2013;đ?&#x2018;&#x203A; 0 â&#x2030;¤ đ??ť â&#x2030;¤ đ?&#x2018;&#x2030;đ??żđ?&#x2018;&#x161;đ?&#x2018;&#x17D;đ?&#x2018;Ľ Generalmente, per le uscite i margini per H ed L sono minori rispetto ai range accettati per le tensioni in ingresso. I valori ammessi per i circuiti reali sono dipendenti da considerazioni tecnologiche e costruttive.
Una distinzione sostanziale che solitamente viene rappresentata eâ&#x20AC;&#x2122; quella tra â&#x20AC;&#x153;logica positivaâ&#x20AC;? e â&#x20AC;&#x153;logica negativaâ&#x20AC;?. Questi termini attendono alla relazione che esiste tra valori logici e valori di tensione H ed L. In logica positiva si ha la seguente corrispondenza:
0 â&#x2020;&#x201D; đ??ż , 1 â&#x2020;&#x201D; đ??ť. In logica negativa vale la seguente corrispondenza: 0 â&#x2020;&#x201D; đ??ť , 1 â&#x2020;&#x201D; đ??ż. In realtaâ&#x20AC;&#x2122; esiste una ulteriore logica, detta con indicazioni di polaritaâ&#x20AC;&#x2122;, cosiâ&#x20AC;&#x2122; schematizzata.
Questa schematizzazione significa che per portare lâ&#x20AC;&#x2122;ingresso al livello 1 eâ&#x20AC;&#x2122; necessario che la tensione sia al livello L, mentre per portare lâ&#x20AC;&#x2122;ingresso al livello 0 la tensione venga portata a livello H. La situazione opposta eâ&#x20AC;&#x2122; rappresentata dalla schematizzazione
Analoghe rappresentazioni sono date per la polarita’ all’uscita. Un caso potrebbe essere il seguente.
In questo caso all’uscita logica 1 corrisponde la tensione L e all’uscita logica 0 corrisponde la tensione H.
Rappresentazione di una funzione di Boole mediante un circuito costituito da interruttori
I valori logici 0 e 1 possono essere associati al circuito aperto e al circuito chiuso rispettivamente Ad esempio l’operatore AND puo’ essere fatto corrispondere a due interruttori in serie.
X
Y
XY
O
O
O
O
1
O
1
O
O
1
1
1
Mentre l’operatore OR
puo’ essere fatto corrispondere con il
seguente circuito elettrico con interruttori in derivazione.
Ecco ora un banale esempio di circuito.
Allâ&#x20AC;&#x2122;espressione Y = A +đ??ľđ??ś corrisponde il seguente circuito con interruttori.
Mappe di Karnaugh PPer ogni macchina combinatoria, quindi priva di memoria, eâ&#x20AC;&#x2122; data lla tavola di veritaâ&#x20AC;&#x2122;. Se ad esempio eâ&#x20AC;&#x2122; data una macchina combinatoria con 4 ingressi ed una
sola
uscita
eâ&#x20AC;&#x2122;
possibile
data
la
tavola
della
veritaâ&#x20AC;&#x2122;
esprimere la funzione di Boole mediante una espressione detta somma di prodotti. Esiste una modalitaâ&#x20AC;&#x2122; di rappresentazione di una macchina combinatoria detta mappa di Karnaugh (o K map) in forma di una matrice contenente le uscite (zeri o uni) in funzione degli ingressi collocati in modo tale che due distinti e successivi ingressi differiscano per una ed una sola cifra binaria. Se si hanno 4 ingressi il numero delle sequenze di ingresso (tutte distinte) saraâ&#x20AC;&#x2122; banalmente 24 .
Ammettiamo per ipotesi che l’uscita sia 1 in corrispondenza della sequenza di ingressi 0010 e sia 0 in corrispondenza di ogni altro ingresso (quindi negli altri 24 − 1 casi). La forma canonica del tipo somma di prodotti e’ immediatamente implementabile. L’unico (in questo caso….) prodotto di variabili e’ detto, come noto, mintermine. La corrispondente rappresentazione in temrini di K map e’ la seguente. 00
01
11
10
00 01 11 10 1
Dove non e’ stato messo nulla si intende che c’e’ uno zero. I rettangolini contenenti gli zeri e gli uni sono dette celle. Due celle sono adiacenti quando corrispondono a configurazioni di ingressi che differiscono per un solo bit. Esempi di celle adiacenti.
Mmintermini
Sinotticamente si ha la rappresentazione sopra indicata. Lla rappresentazione si interpreta che
ad una espressione di Boole
corrisponde una ed una sola funzione
e che una funzione ammette
infinite espressioni di Boole. Per ragioni di semplicitaâ&#x20AC;&#x2122;, anche tenuto conto che lâ&#x20AC;&#x2122;oggetto della ricerca eâ&#x20AC;&#x2122; costituito dalle macchine sequenziali, ci si limita a considerare i mintermini. Operativamente nelle K map vengono definiti i raggruppamenti rettangolari adiacenti.
costituiti 2đ?&#x2018;&#x2DC; celle, ognuna delle quali ha k celle
La
giustificazione
teorica
dellâ&#x20AC;&#x2122;impiego
dei
raggruppamenti
rettangolari sta nel teorema di combinazione per il quale, con riferimento ai mintermini, consente di affermare che: AX +đ??´đ?&#x2018;&#x2039;Ě&#x2026;
= đ??´
La dimostrazione eâ&#x20AC;&#x2122; immediata quando si applichi la proprietaâ&#x20AC;&#x2122; di raccoglimento a fattore AX +đ??´đ?&#x2018;&#x2039;Ě&#x2026; =
A(X + đ?&#x2018;&#x2039;Ě&#x2026;) =
comune, avendo che:
A, c.v.d..
Un raggruppamento rettangolare individua una funzione di Boole costituita dalle variabili che non variano nel raggruppamento prese in modo complementato quando esse valgono 0. Viene detta copertura lâ&#x20AC;&#x2122;insieme unione degli insiemi
aventi come
elementi tutti i raggruppamento rettangolari in modo che detta unione contenga tutti gli uni della mappa. Ad una copertura corrisponde una ed una sola funzione di Boole, mentre ad una funzione di Boole corrisponde almeno una copertura di uni, salvo il caso della funzione identicamente nulla, cioeâ&#x20AC;&#x2122; f(đ?&#x2018;Ľ1,đ?&#x2018;Ľ2,â&#x20AC;Ś . , đ?&#x2018;Ľđ?&#x2018;&#x203A;) = 0, â&#x2C6;&#x20AC;đ?&#x2018;Ľđ?&#x2018;&#x2013;â&#x2030;¤đ?&#x2018;&#x203A;. Esempio di raggruppamenti rettangolari e di distinte coperture per una data funzione di Boole.
Ad una copertura corrisponde una funzione mentre ad una funzione sono associabili piuâ&#x20AC;&#x2122; funzioni.
Reti combinatorie a piuâ&#x20AC;&#x2122; livelli e a piuâ&#x20AC;&#x2122; uscite Come noto una rete combinatoria ha un numero m di ingressi ed un numero m di uscite. Si puoâ&#x20AC;&#x2122; ipotizzare il caso particolare di due ingressi e di due uscite, come da seguente tavola di veritaâ&#x20AC;&#x2122;.
đ?&#x2018;&#x2013;0
đ?&#x2018;&#x2013;1
đ?&#x2018;˘0
đ?&#x2018;˘1
0
0
0
1
0
1
0
1
1
0
1
0
1
1
0
0
Considerando la prima tabella di veritaâ&#x20AC;&#x2122; si ha che: đ?&#x2018;&#x2013;0
đ?&#x2018;&#x2013;1
đ?&#x2018;˘0
0
0
0
0
1
0
1
0
1
1
1
0
La forma canonica come somma di prodotti si riduce al prodotto đ?&#x2018;&#x2013;0đ?&#x2018;&#x2013;Ě&#x2026;1 . Eâ&#x20AC;&#x2122; possibile ora considerare la seconda tavola di veritaâ&#x20AC;&#x2122; avendo che:
đ?&#x2018;&#x2013;0
đ?&#x2018;&#x2013;1
đ?&#x2018;˘1
0
0
1
0
1
1
1
0
0
1
1
0
In questo caso la somma di prodotti (mintermini) eâ&#x20AC;&#x2122;: đ?&#x2018;&#x2013;Ě&#x2026;đ?&#x2018;&#x153; đ?&#x2018;&#x2013;Ě&#x2026;1 + đ?&#x2018;&#x2013;Ě&#x2026;đ?&#x2018;&#x153; đ?&#x2018;&#x2013;1 = đ?&#x2018;&#x2013;Ě&#x2026;0(đ?&#x2018;&#x2013;1 + đ?&#x2018;&#x2013;Ě&#x2026;1) = đ?&#x2018;&#x2013;Ě&#x2026;0 (ove đ?&#x2018;&#x2013;Ě&#x2026; eâ&#x20AC;&#x2122; il negato di i) La macchina combinatoria eâ&#x20AC;&#x2122; cosiâ&#x20AC;&#x2122; rappresentabile.
Latch
I piu’ semplici elementi di memoria sono i latch nei quali alla variazione degli ingressi corrisponde una variazione delle uscite. Sia nei latch che nei flip flop (vedi infra) l’uscita, solitamente indicata con la lettera Q, indica il dato memorizzato, e quindi la sequenza di zeri e uni esprime (dato il numero dei flip flop, per esempio) lo stato codificato. In
alcuni
latch
e’
presente
un
segnale
di
abilitazione.
Segnali di set e reset I segnali di set e di reset portano a livello 1 e a livello 0, rispettivamente l’uscita del latch. Analoga considerazione vale per i flip flop.
Circuiti reazionati La memoria, caratteristica tipica dei circuiti sequenziali, e’ ottenuta utilizzando il feedback (reazione). Si parla al riguardo di circuiti reazionati.
Un esempio elementare di circuito reazionato eâ&#x20AC;&#x2122; il seguente, costituito da due porte logiche NAND rispetto alle quali lâ&#x20AC;&#x2122;uscita di una e un ingresso per lâ&#x20AC;&#x2122;altra. La rappresentazione eâ&#x20AC;&#x2122; la seguente.
Lâ&#x20AC;&#x2122;uscita đ?&#x2018;˘1 della porta in alto eâ&#x20AC;&#x2122; un ingresso per la seconda porta e lâ&#x20AC;&#x2122;uscita đ?&#x2018;˘2 della porta in basso eâ&#x20AC;&#x2122; un ingresso per la porta in alto. La reazione puoâ&#x20AC;&#x2122; essere positiva o negativa a seconda che il segnale di reazione si sommi o si sottragga al dato in ingresso.
Quello dellâ&#x20AC;&#x2122;ingresso eâ&#x20AC;&#x2122; un evidente caso di reazione positiva.
Latch con porte NOR La rappresentazione del latch con porte NOR eâ&#x20AC;&#x2122; la seguente. R ed S sono gli ingressi, i segnali di SET e di
RESET
determinano
rispettivamente. il
feedback
I sono
chiarezza con due distinti colori.
collegamenti
che
rappresentati
per
đ?&#x2018;¸đ?&#x2019;&#x2022;+đ?&#x;?
Ě&#x2026;đ?&#x2018;¸Ě&#x2026;đ?&#x2019;&#x2022;Ě&#x2026;+Ě&#x2026;đ?&#x;?Ě&#x2026;
đ?&#x2018;&#x201E;đ?&#x2018;Ą
Ě&#x2026;đ?&#x2018;&#x201E;Ě&#x2026;đ?&#x2018;Ą
Set
Reset
0
0
0
1
0
1
1
0
1
0
1
1
0
0
Quando i segnali di ingresso, set e reset, sono entrambi pari a 0 allora lo stato al tempo successivo si conserva eguale al valore riferito al tempo t (memoria). Quando risulta S = 1 e R = 0
si ha che il valore
di Q al tempo (t+1) diviene 1, quindi si ha: đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = 1
Nel caso S = 0 e R = 1 si ha che il valore di Q al tempo (t+1) diviene 0, quindi si ha: đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = 0 La rappresentazione del latch eâ&#x20AC;&#x2122; la seguente.
Eâ&#x20AC;&#x2122; utile considerare la relazione, sotto forma di tabella, tra i segnali set, reset, il valore dello stato allâ&#x20AC;&#x2122;istante t e il corrispondente valore dello stato al successivo campionamento, quindi allâ&#x20AC;&#x2122;istante convenzionalmente
riferito
allâ&#x20AC;&#x2122;istante
(t+1).
Nei
termini piuâ&#x20AC;&#x2122; generali eâ&#x20AC;&#x2122; possibile rappresentare la relazione tra tali segnali con la tabella seguente, nella quale non si eâ&#x20AC;&#x2122; tenuto in considerazione il caso, non accettabile, che i segnali di set e di reset siano entrambi H. đ?&#x2018;&#x201E;đ?&#x2018;&#x2021;
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
S
R
0
0
0
0
0
0
1
1
1
0
0
1
1
0
1
1
0
1
0
0
0
1
1
0
Con la cennata limitazione eâ&#x20AC;&#x2122; possibile costruire la seguente K map ove i valori di riga sono riferiti alle configurazioni dei segnali set e reset, mentre la colonna
principale
eâ&#x20AC;&#x2122;
riferita
allo
stato
dellâ&#x20AC;&#x2122;elemento di memoria riferita al tempo t.
00`
01
11
10
0
1
1
1
1
Ho optato per questa rappresentazione semplificata che conduce alla seguente equazione di funzionamento:
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ?&#x2018;&#x2020;đ?&#x2018;&#x2026;Ě&#x2026; +đ?&#x2018;&#x201E;đ?&#x2018;Ą đ?&#x2018;&#x2026;Ě&#x2026; Per le regole di funzionamento deve essere che S ed R non possono essere contemporaneamente eguali a 1. Devo ritenere che tale equazione di funzionamento sia equivalente a quella canonica dellâ&#x20AC;&#x2122;elemento SR dato. In effetti se S = 1 si ha che đ?&#x2018;&#x2026;Ě&#x2026; = 1 pertanto Sđ?&#x2018;&#x2026;Ě&#x2026; = 1. Quando đ?&#x2018;&#x2026;Ě&#x2026; = 0 deve essere S = 0 e quindi Sđ?&#x2018;&#x2026;Ě&#x2026; = 0. Il
tutto
condizione
eâ&#x20AC;&#x2122;
coerente
sicuramente
in
quanto
necessaria
si
introduce
per
ottenere
una il
valore 1 per lo stato futuro che eâ&#x20AC;&#x2122; quella per la quale sia đ?&#x2018;&#x2026;đ?&#x2018;Ą = 0, o, equivalentemente Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x2026;đ?&#x2018;Ą = 1. In definitiva pare lecito enunciare lâ&#x20AC;&#x2122;equazione di funzionamento nella seguente sembianza: đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ?&#x2018;&#x2020;đ?&#x2018;&#x2026;Ě&#x2026; +đ?&#x2018;&#x201E;đ?&#x2018;Ą đ?&#x2018;&#x2026;Ě&#x2026;
con la limitazione ben nota per S ed
R.
Solitamente la manualistica riporta la tabella delle transizioni di stato nella sembianza seguente.
S
R
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
0
0
đ?&#x2018;&#x201E;đ?&#x2018;Ą
Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą
0
1
0
1
1
0
1
0
1
1
0
0
Lâ&#x20AC;&#x2122;ultima configurazione, evidenziata in rosso, non eâ&#x20AC;&#x2122; accettabile. Per gli elementi SR viene solitamente riportata una ulteriore tabella, detta delle eccitazioni nella forma seguente.
đ?&#x2018;&#x201E;đ?&#x2018;Ą
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
S
R
0
0
0
-
0
1
1
0
1
0
0
1
1
1
-
0
Il
trattino
eâ&#x20AC;&#x2122;
espressione
di
una
condizione
di
indifferenza.
Lâ&#x20AC;&#x2122;equazione caratteristica ordinariamente indicata eâ&#x20AC;&#x2122; la seguente: đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ?&#x2018;&#x2020; +đ?&#x2018;&#x201E;đ?&#x2018;Ą đ?&#x2018;&#x2026;Ě&#x2026;
.
Latch con abilitazione I latch con segnale di abilitazione contengono un ulteriore segnale di ingresso, detto enable e indicato con la sigla EN. Quando il segnale EN vale zero il valore di Q si conserva. Quando il valore di EN risulta 1 occorre distinguere i vari casi come risulta dalla seguente tabella.
Il segnale EN eâ&#x20AC;&#x2122; comunemente detto segnale di gating. Possono essere costituiti da porte NAND.
EN
S
R
đ?&#x2018;&#x201E;đ?&#x2018;&#x2021;+1
0
X
X
đ?&#x2018;&#x201E;đ?&#x2018;&#x2021;
Memoria
1
0
0
đ?&#x2018;&#x201E;đ?&#x2018;&#x2021;
Memoria
1
0
1
0
Reset
1
1
1
1
Modalitaâ&#x20AC;&#x2122; non utilizzabile
1
1
0
1
Set
X indica una condizione di indifferenza Il simbolo circuitale eâ&#x20AC;&#x2122; il seguente.
Anche per il latch SR con segnale di
abilitazione
EN eâ&#x20AC;&#x2122; possibile fornire una tabella che metta in relazione i segnali che pervengono alla macchina combinatoria e
il successivo stato dellâ&#x20AC;&#x2122;elemento
di memoria.
Una conveniente modalitaâ&#x20AC;&#x2122; di rappresentazione del funzionamento
eâ&#x20AC;&#x2122;
sicuramente
offerto
dalla
seguente tabella.
S
R
EN
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
-
-
0
đ?&#x2018;&#x201E;đ?&#x2018;Ą
0
0
1
đ?&#x2018;&#x201E;đ?&#x2018;Ą
0
1
1
0
1
0
1
1
1
1
1
0 (non funzionamento)
Occorre ricordare che:
durante il periodo in cui EN = 1 il latch eâ&#x20AC;&#x2122; trasparente nel senso che variazioni dei segnali S ed R si ripercuotono sullâ&#x20AC;&#x2122;uscita; nel â&#x2C6;&#x2020;đ?&#x2018;Ą in cui cui EN = 0 il latch eâ&#x20AC;&#x2122; opaco nel senso che variazioni dei segnali S ed R non si ripercuotono sullâ&#x20AC;&#x2122;uscita non avendosi le previste transizioni di stato.
Lâ&#x20AC;&#x2122;equazione
caratteristica
del
latch
SR
con
segnale EN eâ&#x20AC;&#x2122; la seguente: đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ??¸Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??¸(đ?&#x2018;&#x2020; + đ?&#x2018;&#x2026;Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą )
Latch D
I
latch
D
sono
funzionamento
anche
contiene
chiamati due
D
gated.
ingressi,
La il
tabella segnale
di di
abilitazione EN, e il segnale D. Quando EN = 0 non si ha transizione di stato e
pertanto si puoâ&#x20AC;&#x2122; scrivere che đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 =
đ?&#x2018;&#x201E;đ?&#x2018;Ą . La tabella di funzionamento eâ&#x20AC;&#x2122; sostanzialmente la seguente. EN
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
D
0
-
đ?&#x2018;&#x201E;đ?&#x2018;Ą
1
0
0
1
1
1
Il trattino indica una condizione di indifferenza.
Quando si elaborano le forme dâ&#x20AC;&#x2122;onda occorre ricordare che una variazione di D (transizione 0 â&#x2020;&#x2019; 1 oppure 1 â&#x2020;&#x2019; 0) viene considerata ogni qual volta avvenga in ogni â&#x2C6;&#x2020;đ?&#x2018;Ą tale che sia 1 il valore di EN.
Flip-flop Per evitare lâ&#x20AC;&#x2122;inconveniente accennato in relazione ai latch del tipo D gated piuâ&#x20AC;&#x2122; sopra considerati sono stati introdotti dispositivi
di
memorizzazione
piuâ&#x20AC;&#x2122;
sofisticati
che
memorizzano la variazione del segnale sul fronte di salita o sul fronte di discesa di un apposito segnale ad onda quadra comunemente detto clock. Per semplificare si puoâ&#x20AC;&#x2122; far comprendere la trasparenza dei latch, per esempio del tipo D gated, come segue.
D
EN
Q
Il flip flop master slave
Il flip flop data
Una ulteriore tipologia di flip flop e’ rappresentata dai flip flop D, detti anche Delay o Data.
Le caratteristiche di funzionamento di questi bistabili possono essere sintetizzate ricordando che:
per D = 1 il valore dello stato futuro e’ 1 comunque valga lo stato corrente; per D = 0 il valore dello stato futuro e’ 0 comunque valga lo stato corrente. E’ sicuramente istruttivo dare una descrizione funzionale di
tale
elemento
di
memoria
all’uopo
tabella descrittiva quale la seguente.
D 0 0 1 1
Stato attuale 0 1 0 1
Stato futuro 0 0 1 1
utilizzando
una
La relazione che collega D, lo stato attuale e lo stato futuro,
inteso
questo
come
una
uscita
eâ&#x20AC;&#x2122;
dato
dalla
seguente somma di mintermini:
Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą +đ??ˇđ?&#x2018;&#x201E;đ?&#x2018;Ą đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ??ˇđ?&#x2018;&#x201E;
Il secondo membro eâ&#x20AC;&#x2122; manipolabile agevolmente usando la proprietaâ&#x20AC;&#x2122; di raccoglimento a fattore comune ed avendo che: Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą +đ??ˇđ?&#x2018;&#x201E;đ?&#x2018;Ą = đ??ˇ(đ?&#x2018;&#x201E; Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą +đ?&#x2018;&#x201E;đ?&#x2018;Ą ) = đ??ˇ. đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ??ˇđ?&#x2018;&#x201E;
I flip flop JK Il
flip flop JK ha due ingressi J e K. In questo caso
eâ&#x20AC;&#x2122; ammesso che risulti J = đ??ž = 1 . La descrizione funzionale del flip flop JK eâ&#x20AC;&#x2122; condensata dalla seguente tabella. J
K
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
0
0
đ?&#x2018;&#x201E;đ?&#x2018;Ą
0
1
0
1
0
1
1
1
đ?&#x2018;&#x201E;đ?&#x2018;Ą
Lâ&#x20AC;&#x2122;equazione
caratteristica
del
flip
flop
JK
eâ&#x20AC;&#x2122;
la
seguente: Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą +đ??ž Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ??˝đ?&#x2018;&#x201E;
Il
valore
dello
stato
corrente
eâ&#x20AC;&#x2122;
sostanzialmente
riconducibile ad un ingresso, mentre lo stato futuro ad una uscita. Ragionando entro questi termini e provvedendo in termini di mintermini (concentrando quindi lâ&#x20AC;&#x2122;attenzione ai casi in cui sia đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = 1) i ha la seguente porzione di tavola della veritaâ&#x20AC;&#x2122;.
J
đ?&#x2018;&#x201E;đ?&#x2018;Ą
K
đ?&#x2018;&#x201E;đ?&#x2018;Ą+1
0
0
1
1
1
0
0
1
1
0
1
1
1
1
0
1
Eâ&#x20AC;&#x2122; possibile scrivere che: Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝đ??ž Ě&#x2026; Ě&#x2026;Ě&#x2026;Ě&#x2026; Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝đ??žđ?&#x2018;&#x201E; đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ?&#x2018;&#x2014;Ě&#x2026;đ??ž đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝đ??ž
Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + = đ?&#x2018;&#x2014;Ě&#x2026;đ??ž
Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą + đ?&#x2018;&#x201E;đ?&#x2018;Ą ) + đ??˝đ??žđ?&#x2018;&#x201E; Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą = Ě&#x2026; (đ?&#x2018;&#x201E; Jđ??ž
Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą = đ??ž Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + Jđ??ž Ě&#x2026; + đ??˝đ??žđ?&#x2018;&#x201E; Ě&#x2026; (đ??˝ Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝) + đ??˝đ??žđ?&#x2018;&#x201E; đ?&#x2018;&#x2014;Ě&#x2026;đ??ž
Ě&#x2026; (đ??˝đ?&#x2018;&#x201E; Ě&#x2026; đ?&#x2018;Ą + đ??˝) = 1 cioeâ&#x20AC;&#x2122; Se K = 0 deve essere necessariamente đ??ž Ě&#x2026; đ?&#x2018;Ą + đ??˝ = 1 sicuramente vera per J = 1, comunque sia lo đ??˝đ?&#x2018;&#x201E; stato đ?&#x2018;&#x201E;đ?&#x2018;Ą
.
La condizione per la quale lo stato futuro sia 0 eâ&#x20AC;&#x2122; quella Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą = 0, o, equivalentemente, Ě&#x2026; (đ??˝ Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝) + đ??˝đ??žđ?&#x2018;&#x201E; per la quale sia đ??ž risulti essere: Ě&#x2026; (đ??˝ Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝) = 0 đ??ž Ě&#x2026;Ě&#x2026;Ě&#x2026;đ?&#x2018;Ą = 0 đ??˝đ??žđ?&#x2018;&#x201E; Intendendo le due equazioni messe a sistema. La seconda equazione eâ&#x20AC;&#x2122; verificata quando eâ&#x20AC;&#x2122; vera almeno una delle tre condizioni seguenti: J = 0, K = 0, đ?&#x2018;&#x201E;đ?&#x2018;Ą = 1. Nasce un problema di compatibilitaâ&#x20AC;&#x2122; delle soluzioni della seconda
equazione
verificata per:
rispetto
alla
prima
che
risulta
K = 1 quando đ??˝ Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝ â&#x2030; 0 vera per đ?&#x2018;&#x2014; = 1. Quando J = 0 allora đ??˝ Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;Ą + đ??˝ â&#x2030; 0 solo quando đ?&#x2018;&#x201E;đ?&#x2018;Ą = 1.
In altri termini affincheâ&#x20AC;&#x2122; lo stato
futuro valga 1 eâ&#x20AC;&#x2122;
necessario che nessuna delle soluzioni di una equazione sia pure soluzione dellâ&#x20AC;&#x2122;altra, o, altrimenti che nessuna terna di valori (J, K, đ?&#x2018;&#x201E;đ?&#x2018;Ą ) sia soluzione comune.
Piuâ&#x20AC;&#x2122; opportunamente eâ&#x20AC;&#x2122; possibile usare la K map mettendo nella prima riga le sequenze relative ai segnali J e K, mentre nella prima colonna i due possibili valori dello stato đ?&#x2018;&#x201E;đ?&#x2018;Ą . La K map che ne consegue con le relative coperture cerchiare eâ&#x20AC;&#x2122; la seguente.
00 0
1
1
01
11
10
1
1
1
Essa porta immediatamente alla equazione caratteristica del flip flop JK che risulta essere la seguente: đ?&#x2018;&#x201E;đ?&#x2018;Ą+1 = đ??˝đ?&#x2018;&#x201E;Ě&#x2026; + đ??žđ?&#x2018;&#x201E; nella quale Q indica lo stato corrente, riferito al tempo t.
I flip flop T I flip flop toggle (comunemente detti anche Trigger flip flop) hanno un unico ingresso detto T. La caratteristica saliente di tali elementi di memoria eâ&#x20AC;&#x2122; che per T =1
lâ&#x20AC;&#x2122;elemento di memoria si caratterizza per
la seguente transizione di stato Q_(t+1) =(Q_t ) Ě&#x2026;. Per T =0 non interviene alcuna transizione di stato nel senso che risulta vero che: Q_(t+1) =Q_t .
La transizione di stato avviene esclusivamente per T =1.
Codifica dello stato Uno stato deve essere associato ad un codice. La scelta del
codice
(Bolchini).
eâ&#x20AC;&#x2122;
legata
anche
a
verifiche
sperimentali
Eâ&#x20AC;&#x2122;, ad esempio, possibile utilizzare la codifica one hot per
la
quale
gli
n
stati
possono
essere
posti
in
corrispondenza con n sequenze distinte, ognuna delle quali contiene uno ed un solo uno e (nâ&#x2C6;&#x2019;1) zeri. Ad esempio per una macchina a 4 stati interni si avrebbe la seguente modalitaâ&#x20AC;&#x2122; di codifica. đ?&#x2018; 0 = 0001 đ?&#x2018; 1 = 0010 đ?&#x2018; 2 = 0100 đ?&#x2018; 3 = 1000 Quattro stati sono codificati con 4 distinte sequenze ognuna delle quali ha un solo 1. Sono considerate invalide le sequenze aventi un numero di uni diverso da 1. Un
ulteriore
modalitaâ&#x20AC;&#x2122;
di
codifica
eâ&#x20AC;&#x2122;
la
cosiddetta
codifica BCD nella quale vengono considerate le sequenze di 4 bit corrispondenti alla traduzione in binario della cifra decimale da 0 a 9. In definitiva le sequenze da 0000 a 1001 corrispondono ai valori da 0 a 9 in base 10.
Questa
codifica
utilizzata
per
(Fedecostante)
rappresentare
le
eâ&#x20AC;&#x2122; cifre
particolarmente di
un
numero,
solitamente in base 10. Ad esempio
(100)10 â&#x2030;Ą (0001, 0000, 0000)đ??ľđ??śđ??ˇ .
Tra le codifiche possibili vi sono anche codifiche dette non sequenziali quali quella Gray. Una codifica eâ&#x20AC;&#x2122; sequenziale se dalla relazione ovvia, riferita alla base 10, nâ&#x2C6;&#x2019;1 < đ?&#x2018;&#x203A; < đ?&#x2018;&#x203A; + 1
si ha đ?&#x203A;ź < đ?&#x203A;˝ < đ?&#x203A;ž, ove
le tre lettere indicano i codici corrispondenti ai tre numeri consecutivi assegnati, qualunque essi siano. Una codifica sicuramente non sequenziale eâ&#x20AC;&#x2122; la codifica Gray. In esso assegnata una stringa quella successiva differisce dalla precedente per un solo bit e cioâ&#x20AC;&#x2122; vale per ogni coppia di sequenze. In altri termini la prima e lâ&#x20AC;&#x2122;ultima sequenza pure differiscono per una cifra.
Trasformazione Moore - Mealy Ho ipotizzato la seguente macchina di Moore astratta.
Stato al tempo t
00
01
11
10
đ?&#x2018; 1
đ?&#x2018; 2
đ?&#x2018; 1
đ?&#x2018; 3
đ?&#x2018; 2
Uscita al tempo t 1
đ?&#x2018; 2
đ?&#x2018; 2
đ?&#x2018; 1
đ?&#x2018; 2
đ?&#x2018; 3
0
đ?&#x2018; 3
đ?&#x2018; 3
đ?&#x2018; 1
đ?&#x2018; 1
đ?&#x2018; 2
1
A tale tabella corrisponde la seguente riferibile alla macchina di Mealy . Essa eâ&#x20AC;&#x2122; costituita da coppie del tipo (stato futuro, uscita coeva allo stato futuro).
đ?&#x2018; 1
00
01
đ?&#x2018; 2 , 0
đ?&#x2018; 1 ,1
11
10
đ?&#x2018; 2 đ?&#x2018; 3
Ad
esempio,
se
lo
stato
corrente
đ?&#x2018; 1 e gli ingressi sono 00 lo stato futuro saraâ&#x20AC;&#x2122; lâ&#x20AC;&#x2122;uscita corrispondente saraâ&#x20AC;&#x2122; 0.
Il passaggio dalla macchina di Mealy a quella di Moore Eâ&#x20AC;&#x2122; data una macchina di Mealy.
eâ&#x20AC;&#x2122; đ?&#x2018; 2 e
Come esempio concreto ho deciso di utilizzare una macchina di Mealy che ho rinvenuto nella manualistica (Biondo, Sacchi). A partire da essa ho impostato un metodo che consente di rappresentare una macchina di Moore equivalente ad essa. Come
detto,
ho
rinvenuto
nella
manualistica
(Sacchi,
Biondo) la seguente semplice macchina di Mealy. Essa ha tre stati interni A, B e C.
Il significato del grafo e’ evidente. Ad esempio se la macchina sta nello stato A e l’ingresso corrente e’ zero allora la macchina va in B con uscita 0. La complicazione sorge perche’ allo stato B si perviene anche partendo dallo stato C quando l’ingresso e’ 1. La rappresentazione tabellare della macchina di Mealy assegnata potrebbe benissimo essere la seguente.
Stato
Ingresso
Ingresso
presente
0
1
A
B, 0
A, 0
B
C, 1
A, 0
C
C, 0
B, 1
Il punto fondamentale e’ che in una macchina di Moore la relazione stato-uscita e’ univoca. Dalla tabella si comprende che il funzionamento della macchina proposta presuppone che si possa pervenire allo stato B o allo stato C risultando possibili, per entrambi, le uscite 0 e 1. Se si operasse nelle logiche della macchina di Moore sussisterebbe, come gia’ detto, una relazione univoca e tabelle con coppie del tipo B, 1 e C,0 ma non si potrebbero avere ad esempio contemporaneamente presenti le coppie B,1 e B, 0. Verificatasi questa condizione con riferimento alla data macchina di Mealy per ottenere una macchina di Moore ad essa corrispondente e’ necessario sdoppiare gli stati B e C. Lo sdoppiamento non e’ necessario per lo stato A in quanto la tabella contiene la sola coppia A, 0. In altri termini allo stato (futuro) A e’ univocamente associata l’uscita 0, costantemente.
Ho quindi deciso di rappresentare la macchina di Moore equivalente a quella di Mealy assegnata con la seguente tabella.
Stato
Ingresso 0
Ingresso
presente
Uscita
1
A
đ??ľ1
A
0
đ??ľ1
đ??ś2
A
0
đ??ľ2
đ??ś2
A
1
đ??ś1
đ??ś1
đ??ľ2
0
đ??ś2
đ??ś1
đ??ľ2
1
In sintesi, nella trasformazione dalla macchina di Mealy a quella di Moore ad essa equivalente si deve tenere conto che: ď&#x201A;§
se i lati entranti di uno stato hanno uscite diverse occorre sdoppiare gli stati;
ď&#x201A;§
uno stato raggiungibile da uno stato che eâ&#x20AC;&#x2122; stato sdoppiato deve essere raggiungibile da entrambi gli stati sdoppiati.
Parametri di comportamento dinamico dei flip-flop In relazione ai segnali, la rappresentazione di essi nel dominio del tempo e’ una rappresentazione ideale. Vanno definiti alcuni parametri costruttivi che definiscono il corretto funzionamento del flip-flop. Il primo parametro che va considerato e’ il tempo di set up (set up time), comunemente detto tempo di impostazione. E’ il ∆tmin durante il quale i dati devono essere mantenuti costanti in ingresso prima della transizione attiva del clock (sul fronte di salita o di discesa, a seconda delle caratteristiche costruttive). Ad esempio, si puo’ considerare un flip-flop D che campiona sul fronte di salita del clock. Si consideri questo caso.
D ck
Le due frecce sono una rappresentazione stilizzata del set up time.
Poiche’ il segnale D e’ costante in entrambi i casi per un periodo di tempo eccedente il set up time il campionamento sul fronte di salita avviene correttamente Si consideri ora questo caso.
D ck
In questo caso si osserva si ha una prima transizione per D da 1 a 0 che avviene in un istante interno al range del set up time. Questo inficia la memorizzazione del dato. Con considerazioni analoghe si giustifica un ulteriore parametro di funzionamento dinamico dei bistabili, cioe’ il cosiddetto hold time. Questo
parametro
e’
comunemente
detto
tempo
di
mantenimento. Si tratta di un intervallo di tempo minimo, decorrente dall’istante corrispondente all’istante del fronte di salta o di discesa del clock (a seconda delle caratteristiche costruttive)
oltre
il
quale
il
segnale
deve
stabile per essere processato correttamente.
rimanere
Con
riferimento
ad
un
flip-flop
D
si
ha
la
seguente
situazione.
D CK
La doppia freccia evidenzia con riferimento ad un fronte di salita il tempo di mantenimento. Si osservi che in un intervallo minore di esso si ha una transizione 1 → 0 del segnale D. Pertanto la transizione non viene processata correttamente. Essa, per contro, sarebbe stata processata correttamente se il segnale fosse rimasto 1 per un intervallo di tempo maggiore
del
dall’istante
tempo della
di
hold,
transizione
ovviamente 0
→1
del
a
partire
segnale
di
sincronismo, il clock. Giova
ricordare
che
l’onda
quadra
o
rettangolare
che
definisce sul proprio fronte di salita, o di discesa, a seconda dei casi, non e’ mai ideale, anzi, essa assume una
forma
del
tipo
seguente,
ove
sono
sovrapposte
la
condizione reale in rosso e quella ideale in blu.
Analoghe riflessioni possono essere fatte per Q e il suo negato. Anche riferendosi a condizioni ideali (la rappresentazione reale eâ&#x20AC;&#x2122; un poco piuâ&#x20AC;&#x2122; complessa ma la natura delle cose non cambiaâ&#x20AC;Ś)
viene
definito
un
ulteriore
parametro
detto
ritardo di propagazione in un flip-flop. Basta mettere in relazione il clock presupponendo che il flip-flop commuti sul fronte di salita e sia di tipo D.
CK
D Q I segmenti a doppia freccia indicano, rispettivamente, il set up time (verde), hold time (arancio) e il ritardo di propagazione del flip-flop.
Questo ultimo parametro indica dopo quanti ns si ha Q = D quando sono rispettate le condizioni di stabilitaâ&#x20AC;&#x2122; del segnale D, riferite al set up time e a hold time. Tale ultimo parametro eâ&#x20AC;&#x2122; detto anche delay time. Eâ&#x20AC;&#x2122; noto che una transizione dellâ&#x20AC;&#x2122;ingresso in un istante t compreso tra lâ&#x20AC;&#x2122;estremo inferiore dellâ&#x20AC;&#x2122;intervallo di sett up time e lâ&#x20AC;&#x2122;estremo superiore dellâ&#x20AC;&#x2122;intervallo di hold time non consente di predire il valore di uscita Q, risultando parimenti possibile una oscillazione tra i distinti valori possibili, 0 ed 1, avendosi, pertanto, una condizione di funzionamento anomalo detto di metastabilitaâ&#x20AC;&#x2122;. I registri I registri sono considerati blocchi sequenziali funzionali costituiti
da
n
flip-flop
e
da
porte
logiche
che
implementano opportune transizioni di stato (Mano, Kime). Le porte combinatorie indicano il dato che deve essere memorizzato. Il registro piuâ&#x20AC;&#x2122; elementare eâ&#x20AC;&#x2122; costituito da flip-flop. Oltre al clock CK essi si caratterizzano per un ulteriore segnale Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x2019;đ?&#x2018;&#x17D;đ?&#x2018;&#x; che viene mantenuto a livello 1 durante il funzionamento normale e
si utilizza il valore 0 per
resettare il sistema, ovvero per portare tutti i flip-flop allâ&#x20AC;&#x2122;uscita 0.
Il caricamento dei dati in memoria per i vari bistabili puoâ&#x20AC;&#x2122; essere simultaneo in corrispondenza del fronte di salita o di discesa dellâ&#x20AC;&#x2122;impulso di clock. In questo caso si parla di caricamento in parallelo. Nella
realtaâ&#x20AC;&#x2122;
operativa
occorre
inibire
gli
ingressi
quando il contenuto del registro non deve cambiare (Mano, Kime). Cioâ&#x20AC;&#x2122; avviene premettendo allâ&#x20AC;&#x2122;ingresso C di ogni flip-flop in cosiddetto â&#x20AC;&#x153;ingresso controllo di caricamentoâ&#x20AC;? del tipo seguente. load Ck
Lâ&#x20AC;&#x2122;ingresso di abilitazione, quello in corrispondenza del quale, sempre con riferimento allâ&#x20AC;&#x2122;ipotesi del caricamento sul fronte di salita oppure sul fronte di discesa del clock, avviene il caricamento in memoria dei dati, eâ&#x20AC;&#x2122; Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; +đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x2DC;. governato dalla logica combinatoria C = đ??żđ?&#x2018;&#x153;đ?&#x2018;&#x17D;đ?&#x2018;&#x2018; Se Load = 1 allora Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ??żđ?&#x2018;&#x153;đ?&#x2018;&#x17D;đ?&#x2018;&#x2018; = 0 e segue che C = đ??śđ?&#x2018;&#x2122;đ?&#x2018;&#x153;đ?&#x2018;?đ?&#x2018;&#x2DC; . Se Load = 0 allora Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ??żđ?&#x2018;&#x153;đ?&#x2018;&#x17D;đ?&#x2018;&#x2018; = 1 allora C = 1.In questo caso il contenuto dei flip-flop non varia.
La
rappresentazione
di
un
registro
a
caricamento
in
parallelo e’ la seguente dove per semplicita’ grafica ci si e’ riferiti a due soli flip-flop che vengono caricati simultaneamente. La commutazione deve essere istantanea per tutti i flipflop. La mancata istantaneita’ e’ fonte di malfunzionamenti del circuito il che impone soluzioni circuitali ben piu’ sofisticate di quella seguente.
I diversi colori dei segnali indicano che i segnali non si “intersecano”, ovviamente…… Esiste anche una modalita’ di memorizzazione detta seriale. Il
registro
e’
in
questo
caso
detto
registro
di
scorrimento. I shift register consentono – ad ogni colpo di clock, quindi sul fronte di salita o di discesa – lo scorrimento del dato memorizzato da un bistabile a quello adiacente.
Se n eâ&#x20AC;&#x2122; il numero dâ&#x20AC;&#x2122;ordine del flip-flop ad ogni colpo di clock si ha la transizione di memoria đ?&#x2018;&#x201E;đ?&#x2018;&#x203A; â&#x2020;&#x2019; đ?&#x2018;&#x201E;đ?&#x2018;&#x203A;+1 quando essa eâ&#x20AC;&#x2122; verso destra. Il flip-flop 1 acquisisce il dato corrispondente a D quando si hanno D flip-flop. Lo schema formale di un registro a scorrimento, che per ragioni pratiche si suppone a due soli bistabili eâ&#x20AC;&#x2122; il seguente.
I contatori
Secondo una nota definizione (Mano, Kime) â&#x20AC;&#x153;un contatore eâ&#x20AC;&#x2122; un registro il cui stato evolve secondo una sequenza predeterminata di stati, grazie allâ&#x20AC;&#x2122;applicazione di impulsi di clockâ&#x20AC;?.
Un flip-flop puoâ&#x20AC;&#x2122; assumere due soli valori per Q, 1 oppure 0. Se si hanno n flip-flop il numero dei possibili stati del sistema eâ&#x20AC;&#x2122; immediatamente 2đ?&#x2018;&#x203A; . Un contatore eâ&#x20AC;&#x2122; sostanziamente costituito da una sequenza di flipflop tali che ad ogni colpo di clock (fronte di salita o di discesa del segnale di clock, a seconda delle caratteristiche costruttive) si passi da uno stato al successivo. Viene posta una fondamentale distinzione tra contatori asincroni e contatori sincroni. Nel
caso
del
contatore
asincrono
le
commutazioni
dei
flip-flop
avvengono sequenzialmente, mentre nel caso del contatore sincrono le commutazioni avvengono simultaneamente. Il modulo di un contatore eâ&#x20AC;&#x2122; il numero degli stati distinti che sono ottenibili in uscita. Gli stati vengono a susseguirsi in modo ciclico in genere come sequenze che definiscono un numero binario, quindi con un codice sequenziale, per esempio, se si ha un contatore modulo 4 con le sequenze 00, 01, 10, 11, 00, etc. ciclicamente e corrispondentemente al diagramma degli stati seguente. 01
00 10
11
E’ noto che “l’ordine in cui compaiono gli stati e’ detto la sua sequenza di conteggio” (Millmann, Grabel, Terreni). Quello appena abbozzato e’ un esempio di contatore binario in quanto gli stati sono codificati da sequenze che corrispondono ai numeri interi 0, 1, 2 e 3, cioe’ le stringhe 00, 01, 10, 11 del sistema di numerazione in base 2. Un contatore del genere puo’ essere implementato con due flipflop di tipo Toggle, cioe’ T come nell’esempio seguente che semplifica
un
analogo
esempio
mutuato
dalla
manualistica
(Millman, Grabel, Terreni). La rappresentazione degli stati (uscite dei flip-flop) e’ la seguente. Q0
Q1
0
0
0
1
1
0
1
1
La rappresentazione grafica del contatore binario a propagazione potrebbe essere la seguente.
Nei contatori sincroni gli impulsi di clock si applicano a tutti i flip-flop contemporaneamente. I flop-flop commutano contemporaneamente. Si tenga conto che in condizioni reali cioâ&#x20AC;&#x2122; avviene con un dato ritardo relativo ai flip-flop. Una variante di contatore binario sincrono a quattro stati potrebbe essere il seguente.
In genere vengono utilizzati flip-flop JK master slave in configurazione T.
Va rilevato che non necessariamente il conteggio eâ&#x20AC;&#x2122; in avanti, quindi non necessariamente si passa da 00 a 01, etc, ma, con riferimento al caso di contatori modulo 4 si potrebbe avere la seguente sequenza degli stato 11, 10, 01, 00, 11, etc. ciclicamente. In genere si considerano i contatori in avanti, detti anche up counter. Oltre a quanto detto fino ad ora, per i contatori vaâ&#x20AC;&#x2122; ricordato che
la
loro
architettura
si
caratterizza
per
una
rete
di
eccitazione che eâ&#x20AC;&#x2122; definita da collegamenti e da porte logiche che mettono in relazione le uscite dei bistabili con gli ingressi di altri bistabili. Cioâ&#x20AC;&#x2122; sta alla base della sequenza di conteggio. Lo studio del circuito viene effettuato mediante la tabella di eccitazione
costituita
dalla
colonna
degli
stati
presenti
codificati, generalmente ma non necessariamente, da sequenza binarie, dalla colonna delle eccitazioni, costituita da tante sottocolonne
quante
sono
gli
ingressi
dei
flip-flop,
e
la
colonna degli stati futuri, ovviamente codificati, solitamente con stringhe che definiscono un numero in base 2. Si determinano i valori di J e K, quando si ha un flip-flop JK, in funzione delle uscite Q dello stato corrente.
Le uscite si determinano tenendo conto della tabella di veritaâ&#x20AC;&#x2122; del
flip-flop
tenuto
conto
degli
ingressi
ai
flip-flop
determinati nella sezione delle eccitazioni. Il contatore binario up counter a due bit ben si presta per la necessaria spiegazione. Si puoâ&#x20AC;&#x2122; ragionare in questi temrini. Si impone che lo stato futuro, per ogni possibile stato presente, sia lo stato, in notazione binaria, immediatamente successiva, come ad esempio 01 eâ&#x20AC;&#x2122; il successivo di 00, intesi come due numeri binari. Esempio di funzionamento del contatore in avanti a due T e conseguenti 4 stati distinti.
0
1
CK
0
stato iniziale
Si puoâ&#x20AC;&#x2122; ammettere, senza perdita di generalitaâ&#x20AC;&#x2122; che lo stato iniziale sia 00. Si ammette che i toggle campionino sul fronte di salita del segnale di clock, rappresentato dal seguente simbolo â&#x2020;&#x2018;. La freccia verticale nella figura esplicativa delle transizioni di stato va intesa in questo senso. Per il primo bistabile, quello cui corrisponde, in uscita, il bit meno significativo, il segnale T eâ&#x20AC;&#x2122; costantemente 1. Il segnale di clock agisce in condizioni ideali simultaneamente sugli ingressi dei due bistabili. Lâ&#x20AC;&#x2122;equazione caratteristica dei flip-flop in configurazione T eâ&#x20AC;&#x2122; notoriamente la seguente. Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;&#x203A; = đ?&#x2018;&#x2021;đ?&#x2018;&#x203A; Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1 +đ?&#x2018;&#x2021; đ?&#x2018;&#x203A; đ?&#x2018;&#x201E;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1
(â&#x2C6;&#x2014;) đ??śđ?&#x2018;&#x153;đ?&#x2018;&#x203A; riferimento al JK configurato T per il bistabile che definisce in uscita il bit meno significativo il passaggio di valore da 0 a 1 si giustifica immediatamente applicando lâ&#x20AC;&#x2122;equazione caratteristica ricoradando che lâ&#x20AC;&#x2122;uscita precedente valeva 0. (â&#x2C6;&#x2014;â&#x2C6;&#x2014;) Con riferimento al medesimo fronte di salita del clock gli ingressi J e K, eguali a T, del secondo bistabile evidenziano che T = 0 e detto valore risulta in memoria calcolando per esso đ?&#x2018;&#x201E;đ?&#x2018;&#x203A; = đ?&#x2018;&#x2021;đ?&#x2018;&#x203A; Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026;Ě&#x2026; đ?&#x2018;&#x201E;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1 Ě&#x2026;Ě&#x2026;Ě&#x2026; +đ?&#x2018;&#x2021; essendo đ?&#x2018;&#x201E;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1 = 0. đ?&#x2018;&#x203A; đ?&#x2018;&#x201E;đ?&#x2018;&#x203A;â&#x2C6;&#x2019;1 quando sia T = 0
Riflessioni analoghe conducono ai successivi passaggi di stato e alla giustificazione della seguente tabella delle eccitazioni, ove i pedici di T definiscono lâ&#x20AC;&#x2122;ordine di sigificativitaâ&#x20AC;&#x2122; dellâ&#x20AC;&#x2122;uscita del dato bistabile. Quella considerata eâ&#x20AC;&#x2122; relativa ad un registro avente due toggle.
Stato attuale
Ingressi
Stato futuro
T0 T1
00 01 10 11
1 1 1 1
0 1 0 1
01 10 11 00
BIBLIOGRAFIA ESSENZIALE
•
Bolchini, Brandolese, Salice, Sciuto, Reti logiche, II
edizione, Apogeo, 2004, 2008 •
Cerri, Ortolani, Venturi, Corso di sistemi automatici 2,
Hoepli, 2012 •
Coppelli, Stortoni, Esercizi di elettronica digitale, La
Savrana editrice, 1990 •
Cuniberti, De Lucchi, Elettronica. Componenti digitali e
programmabili, Petrini, 2008 •
De Lotto Ivo, Appunti di calcolatori elettronici,
Parte
I, Reti logiche e Unita’ aritmetica, Edizioni Spiegel, 2001 •
Fedecostante, Elementi di elettronica digitale, Edizioni
CompoMat, 2011 •
Gerace
Giovan
Battista,
La
logica
dei
sistemi
di
elaborazione, Editori Riuniti, 2015 •
Guida, Giacomin, Fondamenti di informatica, Franco Angeli,
2006 •
Mano, Kime, Reti logiche, IV edizione, Pearson, 2008
•
Millman, Grabel, Terreni, Elettronica di Millman, MCGraw-
Hill, 2008 •
Sacchi, Biondo, Elettronica digitale. Analisi e progetto
di circuiti logici, Hoepli, 2000
ANTICIPAZIONE PROSSIMO NUMERO
Il prossimo numero degli APPUNTI MATEMATICI sara’ riservato alla conduzione nei solidi.
La
copertina
SOMMERFELD.
sara’
dedidicata
al
fisico
tedesco
Arnold
AVVISO LEGALE relativo alla proprieta’ letteraria Questo saggio non ha finalita’ commerciali o lucrative. Ne e’ autorizzata la divulgazione, anche totale, a condizione che essa non abbia finalita’ commerciali o lucrative purche’ essa avvenga con la citazione dell’autore e del soggetto diffusore dell’opera. Non sono ammesse limitazioni alla diffusione dell’opera nello spazio e nel tempo.