Trasferimento parallelo
DFF sono usati per memorizzazione di dati. Una delle operazioni
fondamentali che coinvolge registri e’ il trasferimento sincrono
Ritardo
clock
Blocco
combinatorio
I
rI
Z
rZ
Reg. Out
Reg. In
flusso dei dati
tclk
Clk
I
BB
BB
rI
Z
tc
DD
DD
rZ
Se tempo di ritardo (tskew) = 0 => il sistema funziona se:
tP + tc + ts < tclk  frequenza massima
Nota: Se tskew > 0 tclk cresce!!!!!
Trasferimento seriale
Shift register (registro a scorrimento) realizza un trasferimento
seriale sincrono
S
sr_in
D
S
Q
D
C
S
Q
D
C
S
Q
D
C
Q
sr_out
C
clock
Lo shift register puo’ essere
scritto serialmente (modo
sincrono) o inizializzato con una
opportuna combinazione
di Set e Clear (modo asincrono)
Clock
sr_in
p3
p2
p1
p0
p1
p2
p3
p0
p3 p2 p1 p0
0 1
0 0
0 0
x x
1 x
0 1
1° fronte
2° fronte
Shift register realizza una
conversione da seriale a parallelo
(e viceversa).
La trasmissione seriale di informazione e’ “semplice”
ma poco efficente: per trasferire N bits  N cicli di clock.
Contatori
Un contatore e’ un circuito sequenziale in grado di “contare”
impulsi.
Elemento essenziale di un contatore e’ un FF che commuta
il suo stato d’uscita ad ogni colpo di clock
S
J
Q
K
/Q
C
J
0
0
1
1
K Q
0 Qold
1 0
0 1
1 /Qold
Equivalgono ad
un set e clear
sincroni!!!
I contatori si dividono in due classi:
asincroni (ripple counter)
sincroni (parallel counter)
L’insieme di FF che compongono un contatore ripple non cambiano
stato in maniera sincrona con il clock (sono piu’ lenti)
Contatori asincroni
1
clk
1
1
1
J
Q
J
Q
J
Q
J
Q
K
/Q
K
/Q
K
/Q
K
/Q
L’inversione fa
commutare FF
su fronte negativo
Q0
Q1
Q2
Q3
Divisione di frequenza:
clk
Q0
Q1
Q2
Q3
f/2
f/4
f/8
f/16
Conteggio:
n°C Q3 Q2 Q1 Q0
0
0 0 0 0
1
0 0 0 1
2
0 0 1 0
.................................
14
1 1 1 0
15
1 1 1 1
0
0 0 0 0
Contatori asincroni(2)
n°C Q2 Q1
0
0 0
1
0 0
2
0 1
3
0 1
4
1 0
5
1 0
0
0 0
Progetto di un contatore asincrono
modulo 6 a partire da un contatore
modulo 8.
Sequenza aspettata degli output:
Il contatore viene “resettato” in
maniera asincrona (clear)
quando l’output e’ uguale a 6 (110)
1
clk
1
1
J
Q
J
Q
J
Q
K
/Q
K
/Q
K
/Q
C
Q0
Q1
Q0
0
1
0
1
0
1
0
C
Q1
C
Q2
Q2
Tempo di propagazione di un contatore asincrono modulo 2N:
il clock dello stadio successivo e’ il data output dello stadio
precedente quindi il tempo di commutazione dal clock in ingresso e’
Tc = N x TP
clk
Q0
Q1
Q2
Q3
Tp 2Tp
3Tp
4Tp
Attenzione: se Tc < NTp il contatore non funziona!!!!
Contatori sincroni
I problemi connessi con l’accumularsi dei tempi di propagazione
dei FF viene risolto con contatori sincroni.
Un contatore e’ detto sincrono quando tutti gli output commutano
in maniera sincrona con il clock in ingresso  il clock e’ distribuito
in parallelo a tutti i FF del contatore.
Q2 Q1 Q0 Q2 Q1 Q0
Es: contatore modulo 5
decodifica delle
uscite
0
0
1
1
0
D
Q
0
1
0
1
0
0
0
0
1
0
0
1
1
0
0
1
0
1
0
0
/Q2
/Q0
Q1
Q0
/Q2
Q1
Q0
0
0
0
0
1
D
Q
/Q
D
/Q
Q
/Q
clk
Q2
Tempo di propagazione:
Tc = Tp(FF) + Tp(gate)
Q1
Q0
Scarica

Nessun titolo diapositiva