Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Microprocessore
Massimiliano Rak
<date>
Location
Esercizio
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)
RS 00 01 11 10
stato
S0 S0 S1 - S0 La funzione t
S1 S1 S1 - S0
Stato Uscita
S0 0 La funzione w
S1 1
Modello di Moore RS Fondamentale (II)
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
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
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
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
– 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
D LATCH AL SIMULATORE
Perchè il D Latch non funziona
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:
2R 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
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
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
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
Y Clock
0 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
1 1
Bit1 0
1
Bit0 0 0
Clock
MACCHINE SINCRONE E
ASINCRONE
Stati Stabili in un Automa
• Tempificazione • Funzionalità
– Latch – RS
– Edge Trigger – D
(Salita/Discesa)
– JK
– Master/Slave
– T
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
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
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
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