Sei sulla pagina 1di 113

Reti Logiche ed Interfaccimento a Sistemi a

Microprocessore

Macchine e Reti Sequenziali

Massimiliano Rak

<date>
Location
Esercizio

• Progettare una macchina che abbia due ingressi di un


bit (R, S) e che rispetti il seguente comportamento:
– Se R=1, l’uscita è 0
– Se S=1, l’uscita è 1
– Se R ed S sono entrambi 1, l’uscita è indefinite
– Se R ed S sono entrambi 0, l’uscita rimane quella
precedente.
Esercizio

• Progettare una macchina che abbia due ingress di un


bit (R, S) e che rispetti il seguente comportamento:
– Se R=1, l’uscita è 0
– Se S=1, l’uscita è 1
– Se R ed S sono entrambi 1, l’uscita è indefinite
– Se R ed S sono entrambi 0, l’uscita rimane quella
precedente.

NON E’ una macchina


combinatoria!!!!
Automi
• Come rappresentare il comportamento di
questa macchina?
– Nota: Una tabella di verità non basta
• Gli Automi sono un modello matematico che
permette di rappresentare comportamenti
come quello proposto nell’esempio
Il Modello Matematico
Macchina di Mealy

Una macchina sequenziale (a stati finiti) è


una quintupla ordinata di enti M(Q,I,U,t,w),
dove:
• Q è un insieme finito di “Stati Interni”
• I è un insieme finito di “Stati di Ingresso”
• U è un insieme finito di “Stati di Uscita”
• t è una funzione DQI  Q
• w è una funzione DQI  U
Il Modello Matematico
Macchina di Moore

Una macchina sequenziale (a stati finiti) è


una quintupla ordinata di enti M(Q,I,U,t,w),
dove:
• Q è un insieme finito di “Stati Interni”
• I è un insieme finito di “Stati di Ingresso”
• U è un insieme finito di “Stati di Uscita”
• t è una funzione DQI  Q
• w è una funzione DQ  U
Descrizione della macchina
• Il comportamento della macchina può essere
descritto come una tabella o come un grafo:
• Tabella Stato/Ingresso  prossimo stato
• Grafo Passaggi di stato
– Mealy: uscita associata all’arco
– Moore: uscita associata al nodo
Esercizio (Riprendiamo l’esercizio)

• Progettare una macchina che abbia due ingress di un


bit (R, S) e che rispetti il seguente comportamento:
– Se R=1, l’uscita è 0
– Se S=1, l’uscita è 1
– Se R ed S sono entrambi 1, l’uscita è indefinite
– Se R ed S sono entrambi 0, l’uscita rimane quella
precedente.

Questa è un macchina di
base e si chiama:
RS FONDAMENTALE
RS fondamentale
• E’ una macchina caratterizzata da:
– Due ingressi (R, S)
– Una sola uscita (il bit memorizzato)
• Il Segnale R alto memorizza il valore 0
• Il Segnale S alto memorizza il valore 1
• I due segnali non possono essere
contemporaneamente alti
Modello di Moore RS Fondamentale (I)

• Q è un insieme finito di • Q= {S0,S1}


“Stati Interni” – S0: Ho memorizzato 0
• I è un insieme finito di – S1: Ho memorizzato 1
“Stati di Ingresso” • I={0,1}
• U è un insieme finito di – Ricevo ho valori 0 o 1
“Stati di Uscita” • U={0,1}
• t è una funzione DQI – Emetto valori 0 o 1
Q
• w è una funzione DQ
U
Modello di Moore RS Fondamentale (II)

RS 00 01 11 10
stato
S0 S0 S1 - S0 La funzione t
S1 S1 S1 - S0

• t è una funzione DQI  Q


• w è una funzione DQ  U

Stato Uscita

S0 0 La funzione w
S1 1
Modello di Moore RS Fondamentale (II)

• Rappresentazione Grafica della macchina


01
10 00
S1/1
S0/0
01
00 10

RS 00 01 11 10 Uscita
stato
S0 S0 S1 - S0 0
S1 S1 S1 - S0 1
Esempio
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit senza alcuna sovrapposizione
Esempio
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit senza alcuna sovrapposizione

1100101010001110100001111010000001
Esempio
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit senza alcuna sovrapposizione

1100101010001110100001111010000001

La macchina dovrà emettere 3 volte 1,


