Reti logiche
Logica sequenziale
Capitolo 6: progetto logico sequenziale
Reti Logiche
Contemporary Logic Design
Randy H. Katz
University of California, Berkeley
May 1993
Trasparenze tradotte da:
Luciano Lavagno
Universita’ di Udine
Settembre 1998
© R.H. Katz 6-1
Sommario del capitolo
Reti logiche
Logica sequenziale
• Reti logiche sequenziali
Circuiti semplici con reazione
Latch R-S
Flipflop J-K
Flipflop attivi sui fronti
• Metodi di temporizzazione
Flipflop in cascata per funzionamento corretto
Clock stretto e multifase
Clock Skew
• Realizzare circuiti con flipflop
Scegliere il tipo di flipflop
Equazioni caratteristiche
Conversione tra i tipi
• Metastabilita’ ed ingressi asincroni
• Circuiti asincroni (self-timed)
© R.H. Katz 6-2
Reti logiche sequenziali
Reti logiche
Logica sequenziale
Circuiti con retroazione:
alcune uscite sono anche ingressi
Ingressi
Logica comb.
Clock
Stato
Logica comb.
Il controllore di semaforo e’ una
rete logica sequenziale complessa
Logica sequenziale e’ la base per dare
”memoria" ai circuiti
Questi elementi di memoria sono
circuiti sequenziali elementari
Uscite
© R.H. Katz 6-3
Reti logiche sequenziali
Circuiti elementari con reazione
Reti logiche
Logica sequenziale
Elementi base di memoria creati con porte e cicli di reazione
Componente piu’ semplice: invertitore
Base dei progetti commerciali di RAM statiche
Si possono usare anche porte NOR e NAND con reazione incrociata
"1"
Invertitori in cascata: memoria RAM statica
"0"
LD
\LD
A
Interrompere la reazione quando si vuole
caricare un nuovo valore nella cella
\LD
Z
LD
© R.H. Katz 6-4
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Catene di invertitori
1
0
1
0
0
A
B
C
D
E
X
Numero dispari di inversioni crea un oscillatore
Valori osservati subito prima della transizione
dell’ultimo invertitore
Forma d’onda:
Fronte di salita
si propaga
attraverso
questo stadio
Periodo forma d’onda ripetuta (tp)
Ritardo porta (td)
A (=X)
0
B
1
tp = n * td
C
n = num. invertitori
0
D
1
E
0
1
© R.H. Katz 6-5
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Catena di invertitori
Tempo
1
1
1
1
1
X
0
0
0
0
X
X
1
1
1
X
X
X
0
0
X
X
X
X
1
0
0
0
0
0
0
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
0
X
X
X
X
X
0
0
0
0
0
1
Propagazione dei segnali attraverso la catena di invertitori
© R.H. Katz 6-6
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Porte NOR accoppiate
Come gli invertitori in cascata,
ma si puo’ forzare l’uscita
a 0 (reset) o 1 (set)
R
S
R
Q
S
\Q
Forma d’onda
Reset Memoria Set
Reset
Set
100
Corsa
R
S
Q
\Q
Stato
proibito
Stato
proibito
© R.H. Katz 6-7
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Diagramma degli stati del latch R-S
S R
Q
0 0
memoria
0 1
0
1 0
1
1 1 0 (ma rischioso)
“Tabella di verita’”
del latch R-S
QQ
01
QQ
10
QQ
00
QQ
11
© R.H. Katz 6-8
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Diagramma teorico degli stati del latch R-S
SR = 00, 10
SR = 00, 01
SR = 1 0
QQ
01
QQ
10
SR = 0 1
SR = 0 1
SR = 1 0
SR = 11
SR = 1 1
SR = 1 1
QQ
00
SR = 0 1
SR = 1 0
SR = 0 0
SR = 0 0, 11
QQ
11
© R.H. Katz 6-9
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Diagramma reale degli stati del latch R-S
SR = 00, 10
SR = 00, 01
SR = 1 0
QQ
01
QQ
10
SR = 0 1
SR = 0 1
SR = 1 0
SR = 11
SR = 1 1
SR = 1 1
QQ
00
SR = 0 0
SR = 0 0
Molto difficile osservare lo stato 1-1 del latch R-S
Puo’ tornare sia allo stato 0-1 sia allo stato 1-0
E’ una “corsa critica”
© R.H. Katz 6-10
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Definizione dei termini
Tsu
Th
Ingresso
Clock
C’e’ una “finestra”
di tempo nell’intorno
dell’evento di clock
in cui l’ingresso
deve rimanere stabile
per essere riconosciuto
correttamente
Clock:
Evento periodico, causa il cambiamento
di stato degli elementi di memoria
fronte di salita, fronte di discesa,
livello alto, livello basso
Tempo di setup (Tsu)
Intervallo minimo prima dell’evento di clock
durante il quale l’ingresso deve essere stabile
Tempo di hold (Th)
Intervallo minimo dopo l’evento di clock
durante il quale l’ingresso deve essere stabile
© R.H. Katz 6-11
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Latch attivo sul livello
anche detto latch R-S “gated”
Schema logico:
\S
\Q
\R
Q
\enb
Diagramma temporale
Set
Reset
© R.H. Katz 6-12
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Latch e flipflop
Comportamento ingresso/uscita di latch e flipflop
Tipo
latch senza
clock
latch
sensibile
al livello
Quando campiona gli ingressi
sempre
clock alto
(Tsu, Th attorno
al fronte di discesa)
Quando le uscite sono valide
ritardo di propagazione
dal cambiamento degli ingressi
ritardo di propagazione
dal cambiamento degli ingressi
flipflop
transizione 0-1 del clock
attivo sul
(Tsu, Th attorno
fronte di salita
al fronte di salita)
ritardo di propagazione
dal fronte di salita del clock
flipflop
transizione 1-0 del clock
attivo sul
(Tsu, Th attorno
fronte di discesa
al fronte di discesa)
ritardo di propagazione
dal fronte di discesa del clock
flipflop
master/slave
ritardo di propagazione
dal fronte di discesa del clock
transizione 1-0 del clock
(Tsu, Th attorno
al fronte di discesa)
© R.H. Katz 6-13
Reti logiche
Logica sequenziale
Reti logiche sequenziali
7474
D
Q
Clk
Pos itive edge-triggered
flip-flop
Dispositivi attivi sul fronte (edge triggered)
campionano l’ingresso sul fronte
Latch trasparenti campionano gli ingressi
per tutto il tempo in cui il clock e’ attivo
Diagramma termporale:
7476
D
Q
D
C
Clk
Lev el-sens itive
latc h
“Bolla” per
dispositivo
attivo sul fronte
di discesa
Clk
Q
7474
Q 7476
Il comportamento e’ lo stesso tranne
quando l’ingresso cambia col clock alto
© R.H. Katz 6-14
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Specifiche temporali tipiche: flipflop e latch
74LS74:
flipflop D
attivo sul fronte
di salita
• Tempo di setup
• Tempo di hold
• Larghezza minima
del clock
• Ritardi di propagazione
(basso-alto, alto-basso,
massimo e tipico)
D
Clk
Q
Tsu
20
ns
Th
5
ns
T su
20
ns
Tw
25
ns
Tpl h
25 ns
13 ns
Th
5
ns
T phl
40 ns
25 ns
Tutte le misure sono fatte dall’evento di clock,
cioe’ dal fronte di salita
© R.H. Katz 6-15
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Specifiche temporali tipiche: flipflop e latch
74LS76:
latch
trasparente
• Tempo di setup
• Tempo di hold
• Larghezza minima
del clock
• Ritardi di propagazione
(basso-alto, alto-basso,
dato-uscita, clock-uscita,
massimo e tipico)
D
T su Th
20 5
ns ns
Clk
Tw
20
ns
Q
Tpl h
C» Q
27 ns
15 ns
T pl h
D»Q
27 ns
15 ns
Tsu
20
ns
Th
5
ns
T phl
C» Q
25 ns
14 ns
T phl
D»Q
16 ns
7 ns
Tutte le misure sono fatte dall’evento di clock,
cioe’ dal fronte di discesa,
o dal fronte di salita o discesa del dato
© R.H. Katz 6-16
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Rivediamo il flipflop R-S
Tabella di verita’:
Stato futuro = F(S, R, Stato presente)
S
0
0
0
0
1
1
1
1
R
0
0
1
1
0
0
1
1
Qt
0
1
0
1
0
1
0
1
Qt+1
0
1
0
0
1
1
X
X
Mappa di Karnaugh:
S
SR
00
01
11
10
0
0
0
X
1
1
1
0
X
1
Q( t )
R
Equazione caratteristica:
Q+ = S + R’ Q
S
R
Latch
R-S
Q+
Q
© R.H. Katz 6-17
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Flipflop J-K
Come eliminare lo stato proibito?
Idea: usare la reazione per
garantire che R ed S non
siano mai entrambi ad uno
J, K ad uno complementano
l’uscita
S
0
0
0
0
1
1
1
1
R
0
0
1
1
0
0
1
1
Qt
0
1
0
1
0
1
0
1
K
R
\Q
\Q
R-S
latc h
J
S
Q
Q
Qt+1
0
1
0
0
1
1
1
0
Equazione caratteristica:
Q+ = Q K’ + Q’ J
© R.H. Katz 6-18
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Flipflop J-K: corsa critica
Set
Reset
100
Complementa
J
K
Q
\Q
Corsa critica
Vincolo sulla complementazione: un solo cambiamento
di stato per ciclo di clock
Soluzione: flip-flop master-slave
© R.H. Katz 6-19
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Flipflop J-K master-slave
Master
K
\Q
R
Slave
\P
R
R-S
Latc h
R-S
Latc h
S
J
\Q
\Q
Q
S
P
Q
Q
Clk
Campiona ingressi con clock alto
Campiona ingressi con clock basso
Usa il ritardo per interrompere la reazione tra uscite ed ingressi!
Set
Reset
1's
Catc h
Toggle
100
J
K
Clk
P
\P
Q
\Q
Complementazione
corretta
Master
outputs
Slav e
outputs
© R.H. Katz 6-20
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Flipflop attivi sul fronte
“Sensibile agli 1”: un’alea 0-1-0 su J o K fa cambiare lo stato!
il progettista dovrebbe eliminare le alee statiche
Soluzione: logica attiva sui fronti
D
Flipflop D attivo
sul fronte di discesa
D
Mantiene D quando
il clock scende
0
R
Q
Clk=1
Q
4-5 ritardi di porte
Bisogna soddisfare
i tempi di setup e hold
per memorizzare
correttamente l’ingresso
S
0
Mantiene D quando
il clock scende
D
D
Equazione caratteristica:
Q+ = D
Flip-flop attivo sul fronte di discesa
con clock ad 1
© R.H. Katz 6-21
Reti logiche
Logica sequenziale
Reti logiche sequenziali
Flipflop attivi sul fronte
Analisi passo-passo
D
0
D
4
3
D
R
D
D
R
Q
Clk=0
Q
5
Q
Clk=0
Q
D
D
S
D
S
2
D
D
6
D'
1
D
0
D' ° D
Flip-flop attivo sul fronte di discesa
con clock da alto a basso
memorizza il dato
Flip-flop attivo sul fronte
di discesa con clock a 0
mantiene il dato
© R.H. Katz 6-22
Reti logiche sequenziali
Dispositivi attivi sul fronte di salita e di discesa
Reti logiche
Logica sequenziale
100
D
Clk
Qpos
Positive edgetriggered FF
\ Qpos
Qneg
Negativ e edgetriggered FF
\ Qneg
Attivo sul fronte di salita
Attivo sul fronte di discesa
Ingressi campionati
sul fronte di salita
Uscite cambiano dopo
il fronte di salita
Ingressi campionati
sul fronte di discesa
Uscite cambiano dopo
il fronte di discesa
Flipflop toggle
Costituito da un J-K con gli ingressi collegati insieme
© R.H. Katz 6-23
Metodologie di temporizzazione
Reti logiche
Logica sequenziale
Sommario
• Regole per collegare componenti e clock
• Garantiscono il funzionamento corretto del sistema
• Il metodo dipende dall’elemento di memoria usato
Per sistemi con latch:
Clock stretto
Clock multifase (p.es. a due fasi non sovrapposte)
Per sistemi con flipflop attivi sul fronte:
Clock a fase singola
• Tempistica corretta:
(1) fornire ingressi corretti al tempo giusto ai FF
(2) nessun FF cambia piu’ di una volta per evento di clock
© R.H. Katz 6-24
Reti logiche
Logica sequenziale
Metodologie di temporizzazione
Flipflop in cascata: ritardi di propagazione e tempi di setup/hold
Shift Register
S,R sono preset, clear
IN
D
Q
C Q
Nuovo valore per il
primo stadio pronto
quando il secondo
stadio prende l’uscita
del primo
Q0
D
Q
Q1
C Q
CLK
100
In
Funzionamento
Q0
corretto, supponendo
Q1
FF attivo sul fronte
Clk
di salita
© R.H. Katz 6-25
Reti logiche
Metodologie di temporizzazione
Logica sequenziale
Flipflop in cascata: ritardi di propagazione e tempi di setup/hold
Perche’ funziona:
• Ritardi di propagazione molto maggiori del tempo di hold;
Larghezza minima del clock maggiore del tempo di setup
• Garantisce che lo stadio successivo memorizzi il vecchio
valore prima che sia sostituito dal nuovo
• Suppone che la distribuzione del clock non abbia ritardi
In
Tsu
20 ns
Tsu
20 ns
Q0
Q1
T pl h
13 ns
T pl h
13 ns
Vincoli temporali
garantiscono
il funzionamento
corretto dei
componenti
Clk
Th
5 ns
Th
5 ns
© R.H. Katz 6-26
Reti logiche
Logica sequenziale
Metodologie di temporizzazione
Clock stretto o multifase
Latch attivi sul livello e flipflop attivi sul fronte
• I latch memorizzano usando meno porte
• I flipflop hanno una temporizzazione piu’ semplice
Memoria dinamica CMOS
Reazione interrotta dalle
due fasi del clock
(stessa idea del master-slave!)
\Clk2
\(LD • Clk1)
A
LD•Clk1
Clk2
Z
8 transistor realizzano una memoria
ma richiede che i due segnali
di clock siano non sovrapposti
Flipflop D attivo sul fronte:
6 porte (5 x 2-ingressi, 1 x 3-ingressi) = 26 transistor!
© R.H. Katz 6-27
Reti logiche
Logica sequenziale
Metodologie di temporizzazione
Clock stretto per sistemi con stato memorizzato in latch
Schema a blocchi generale
per sistema sequenziale
con clock
Logica
combinatoria
stato realizzato con
latch o flipflop
S
t
a
t
o
Clock
Vincoli da due lati:
attenzione a segnali troppo lenti o troppo veloci!
Larghezza del clock < propagazione piu’ veloce nella logica
combinatoria piu’ il ritardo di propagazione del latch
Periodo del clock (tra due fronti di salita) > propagazione
piu’ lenta nella logica combinatoria
© R.H. Katz 6-28
Reti logiche
Logica sequenziale
Metodologie di temporizzazione
Clock a due fasi non sovrapposte
Forme d’onda del clock
non devono mai sovrapporsi!
F1
Possiamo preoccuparci solo
dei segnali troppo lenti!
F2
F1 F1
F2 F2
Elemento di memoria CMOS
incorporato in logica sequenziale
Logica
Comb. 1
Logica
Comb. 2
Nota: la logica combinatoria
puo’ essere divisa in due parti
L.C.1: ingressi memorizzati e
stabili alla fine della fase 1,
calcola tra le due fasi,
memorizza le uscite
alla fine della fase 2
L.C.2: fa esattamente il contrario
© R.H. Katz 6-29
Reti logiche
Logica sequenziale
Metodologie di temporizzazione
Come generare clock a due fasi non sovrapposte
Un solo clock di riferimento (cristallo)
Fase 1 ad 1 quando clock a 0
Fase 2 ad 1 quando clock ad 1
La fase X non puo’ salire finche’
la fase Y non e’ scesa!
100
Clk
Phas e 1
Phas e 2
Il tempo di non-sovrapposizione (entrambi a 0) puo’ essere aumentato
aumentando il ritardo sulla reazione
© R.H. Katz 6-30
Reti logiche
Logica sequenziale
Metodologie di temporizzazione
Il problema dello skew (“deviazione”) del clock
Il corretto funzionamento e’ garantito solo se tutti gli elementi
di memoria cambiano stato allo stesso momento
Non e’ possibile in sistemi reali!
• unico clock logico, in realta’ controllato da piu’ circuiti
reali, con ritardi
• i fili causano ritardi diversi in diversi punti del circuito
Effetti dello skew sui flipflop in cascata
FF0 campiona IN
In
Q0
FF1 campiona Q0
100
CLK2 e’ CLK1
ritardato
Q1
Clk1
Clk2
Stato presente: Q0 = 1, Q1 = 1, In = 0
A causa dello skew lo stato futuro diventa: Q0 = 0, Q1 = 0,
non Q0 = 0, Q1 = 1
© R.H. Katz 6-31
Metodologie di temporizzazione
Reti logiche
Logica sequenziale
Strategie di progetto per minimizzare lo skew
Ritardi di propagazione tipici per FF LS: 13 ns
Servirebbe un ritardo notevole del clock (circa 13 ns) per avere
problemi di skew in questa tecnologia piuttosto lenta
Comunque e’ bene seguire alcune regole di progetto:
• distribuire i segnali di clock nella direzione del flusso dei dati
• i fili che portano il clock tra due componenti che comunicano
dovrebbero essere i piu’ corti possibile
• per sistemi multifase, distribuire tutti i clock con cammini
simili; cio’ minimizza la possibilita’ di sovrapposizione
• per il generatore di clock non sovrapposti, usare la reazione
sulle fasi dal punto piu’ lontano del circuito a cui il clock va
distribuito; cio’ garantisce che una fase sia vista bassa da
tutti prima che la prossima possa salire
© R.H. Katz 6-32
Realizzazione di circuiti con diversi tipi di FF
Reti logiche
Logica sequenziale
Scelta del tipo di flipflop
Latch R-S con clock:
usato come elemento di memoria in sistemi a clock stretto
meglio non usarlo!
e’ il blocco fondamentale per altri tipi di flipflop
Flipflop J-K:
utile come blocco funzionale
usato per costruire FF D e T
in logica TTL e’ il piu’ semplice elemento di memoria per
realizzare una funzione sequenziale ƒ(In,Q,Q+)
due ingressi complicano le connessioni
non usare mai i FF J-K se sono a disposizione FF attivi sul
fronte, per il problema della “cattura degli 1”
Flipflop D:
minimizza le connessioni, e’ il preferito in VLSI CMOS
il piu’ facile da usare
la miglior scelta per un progetto sequenziale
Flipflop T:
in realta’ non esiste (e’ fatto con JK)
va molto bene per realizzare contatori
Ingressi preset e clear sono molto utili!!
© R.H. Katz 6-33
Realizzazione di circuiti con diversi tipi di FF
Equazioni caratteristiche
R-S:
Q+ = S + R Q
D:
Q+ = D
Reti logiche
Logica sequenziale
Ottenute dalla mappa di Karnaugh
per Q+ = ƒ(Inputs, Q)
J-K:
Q+ = J Q + K Q
T:
Q+ = T Q + T Q
P.es. J=K=0, then Q+ = Q
J=1, K=0, then Q+ = 1
J=0, K=1, then Q+ = 0
J=1, K=1, then Q+ = Q
Permettono di realizzare un tipo di flipflop usandone un altro
D
J
C
K
Q
Q
Q
D realizzato con J-K
K
J
D
Q
C
Q
J-K realizzato con D
© R.H. Katz 6-34
Reti logiche
Logica sequenziale
Realizzazione di circuiti con diversi tipi di FF
Metodo di progetto
Tabelle di eccitazione: quali sono gli ingressi che provocano
uno specifico cambiamento di stato?
Q Q+
0 0
0 1
1 0
1 1
R
X
0
1
0
S
0
1
0
X
J K
0 X
1 X
X 1
X 0
T
0
1
1
0
D
0
1
0
1
D
0
1
0
0
1
1
0
1
Q
Realizzare un FF D con un FF J-K:
1) Partire dalla mappa di Q+ = ƒ(D, Q)
2) Creare le mappe di J e K usando gli ingressi (D, Q)
Q+ = D
3) Mettere i valori adatti per J e K nelle mappe in modo da
causare le stesse transizioni di stato della mappa originale
D
P.es. se D = Q= 0, Q+ = 0
allora J = 0, K = X
0
1
0
0
1
1
X
X
Q
J= D
D
0
1
0
X
X
1
1
0
Q
K=D
© R.H. Katz 6-35
Realizzazione di circuiti con diversi tipi di FF
Reti logiche
Logica sequenziale
Metodo di progetto
Realizzare un FF JK con un FF D
1) Mappa di Karnaugh di Q+ = F(J, K, Q)
2,3) La mappa modificata usando la tabella di eccitazione del FF D
e’ la stessa! Per questo il progetto con FF D e’ facile!!
J
JK
Q
0
1
00 01 11
10
0
0
1
1
1
0
0
1
K
Q+ = D = JQ + KQ
L’equazione che ne risulta e’ quella che fa funzionare il FF D
nello stesso modo del FF J-K. Ovviamente e’ uguale
all’equazione caratteristica per un FF J-K.
© R.H. Katz 6-36
Metastabilita' ed ingressi asincroni
Reti logiche
Logica sequenziale
Definizione dei termini
Circuiti sincroni con clock
• segnale di riferimento comune chiamato clock
• lo stato del circuito cambia in relazione a questo segnale
Circuiti asincroni
• ingressi, stati ed uscite cambiano e vengono campionati
indipendentemente da un segnale di riferimento comune
Il latch R-S e’ asincrono, il FF J-K master/slave e’ sincrono
Ingressi sincroni
• attivi solo quando il fronte o il livello e’ attivo
Ingressi asincroni
• hanno effetto immediatamente, senza considerare il clock
Confontare gli ingressi R, S del latch trasparente con clock con
quelli del latch R-S base
© R.H. Katz 6-37
Metastabilita' ed ingressi asincroni
Reti logiche
Logica sequenziale
Ingressi asincroni possono essere percicolosi!!
Hanno effetto immediato, quindi le alee possono causare
disastri!
Gli ingressi sincroni sono di gran lunga preferibili!
Ma talvolta gli ingressi asincroni non sono evitabili
p.es. segnale di reset,
segnale di attesa della memoria (“wait”)
© R.H. Katz 6-38
Reti logiche
Logica sequenziale
Metastabilita' ed ingressi asincroni
Come trattare gli ingressi asincroni
Sistema
sincrono con
clock
Ingresso
asincrono
D
Q
Sincronizzatore
Q0
Ingresso
D
asincrono
Q
D
Clock
Clock
D
Q
Q1
Clock
Q0
Q
D
Q1
Q
Clock
Non usare mai un ingresso asincrono per piu’ di un ingresso
di FF nel sistema sincrono
© R.H. Katz 6-39
Metastabilita' ed ingressi asincroni
Che cosa puo’ succedere
Reti logiche
Logica sequenziale
Violazione del tempo di setup!
In
Q0
Q1
Clk
In e’ asincrono
Va a D0 e D1
Un FF vede la
transizione l’altro no
Il sistema
potrebbe entrare in uno
stato impossibile!
Il singolo FF che riceve il segnale si chiama sincronizzatore
© R.H. Katz 6-40
Reti logiche
Logica sequenziale
Metastabilita' ed ingressi asincroni
Errori di sincronizzazione
In
D
Q
?
Quando l’ingresso dell’FF cambia vicino al fronte
del clock, il circuito puo’ entrare in uno stato metastabile:
ne’ 0 ne’ 1 logico
Teoricamente potrebbe restare in questo stato per un
tempo infinito, anche se questo non e’ probabile in realta’
Logic 1
Logic 0
Time
Probabilita’ piccola
(ma non zero)
che il FF resti bloccato
a meta’ strada
Traccia di oscilloscopio che
mostra la metastabilita’ ed
il suo decadimento a 0 o ad 1
© R.H. Katz 6-41
Metastabilita' ed ingressi asincroni
Soluzioni al problema degli errori di sincronizzazione
Reti logiche
Logica sequenziale
• la probabilita’ non puo’ mai essere a zero, ma puo’ essere ridotta
• rallentare il clock di sistema
da’ piu’ tempo al sincronizzatore per passare ad uno stato 1 o 0
gli errori di sincronizzazione sono un problema serio per
sistemi molto veloci
• usare la logica piu’ veloce possibile nel sincronizzatore
questo causa un “glitch” molto stretto, che puo’ essere filtrato
con flipflop piu’ lenti, di tipo S od AS
• mettere due sincronizzatori in cascata
Ingresso
asincrono
D
Q
D
Uscita
sincronizzata
Q
Clk
Sistema sincrono
© R.H. Katz 6-42
Reti logiche
Logica sequenziale
Circuiti self-timed e speed-independent
Limiti dei sistemi sincroni
Sincronia completa impossibile per grandi sistemi
a causa del clock skew
Suddividere il sistema in blocchi con clock locale
Farli comunicare con protocolli “speed-independent”
Sistema
sincrono
Segnali di
comunicazione
Sistema
sincrono
Segnalazione con request/acknowledge
Request
S2
S1
richiedente
cliente
master
Flusso dati
Acknowledgement
fornitore
servitore
slave
© R.H. Katz 6-43
Circuiti self-timed e speed-independent
Protocolli sincroni
Reti logiche
Logica sequenziale
Req
Data
Ac k
Clk
Master fornisce richiesta di lettura; slave fornisce dati ed ack
Req
Data
Wait
Clk
Altro schema sincrono (semi-sincrono)
Lo slave attiva il segnale di WAIT se non riesce a soddisfare
la richiesta in un ciclo di clock
© R.H. Katz 6-44
Reti logiche
Logica sequenziale
Circuiti self-timed e speed-independent
Protocolli asincroni/speed-independent
Comunicare informazione usando livelli, non fronti
Nessun segnale di clock
Protocollo di “handshake” a 4 fasi o con ritorno a zero
Req
Data
Ac k
(1) il master attiva request
lo slave esegue l’operazione
(3) il master memorizza i dati
e lo segnala abbassando
request
(2) lo slave segnala che ha finito
attivando acknowledge
(4) lo slave torna allo stato
iniziale abbassando
acknowledge
© R.H. Katz 6-45
Circuiti self-timed e speed-independent
Reti logiche
Logica sequenziale
Alternativa: protocollo di handshake a 2 fasi
Non richiede ritorno a zero
Req
Data
Ac k
(1) il master attiva request
lo slave esegue l’operazione
(2) lo slave indica che ha finito
alzando acknowledge
La prossima richiesta e’ indicata dal livello basso di request
Ha bisogno di piu’ memoria nel master e nello slave per
ricordare la fase del protocollo
Il protocollo a 4 fasi e’ piu’ facile da realizzare
© R.H. Katz 6-46
Reti logiche
Circuiti self-timed e speed-independent
Logica sequenziale
Circuiti self-timed
Decidono per conto proprio quando una richiesta e’ stata servita
Non hanno clock interni
Di solito realizzati modellando il ritardo del caso peggiore nel
componente self-timed
Ingresso
Logica
combinatoria
Req
Uscita
Ack
Ritardo
Modella il ritardo nel caso peggiore
p.es. se la logica combinatoria ha 5 livelli, la linea
di ritardo fra request ed ack ha anch’essa 5 livelli
© R.H. Katz 6-47
Riassunto del capitolo
Reti logiche
Logica sequenziale
• Blocchi costruttivi base dei circuiti sequenziali: latch e flipflop
• latch R-S, flipflop J-K master/slave, flipflop D attivo sul fronte
• Strategie per la distribuzione del clock:
Per i latch: clock stretto o clock multi-fase non sovrapposto
clock stretto ha vincoli da soddisfare da due lati
clock a due fasi ha vincoli da soddisfare da un solo lato
Per i FF: clock ad una fase con FF attivi sul fronte
FF in cascata funzionano se il ritardo di propagazione e’ maggiore
del tempo di setup
Beware of Clock Skew
• Ingressi asincroni (ed i pericoli che causano)
Errori di sincronizzazione: che cosa sono, come minimizzarne gli effetti
• Circuiti speed-independent
Protocolli asincroni: “handshake” a 4 e 2 fasi
Circuiti self-timed
© R.H. Katz 6-48
Scarica

Capitolo 6: progetto logico sequenziale Reti Logiche Contemporary