ogni volta che viene riconosciuta la
sequenza
Esempio con sovrapposizione
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit considerando tutte le possibili
sovrapposizioni

1100101010001110100001111010000001

Esempio di
sovrapposizione
Esempio con sovrapposizione
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit considerando tutte le possibili
sovrapposizioni

1100101010001110100001111010000001
Esempio con sovrapposizione
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit senza alcuna sovrapposizione

1100101010001110100001111010000001

Esempio di
sovrapposizione
Esempio con sovrapposizione
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit con sovrapposizione

1100101010001110100001111010000001

La macchina dovrà emettere 4 volte 1, ogni volta


che viene riconosciuta la sequenza (anche se alcuni
bit sono stati utilizzati anche per un altro
riconoscimento
Esercizio per casa
• Individuare le sequenze 1001,1010 sia con che
senza sovrapposizione nelle seguenti
sequenze di ingresso

1111110110001010111001111000111010100011111

1111000001010101011110011001100001010011001

0001101010101111000011110101010001011001100110101
1 S1/0 0
0

S_/0 S10/0

S101/1
Progetto della Macchina (Moore)
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit senza alcuna sovrapposizione
Stato 0 1 U
1
1 S1/0 1 Sx Sx S1 0
Sx/0 S1 S10 S1 0
0
0 0
S10 Sx S101 0
0 S101/1 S10/0
S101 Sx S1 1
1
I=1100101010001110100001111010000001
U=0000001000000000100000000010000000
Progetto della Macchina (Moore)
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit considerando tutte le
sovrapposizioni Stato 0 1 U
1
1 S1/0 1 Sx Sx S1 0
Sx/0
0
S1 S10 S1 0
0
0
0 S10 Sx S101 0
S101/1 S10/0
S101 S10 S1 1
1

I=1100101010001110100001111010000001…
U=0000001010000000100000000010000000…
Progetto della Macchina (Mealy)
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit senza alcuna sovrapposizione

1/0
0 1
S1 1/0
Sx S0 S0/0 S1/0
0/0
0/0 0/0 S1 S2/0 S1/0
1/1 S10
S2 S0/0 S0/1

I=1100101010001110100001111010000001
U=0000001000000000100000000010000000
Progetto della Macchina (Mealy)
Realizzare un automa in grado di riconoscere la sequenza 101
in una sequenza continua di bit considerando tutte le
sovrapposizioni
1/0
0 1
S1 1/0
S0 1/1 S0 S0/0 S1/0
0/0 0/0 S1 S2/0 S1/0
0/0 S2
S2 S0/0 S0/1

I=1100101010001110100001111010000001
U=0000001010000000100000000010000000
Esercizi

• Realizzare una macchina in grado di riconoscere la


sequenza 1001 in una sequenza continua di bit,
considerando anche le possibii sovrapposizioni
• Realizzare una macchina in grado di riconoscere la
sequenza 1101 in una sequenza continua di bit,
escludendo le possibii sovrapposizioni
DALL’AUTOMA ALLA
PROGETTAZIONE
Progetto della Macchina

• Abbiamo un strumento atto a descrivere il


comportamento della nostra macchina. Come
possiamo realizzare un circuito logico che
implementa un automa?

• Notiamo che l’automa è stato descritto con una


tabella, che è possibile realizzare con una funzione
logica.
Macchina Combinatoria e
Sequenziale
Piccolo
Una Macchina Sequenziale Ritardo
può essere realizzata d
con:
• Una macchina Stato
Combinatoria che Stato Macchina Prossimo
realizza le funzione t e w Combinatoria
Ingresso Uscita
• Utilizzare l’uscita della
macchina come ingresso
(feedback)
Modello di Moore RS Fondamentale

• Abbiamo già modellato RS fondamentale


01
10 00
S1/1
S0/0
01
00 10

RS 00 01 11 10 Uscita
stato
S0 S0 S1 - S0 0
S1 S1 S1 - S0 1
Esempio RS Fondamentale

Stato R S Uscita
Codifica degli stati:
0 0 0 0
• Basta un solo bit(F):
0 0 1 1
– S0=0
0 1 0 0
– S1=1
0 1 1 -
Codifica delle uscite:
1 0 0 1
• Si utilizza lo stato 1 0 1 1
Codifica degli ingressi: 1 1 0 0
• Già codificati 1 1 1 -
Esempio RS Fondamentale

RS 00 01 11 10
F
0 0 1 - 0
1 1 1 - 0

F’=S + FR
Esempio RS Fondamentale

1 R
0

1 S
0
Conclusioni

• Possiamo progettare una macchina sequenziale


facendo le seguenti assunzioni:
– Descriviamo il comportamento della macchina con un
Automa
– Progettiamo una macchina combinatoria che implementa le
funzioni t e w del modello della macchina
– Realizziamo il circuito delle macchine combinatorie
individuate
– Utilizziamo le uscite ottenute a loro volta come ingressi
Progetto di una Macchina
Sequenziale (semplificato)
Analisi del Definizione
problema della Macchina

Progetto delle Realizzazione


parti del dispositivo
combinatorie con feedback
Progetto di una Macchina
Sequenziale (semplificato)
• Analisi: Definizione degli insiemi dei valori di Input e output
• Definizione della Macchina: Progetto dell’automa e
definizione delle funzioni t e w
• Progetto delle Parti combinatorie: progetto delle
macchine combinatorie che implementano le funzioni t e w
dell’automa
• Realizzazione: Utilizzare le uscita della macchina
combinatoria come uno degli ingressi
Esercizio:
Progettare un D latch
• IL Flip Flop D latch è una macchina con:
– 2 ingressi (a, D)
– 1 uscita
• Quando il valore dell’abilitazione a è alto il Flip
Flop memorizza i valori dell’ingresso D
• L’uscita è uguale al valore memorizzato
D latch (I)
01
11
01 00 • Macchina di Mealy
S1 • L’uscita è associata
S0 allo stato
11
00 10
10/0
aD 00 01 11 10
stato
S0 S0/0 S0 S1 S0
S1 S1/1 S1 S1 S0
D latch (II)

Codifica degli stati: Stato a D Uscita

• Basta un solo bit(F): 0 0 0 0

– S0=0 0 0 1 0

– S1=1 0 1 0 0
0 1 1 1
Codifica delle uscite:
1 0 0 1
• Si utilizza lo stato
1 0 1 1
Codifica degli ingressi: 1 1 0 0
• Già codificati 1 1 1 1
D latch (III)

aD 00 01 11 10
F
0 0 0 1 0
1 1 1 1 0

F’=aF + aD
D latch (III)

aD 00 01 11 10
F
0 0 0 1 0
1 1 1 1 0

F’=aF + aD

NON FUNZIONA.. Provatelo al simulatore!!!


Demo

D LATCH AL SIMULATORE
Perchè il D Latch non funziona

• Nel feedback la macchina ha un comportamento


imprevisto, che altera le uscite in alcuni casi. Questo
comportamento si chiama ALEA
• Per comprendere le Alee, però dobbiamo capire come
sono fatti i segnli e le sequenze di ingresso
• Dobbiamo avere un modo chiaro per descrivere la
macchina (basta una tabella?)
• Dobbiamo capire quali tipi di macchine possiamo
progettare e come.
Conclusione

• La metodologia funziona per alcuni tipi di macchine


(ad esempio RS fondamentale), ma non per tutti (ad
esempio non funziona per D latch)
• Quale è la differenza?
• Quali sono i problemi rimasti aperti?
Il Tempo è il problema fondamentale rimasto aperto:
• Nel D latch le uscite poste in feedback provocano una
fuga in avanti, ad esempio.
• Inoltre: come si possono costruire dei segnali nel
tempo che rappresentano due zeri di seguito (quale è
la differenza tra 2 e 3 zeri in un segnale sempre
basso?)
Reti Logiche ed Interfacciamento a Sistemi a
Microprocessore

La Tempificazione

Massimiliano Rak

<date>
Location
Il Problema del tempo
• In una macchina combinatoria il tempo può
creare problemi (Alee)
• Ma il tempo non influenza sostanzialmente il
rapporto ingresso/uscita… L’uscita dipende
dall’ingresso in un dato istante
• Nella macchina sequenziale l’ingresso non è
un valore, ma una sequenza di valori … con i
problemi che questo comporta
Il Tempo di risposta
Il Tempo di risposta di una macchina è il ritardo d=tf – ti con il
quale una variazione sull’ingresso è seguita da una variazione
sull’uscita X1
1
0
y
1 X2
0
Il Ritardo Inerziale
Si chiama ritardo inerziale E un elemento il cui ingresso I(t) e
la cui uscita U(t) rispettino le seguenti condizioni:
se I( t – )  I(t)  > 0; I()=I(t); t   < t+E
allora U()= I( t – ) U(t+E)=I(t)

1 X1
Y2
0
Ritardo Inerziale e frequenza
massima
I ritardi dei dispositivi influenzano la frequenza massima con
la quale un segnale in ingresso può cambiare.
Se R è il ritardo della macchina, la frequenza massima è:
1
F Clock:
2R 1
T = 10 ms =0.01s;
X F=1/0.01=100 Hz
Y
Ritardo: 25 ms
Le Alee
La presenza di ritardi nei dispositivi utilizzati
può avere l’effetto di modificare il
comportamento delle uscite in alcuni casi

Si chiamano Alee quei fenomeni per i quali le


uscite, anche se solo per brevi intervalli di
tempo, assumono dei valori imprevisti.
Classificazione delle Alee
• Alee Transitorie
– le uscite della rete assumono valori diversi da
quelli progettati soltanto nel transitorio
conseguente alle variazioni degi ingressi.
• Alee di Regime
– L’uscita assume un valore diverso da quello
progettato anche dopo il transitorio.
Alee Tipiche
Alee Transitorie Alee di Regime
• Alea Multipla • Alee Essenziali
– variazione simulatanea di due – Dovute alle caratteristiche
o più variabili di ingresso della rete
• Alea per Impulsi Concomitanti • Alee per Corse Critiche
– presenza di due o più impulsi
– A causa della codifica le
• Alea Statica variazioni delle uscite
– variazione temporanea dipendono dall’ordine degli
dell’uscita che dovrebbe ingressi
rimanere costante
• Alea Dinamica • Alee per frequenza elevata
– oscillazione temporanea – Gli ingressi variano troppo
dell’uscita. rapidamente
Alee Multiple:
Valori adiacenti in un codifica

Data una codifica due rappresentazioni si


dicono adiacenti se differiscono di una sola
variabile
0 0 0 0 1 0 0 0 0 0 1 0

0 0 0 0 0 0 0 1 0 0 0 0
Valori Adiacenti Valori Non Adiacenti
Alee Multiple
Si ha un’Alea Multipla se due ingressi consecutivi nel tempo i1
e i2 non sono adiacenti
Es.
Y = X1X2 + X1X2 y

Unica Soluzione: an
c2

Eliminare ingressi
non adiacenti
Impulsi Concomitanti

Se si suppone che due impulsi avvengano


contemporaneamente i ritardi possono
cambiare il comportamento della funzione
Es. X
Y = X1X2 Y
Alee Statiche
Si ha un’Alea Statica se avendo due ingressi i1 e i2 adiacenti
con uscite uguali f(i1) = f(i2 ), l’uscita assume nel transitorio il
valore f(i1) = f(i2 ) . a
t

Es. 1
0 b
Y = X1X3 + X2X3 z
y

1
0 c
Alea Statica - Soluzione

C0C1
• Il problema è legato ad C2
00 01 11 10
una doppia variazione 1 1
0
degli ingressi
• Aggiungendo gli 1 1 1
implicanti ridondanti si
crea un legame tra i Implicante
fenomeni che elimina Ridondante
l’alea (E’ possibile
dimostrarlo)
Progetto D latch –Analisi Alea

aD 00 01 11 10
F
0 0 0 1 0
1 1 1 1 0

F’=aF + aD
D latch (III)

aD 00 01 11 10
F
0 0 0 1 0
1 1 1 1 0

F’=aF + aD

NON FUNZIONA.. Provatelo al simulatore!!!


D latch (III)

aD 00 01 11 10
F
0 0 0 1 0
1 1 1 1 0

F’=aF + aD
Attenzione: Alea Statica!
F’=aF + aD + DF
D latch (IV)
0 D
1

0 a
1 F
Alee Dinamiche
Si ha un’Alea Dinamica se avendo due ingressi i1 e i2 adiacenti
con uscite uguali f(i1) =  e f(i2 )= , la sequenza di uscita è
del tipo ...  ...   ...  .

Es.
Y = X1X3 + X2X3

a
t

1
0 b
z
y

1
0 c
Alee Dinamiche
Si ha un’Alea Dinamica se avendo due ingressi i1 e i2 adiacenti
con uscite uguali f(i1) =  e f(i2 )= , la sequenza di uscita è
del tipo ...  ...   ...  . a
t

Es.
1
Y = X1X3 + X2X3 0 b
z
y

1
0 c
Alee Dinamiche
• Si verifica solo in reti a più di due livelli.
• Sono dovuti a alee statiche nei livelli
precedenti e ritardi
• Si eliminano eliminando le alee statiche nelle
sottoreti componenti
CODIFICA DEI SEGNALI
Codifica dei valori logici sui segnali
• Domanda:
– Come rappresento con un segnale logico due
valori 0 (o 1) Consecutivi?
Codifica dei valori logici sui segnali
• Domanda:
– Come rappresento con un segnale logico due
valori 0 (o 1) Consecutivi?

Esempio:

0 1 0
0 0 1 1 0 0
Segnali impulsivi

X Segnale 1

Y Segnale 0

0 0 1

Il Segnale mi indica quando ricevo il valore e che significato ha.


Un segnale per ogni valore ...

In pratica ho un ingresso Decodificato


Sequenze a sincronizzazione
esterna
X Segnale

Y Clock

0 0 1

Il Clock, mi indica QUANDO leggere i valori

Il Segnale dati, invece, mi fornisce il VALORE


• Sequenza di valori {0,1 }

Valori

Clock

0 0 1
• Sequenza di valori {0,1 }

Valori

Clock

0 0 1 1
• Sequenza di valori {0,1 }

Valori

Clock

?
0 0 1
Sequenze a sincronizzazione
esterna
Dato 0 0

Clock

sul fronte di salita sul fronte di discesa

Tipicamente il segnale di Clock è periodico

Il Segnale dati, invece, viene letto sui Fronti di salita o di discesa


• Una macchina che riceve sequenze di {A,B,C,D}
• Codifica: A=00, B=01, C=10,D=11
• 3 segnali: 2 per la codifica degli ingressi, 1 clock

1 1

Bit1 0
1

Bit0 0 0

Clock
MACCHINE SINCRONE E
ASINCRONE
Stati Stabili in un Automa

Uno stato q di un automa si dice stabile


all’ingresso i se si verifica che:
•t (q, i) =q
Ovvero
uno stato è stabile rispetto ad un certo ingresso
se l’automa in tale stato, sottoposto per un certo
tempo all’ingresso indicato, permane nel suo
stato indefinitamente
Macchine Asincrone
Una Macchina si dice Asincrona se per ciascun
ingresso i e per ciascuno stato qi la sequenza:
–t(qi1,i) =qi2 , t(qi2,i) =qi3 …
Termina in uno stato stabile:
–t(qin,i) =qin
Alcune Considerazioni
• In una macchina asincrona per ogni ingresso
l’automa, dopo un certo periodo di evoluzione
(il transitorio) si ferma in uno determinato
stato .
• Ingressi a livelli
– Gli ingressi vengono forniti come «livello» del
segnale, fino a quando la macchina si stabilizza
– Gli ingressi devono «durare a sufficienza» da
permettere alla macchina di stabilizzarsi.
Il progetto delle Macchine
Asincrone
• La macchina reagisce solo alle “variazioni”
degli ingressi.
• L’Automa va costruito con attenzione, in modo
tale da arrivare sempre ad uno stato stabile
• Le Alee sono particolarmente difficili da
gestire, una piccola variazione del valore di un
ingresso e/o una uscita può cambiare il
comportamento della macchina (es. D latch)
Le Macchine Sincrone
• Una Macchina che non è asincrona è detta
sincrona.
Ovvero
• In una macchina sincrona esistono degli stati
non stabili rispetto a certi ingressi.
• Cosa accade rispetto alle sequenze di
ingresso?
Macchine Sincrone e Ingressi
• Ingresso a livelli
– Il livello dell’ingresso dovrebbe durare
esattamente quanto il tempo di ritardo.
– Questo tipo di macchine non è realizzabile
• Ingresso impulsivo
– L’ingresso dura il tempo sufficiente a cambiare lo
stato
– Come mantenere lo stato quando l’ingresso è
basso?
Progetto di una macchina sincrona
Utilizzo di una memoria
per Registrare lo stato Clock

Utilizzo del segnale di Mem


clock per indicare
quando lo stato va Stato
Stato Macchina Prossimo
memorizzato Combinatoria
Ingresso Uscita
Il Flip Flop

Si dice Flip-Flop un registro in grado di


memorizzare un valore binario
• Elemento di memorizzazione fondamentale
• Alla base della realizzazione dei registri
• Alla base della realizzazione delle memorie

Il Flip Flop è una macchina sequenziale


Classificazioni dei Flip Flop

• Tempificazione • Funzionalità
– Latch – RS
– Edge Trigger – D
(Salita/Discesa)
– JK
– Master/Slave
– T

La tempificazione caratterizza il modo in cui il segnale di


uscita cambia al variare del segnale di ingresso
Le funzionalità distinguono i Flip Flop in funzione del
tipo di ingressi che accetta
LA PROGETTAZIONE DELLE
MACCHINE SEQUENZIALI
Le Fasi del progetto

Analisi del Definizione Scelta della


problema della macchina Macchina

Progetto della
Scelta dei flip Realizzazione
rete
flop del dispositivo
combinatoria
Definizione della macchina
• Analisi
– Definizione degli insiemi dei valori di Input e
output
– E’ specificata una tempificazione delle sequenze di
ingersso ed uscita?
– Ci sono altri vincoli sui tempi? (ad. Es. tempo
minimo/massimo di reazione della macchina)
• Progetto dell’Automa
Scelta della Macchina
• Macchina Sincrona o Asincrona?
• Sequenze di ingresso:
– a livelli,
– a sincronizzazione esterna
– autosincronizzate?
Rete autosincronizzata
S tati • Ingressi impulsivi
FF che contengono
... anche un valore (x0
FF
vale 0, x1 vale 1…)
• Flip Flop: non ho
un segnale che mi
indica quando
... ...
R ete C om binatoria memorizzare. RS
... ... fondamentale è
Ingres s i Us c ite una macchina
asincrona…
Rete a sincronizzazione esterna
• Gli ingressi sono a
C lo c k S tati
livelli
FF • Un segnale
...
“esterno”
sincronizza la
FF
macchina (abilita i
flip flop)
• Se uso latch il clock
... ... deve avere una
R e te C o m b in ato r ia
... ... durata particolare
I n g r es s i Us c ite

...
Scelta dei Flip Flop
• Funzionalità:
– La macchina necessità di particolari operazioni (ad
esempio reset) facili da implementare con
particolari flip-Flop
• Tempificazione:
– Noto il tipo di macchina quale è la tempificazione
migliore per il FF?
Progetto della rete combinatoria
• Gli ingressi sono noti (Stato + Ingressi
macchina sequenziale)
• Le uscite sono note (Stato + Uscite macchina
sequenziale)
• Il Rapporto I/O è definito dall’automa
Realizzazione
• Abbiamo la rete combinatoria
• Abbiamo i flip flop per memorizzare lo stato
• Si compone il tutto…
ESEMPI
Riconoscitore di Sequenza

Sviluppare una mcchina in grado di


riconoscere la sequenza di ingresso 101

• Come si riconosce la sequenza in ingresso?


Che tipo di sequenze di ingresso possiamo
utilizzare?
– Sequenze a sincronizzazione esterna
– Sequenze autosincronizzate
• Concentriamoci sulla prima
Analisi della macchina
• Dobbiamo stabilire come deve evolvere il
sistema: individuare quindi l’automa per
riconoscere la sequenza
• Dobbiamo stabilire nella rete come
riconoscere gli ingressi (la sequenza a
sincronizzazione esterna)
• Progettare la rete
Progetto dell’Automa

1/0

S1 1/0
S0 0 1
0/0
0/0 0/0 S0 S0/0 S1/0
1/1 S2
S1 S2/0 S1/0
• E’ una macchina sincrona!
S2 S0/0 S0/1
• Come facciamo a
memorizzare lo stato?
Analisi degli ingressi
• L’ingresso dell’automa è formato da un solo
bit.
• Nella sequenza a sincronizzazione esterna
abbiamo però due informazioni:
– Il livello (che è il valore da riconoscere)
– L’impulso (che indica quando bisogna leggere
l’ingresso)
La Soluzione Progettuale
• Abbiamo un ingreso in più del previsto, dato
dal tipo di ingresso
• Abbiamo una macchina sincrona
• Possiamo utilizzare un flip flop per
memorizzare lo stato ogni volta che l’ingresso
impulsivo dice che l’ingresso è valido.
Scelta del Flip-Flop
• Conosciamo già due flip-flop:
– RS fondamentale
– D latch
• Sappiamo che il D funziona con un segnale di
abilitazione
• Se il segnale è sufficientemente breve, una volta fato
cambiare lo stato, scompare…
• Poiché il D memorizza gli ultimi ingressi l’uscita
corrisponde al valore stato prossimo. Che succedeva
con gli RS?
Codifica

Codifica degli stati: b0 b1 I b 0 b1 U


• Servono due bit:
0 0 0 0 0 0
– S0=00
– S1=01 0 0 1 0 1 0
– S2=10 0 1 0 1 0 0
Codifica delle uscite: 0 1 1 0 1 0
• 1 sequenza riconosciuta 1 0 0 0 0 0
• 0 sequenza non ancora
1 0 1 0 0 1
riconosciuta
Codifica degli ingressi: 1 1 0 - - -
• Già codificati 1 1 1 - - -
Progetto della Rete combinatoria
b0b1 00 01 11 10
I
0 0 1 - 0 b0’= b1I
1 0 0 - 0

b0b1 00 01 11 10
I
0 0 0 - 0 b1’=b0I
1 1 1 - 0

b0b1 00 01 11 10
I
0 0 0 - 0 U=b1I + b0I
1 0 1 - 1
Il Circuito
DEV2
b0' b0
Q D
RC

DEV2
0 b1'
1 Q D b1
0
RC 1

0
1
Un Esempio
Riconoscitore 8-4-2-1
Riconoscitore 8-4-2-1
• Realizzare una macchina che riceve in ingresso
una sequenza di bit
• Ogni volta che nella sequenza si riconoscono 4
bit che compongono un numero valido si
emette un segnale
Definizione della Macchina
• Valori di input:
– Sequenze di bit, gi ingressi sono:0 o 1.
• Valori di output
– 0 non ho un valore valido
– 1 ho un valore in codifica 8-4-2-1
Progetto dell’automa
N b3 b2 b1 b0
0 0 0 0 0 I
S0 stato 0 1
1 0 0 0 1 0,1
2 0 0 1 0 S0 S1 S1
0/1 0,1/1
3 0 0 1 1 S1 S1 S3 S2
1/0 1
4 0 1 0 0 0 S2 S4 S4
5 0 1 0 1 S2 S3
S3 S5 S4
6 0 1 1 0 1,0 1 0
7 0 1 1 1 S4 S0 1 S0
S4 S5
8 1 0 0 0 S5 S0 1 S0 1
9 1 0 0 1
Scelta della Macchina

• La macchina non può essere asincrona.


• Tempificazione:
– Qualcuno ci manda bit da leggere
– Richiediamo che ci mandi anche un segnale
che ci dica quando interpretare i dati

Macchina Sincrona a sincronizzazione esterna


Scelta del Flip Flop
• Al momento la nostra scelta è limitata:
– RS fondamentale
– D latch
• Se scegliamo il D il clock deve essere
sufficientemente breve da non far cambiare
più volte il valore memorizzato nel flip-flop
Progetto della Macchina
Combinatoria
Tabella
Ingresso/Stato Prossimo
I
0 1
stato
S0 S1 S1
S1 S2 S3
S2 S4 S4

S3 S4 S5
S4 S0 S0 1
S5 S0 1 S0 1
Progetto della Macchina
Combinatoria Tabella (1/2)
Tabella
Ingresso/Stato Prossimo Di verità
I b2 b1 b0 b’02 b’1 b’0 u
I Codifica
0 1
stato
b2b1b0 0 0 0 0 0 0 1 0
S0 S1 S1
S0=0 0 0 0 0 0 1 0 1 0 0
S1 S2 S3
S1=0 0 1 0 0 1 0 1 0 0 0
S2 S4 S4 S2=0 1 0 0 0 1 1 1 0 0 0
S3 S4 S5 S3=0 1 1 0 1 0 0 0 0 0 0
S4=1 0 0 0 1 0 1 0 0 0 1
S4 S0 S0 1
S5=1 0 1 0 1 1 0 - - - -
S5 S0 1 S0 1 S..= - - -
0 1 1 1 - - - -
Esercizi di Progetto delle Macchine

• Progettare una macchina in grado di riconoscere la


Sequenza 1101 utilizzando FF D latch
• Progettare una macchina in grado di riconoscere la
parola BACCA. Si assuma che la macchina riceva in
ingresso solo I caratteri A,B e C. utilizzando FF D
latch

Potrebbero piacerti anche