Esercizi e applicazioni di
Reti sincrone
1 - Campionamento
2 - Sintesi & Analisi
3 - Accumulatore
4 - Contatore
5 - Registro a scorrimento
6 - Buffer
Il modello della rete sincrona: comportamento
istanti di sincronismo
e intervalli elementari
di funzionamento
(n-1)T0
t
nT0
ingresso
in
stato presente
sn
stato futuro
Sn=G(i,s)n
uscita
un=F(i,s)n
(n+1)T0
sn+1
Il modello della rete sincrona: struttura
ingresso i(t)
uscita u(t) = F(i(t),s(t))
x1
x2
z1
z2
Rete
logica
combinatoria
ideale
xn
stato presente
s(t)
yk
y2
y1
Ritardo
T0
Ritardo
T0
Ritardo
T0
s(t+ T0) = S(t)
zm
stato futuro
S(t) = G(i(t),s(t))
Yk
Y2
Y1
7.1
Campionamento
Il flip-flop D come “ritardo” di durata T0
D
Q
Q n+1 = D n
equazione
caratteristica
del FF “D”
Q’
D delay
clock C
(n-1) . T0
n . T0
(n+1) .T0
ingresso D
D n-1
Dn
D n+1
uscita Q
Q n-1
Qn
Q n+1
Rete sequenziale sincrona a flip-flop D
x1
xn
y1
yk
t1
Rete
combinatoria
tm
t1
tk
Q
D
Q
D
z1
zm
Y1
Yk
f = 1/T0
z i n = F i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , m
y i n+1 = D i n = Y i n = G i (x 1,.., x n , y 1 ,.., y k)n per i = 1, .. , k
Vincolo per il corretto funzionamento
RC
ff
clock
T 0 t R + t RC + t SU
t
t SU: tempo min. di set up dei FF
t RC: tempo max. di risposta della rete comb.
t R: tempo max. di risposta dei FF
Campionamento dei comandi
Addizione in serie
t
Addendi in serie
a2
b2
r2
a1
b1
r1
a0
b0
0
Somma in serie
a
b
FA
r
Q
Riporto
inizialmente
a “zero”
s
s0
s1
s2
R
r1
r2
r3
t
D
Frequenza e fase
uguali a quelle
dei bit seriali.
T 0 t R + t FA + t SU
Esercizio 7.1
Sia EN un “flag” che segnala la presenza in ingresso al full-adder
di bit significativi dei due operandi A e B.
EN
A
a0
a1
a2
a3
an-1
B
b0
b1
b2
b3
bn-1
Come occorre impiegarlo per avere una corretta esecuzione della
somma e per disporre di un flag di validità dei bit sull’uscita s ?
7.2
Sintesi & Analisi
Il procedimento di sintesi
Il procedimento di sintesi di una rete sequenziale sincrona
è formato da 4 passi e consente di dedurne lo schema logico
dal comportamento:
1: individuazione del grafo degli stati,
2: definizione della tabella di flusso,
3: codifica degli stati e definizione della tabella delle transizioni,
4: sintesi della parte combinatoria e retroazioni con flip-flop.
I° esempio: il riconoscitore di sequenza
Una rete sequenziale sincrona ha un ingresso x ed una uscita z.
La relazione ingresso/uscita è descritta dalla seguente frase:
“zn = 1 quando xn = 1 e solo se xn-2 = xn-1 = 1 ”
N.B. - Reti che classificano stringhe di valori di ingresso consecutivi
sono usualmente dette “riconoscitori di sequenze”.
1
x
0
1
z
0
I° esempio: il grafo degli stati
x, z
0,0
A
1,1
M1
1,0
B
1,0
C
1,1
D
0,0
•Si traccia la parte di grafo che riconosce la sequenza assegnata,
specificando su ogni ramo il valore d’uscita (durata T0).
•Si completa il grafo, prendendo in considerazione tutte le altre
possibili situazioni e curando di renderlo “strettamente connesso”
(ogni stato deve poter essere raggiunto da ogni altro).
I° esempio: macchine equivalenti
x, z
0,0
a
M2
1,0
0,0
b
1,0
1,1
x, z
0,0
c
a
M3
1,0
0,0
b
0,0
1,1
1,0
1,0
g
0,0
d
Macchine equivalenti - Sono dette equivalenti macchine sequenziali
che presentano uno stesso comportamento impiegando un diverso
numero di stati: M1 = M2 = M3.
La macchina che ha il più piccolo insieme di stati è detta “minima”
(M2).
I° esempio: tabella di flusso di M1
x
stato
A
B
C
D
0
A,0
A,0
A,0
A,0
1
B,0
C,0
D,1
D,1
N.B. In una rete sequenziale sincrona ogni stato resta presente per
almeno un periodo di clock, ogni cambiamento di ingresso avviene
all’inizio di tali intervalli ed ogni transizione si verifica al termine.
La stabilità dello stato presente non è una condizione necessaria per
la variazione di ingresso. E’ proprio la assenza di questo vincolo che
consente di specificare comportamenti di tipo 2 o di tipo 3.
I° esempio: codifica degli stati
xn
y1ny2n
A: 00
B: 10
C: 11
D: 01
0
1
00,0
10,0
00,0
11,0
00,0
01,1
00,0
01,1
y1n+1 y2n+1, zn
Codifica degli stati - In una rete sequenziale sincrona la codifica
degli stati è arbitraria (2n M, naturalmente!). Il campionamento
a regime dei segnali di stato elimina infatti a priori il problema di
errate interpretazioni causate dal loro iniziale disallineamento.
I° esempio: sintesi della rete di aggiornamento dello stato
Funzioni di eccitazione - Funzioni dello stato e dell’ingresso
che specificano i valori da attribuire ai segnali di comando
di ciascun flip-flop.
La funzione di eccitazione del
flip-flop di tipo D coincide con
la funzione della variabile di
stato futuro.
Le funzioni di eccitazione del
flip-flop di tipo JK vanno
opportunamente dedotte da
quella della variabile di stato
futuro.
Dn = Qn+1
Qn+1
0
1
1
0
Qn
0
1
0
1
Jn
0
1
-
Kn
0
1
I° esempio: sintesi di M1 con flip-flop D
Ipotesi: si cercano reti minime di tipo SP
x
y1y2
00
0 0
1 1
01 11 10
0
0 0
0
0
1
x
y1y2
00
0 0
1 0
01 11 10
0
0 0
1
1
x
1
y1y2
00
0 0
1 0
01 11 10
0
0 0
1
1
y1n+1
y2n+1
zn
D1 = y1n+1 = x.y2’
D2 = y2n+1 = x.y2 + x.y1
z = x.y2
Copertura delle funzioni di eccitazione - Il campionamento a
regime dei segnali di stato elimina a priori il pericolo di alee
statiche e dinamiche.
0
Grafo e tabella di flusso di M3
x, z
0,0
1,1
1,0
a
0,0
b
0,0
1,0
1,0
g
0,0
d
x
stato
a
b
g
d
0
a,0
d,0
d,0
a,0
1
b,0
g,0
g,1
b,0
Codifica e tabella delle transizioni di M3
xn
Q1nQ2n
a:00
b:10
g:11
d:01
0
00,0
01,0
01,0
00,0
Q1n+1 Q2n+1 , zn
1
10,0
11,0
11,1
10,0
Sintesi di M3 con flip-flop D
Ipotesi: reti minime di tipo SP
Q1Q 2
x
00
0 0
1 1
01 11 10
0
0 0
1
1
1
D1n = Q1n+1 = xn
Q1Q2
x
00
0 0
01 11 10
0
1 1
1 0
0
ck
D 1 Q1
D 2 Q2
1
D2n = Q2n+1 = Q1n
z
x
1
Q1Q2
x
00
0 0
1 0
01 11 10
0
0 0
0
1
0
zn = xn. Q1n.Q2n
Verifica del comportamento:
Q1 n+1 = xn
Q2 n+1 = Q1 n = xn-1
z n = (x. Q1. Q2)n = xn . xn-1. xn-2
Complessità
Complessità di una rete sequenziale sincrona - Se si assumono
come componenti primitivi i gate ed i flip-flop e se si assume
come indice di complessità il n° di componenti, la complessità
della realizzazione di un certo comportamento dipende:
• dal tipo di grafo con cui lo si è descritto,
• dalla codifica adottata per gli stati interni,
• dal tipo di flip-flop impiegato sulle retroazioni.
grafo n° flip-flop
M1
M3
2
2
tipo di flip-flop
n° di gate
D
D
4
1
Esercizio 7.2
Una rete sequenziale sincrona programmabile deve riconoscere,
generando un impulso di durata T0 sulla sua uscita z, il verificarsi
di un fronte sul suo ingresso x.
La rete è dotata di due bit di programmazione p1 e p2.
Predisponendo p1=1, p2 =0, la rete deve generare un impulso per
ogni fronte di salita di x.
Con p1=0, p2 =1, la rete deve generare un impulso per ogni fronte
di discesa di x.
Con p1=1, p2 =1, l’attivazione temporanea dell’uscita deve verificarsi
in corrispondenza sia dei fronti di salita, che di discesa.
Progettare la rete ipotizzando che la configurazione p1=0, p2 =0 sia
vietata.
II° esempio: il semaforo (1)
colore
u(t) = P(t)
t
Specifiche:
rosso = 60 sec.
giallo = 20 sec.
verde = 60 sec.
Ipotesi:
T0 = 20 sec.
20 sec.
20 sec.
T0
T1
20 sec.
T2
T3
20 sec.
T6
T5
20 sec.
T4
20 sec.
20 sec.
II° esempio: codifica e funzioni
verde
giallo
rosso
z1
1
0
0
z2
0
1
0
z3
0
0
1
I 7 stati possono essere codificati
con i primi 7 numeri binari.
T0
T1
T2
T3
T4
T5
T6
y1
0
0
0
0
1
1
1
y2
0
0
1
1
0
0
1
y3
0
1
0
1
0
1
0
sn
000
001
010
011
100
101
110
un
100
100
100
010
001
001
001
Funzione
di uscita
sn
000
001
010
011
100
101
110
sn+1
001
010
011
100
101
110
000
Funzione
di stato
II° esempio: sintesi con ff D e reti minime SP
(y1 y2 y3) n (y1 y2 y3) n+1 (z1 z2 z3)
n
y2 ny3 n
y1 n 00 01 11 10
0 0 0 1 0
1 1 1 - 0
y1 n+1 = (y1 y2’+ y2 y3) n
y2 ny3 n
y1 n 00 01 11 10
0 1 1 0 1
1 0 0 - 0
z1 n = (y1’y2’+ y1’y3’) n
0
0
0
0
1
1
1
0 0
0 0 1
1 0 0
0 1
0 1 0
1 0 0
1 0
0 1 1
1 0 0
1 1
1 0 0
0 1 0
0 0
1 0 1
0 0 1
0 1
1 1 0
0 0 1
1 0n n 0 0 0
0 0 1
y2 y3
y2 ny3 n
y1 n 00 01 11 10
y1 n 00 01 11 10
0 0 1 0 1
0 1 0 0 1
1 0 1 - 0
1 1 0 - 0
y2 n+1= (y3 y2’+ y1’y2 y3’) n y3 n+1= (y2’ y3’ + y1’ y3’) n
y2 ny3 n
y2 ny3 n
y1 n 00 01 11 10
y1 n 00 01 11 10
0 0 0 1 0
0 0 0 0 0
1 0 0 - 0
1 1 1 - 1
z2 n = (y2 y3 )n
z3 n = (y1) n
Esercizio 7.3
Facendo riferimento al II° esempio di sintesi
1 - progettare i segnali di comando per le lampade di entrambe
le direttrici di marcia assumendo di avere a disposizione un
DECODER 3:8
III° esempio: conteggio di eventi
x
ck
R.S.S
z
La rete sequenziale sincrona di figura deve contare modulo due gli
intervalli di tempo in cui si verifica x = 0.
Il risultato del conteggio appare su z e viene aggiornato solo al termine
di ogni intervallo in cui non si è contato (x = 1).
I valori z = 0 e z = 1 indicano rispettivamente che la rete ha visto un
numero “pari” ed un numero “dispari” di intervalli con x = 0.
x
z
III° esempio: grafo degli stati
1,0
0,0
1,0
0,0
a
c
b
1,1
0,0
0,1
1,0
1,1
0,1
f
e
d
0,1
1,1
III° esempio: macchina minima
x
stato
a
b
c
d
e
f
0
b,0
c,0
b,0
e,1
f,1
e,1
1
a,0
d,0
a,0
d,1
a,1
d,1
x
a = {a,c}
d = {d,f}
stato
a
b
d
e
0
b,0
a,0
e,1
d,1
1
a,0
d,0
d,1
a,1
Stati indistinguibili - Sono detti indistinguibili stati a partire dai
quali il comportamento della macchina è identico per qualsiasi
sequenza di ingresso (esempio: a c, d f).
Sostituendo una “classe” di stati indistinguibili con un unico stato
si ottiene una macchina equivalente a quella considerata.
Quarto esempio: contatore BCD con ingresso di enable e
autoinizializzazione in max 2 clock
0
0
1
2
0
1
15
1
1
0
Contatore BCD
con ENABLE
9
14
e con
autoinizializzazione
3
1
1
0
1
0
0
1
0
0
1
4
1
0
1
0
13
12
0
0
1
0
0
8
5
1
0
7
0
1
6
1
1
11
1
10
tabella delle transizioni
X
Q D Q C Q B QA
0 0 0 0
0 0 0 1
0 0 1 0
0 0 1 1
0 1 0 0
0 1 0 1
0 1 1 0
0 1 1 1
1 0 0 0
1 0 0 1
1 0 1 0
1 0 1 1
1 1 0 0
1 1 0 1
1 1 1 0
1 1 1 1
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
0
0
0
0
0
1
1
0
1
0
1
0
1
0
1
0 0
0 1
0 1
1 0
1 0
1 1
1 1
0 0
0 0
0 0
0 1
1 1
1 0
1 0
1 1
0 1
QDn+1 QCn+1 QBn+1 QAn+1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
Per X = 1 e
S = 0000, 0001, .., 1001
si ha:
(S)2n+1 = (S+1)2n mod 10
Per X = 0 si ha
(S)2n+1 = (S)2n
Un ingresso di questo tipo
è denominato comando di
ENABLE.
Il procedimento di analisi
Il procedimento di analisi di una rete sequenziale sincrona
è formato da 4 passi e consente di dedurne il comportamento
dallo schema logico:
1: analisi dei segnali di eccitazione di ciascun flip-flop,
2: deduzione delle variabili di stato futuro,
3: individuazione della tabella delle transizioni,
4: tracciamento e studio del grafo degli stati.
espressioni dello stato futuro
Tramite l’equazione caratteristica si passa
dalle espressioni delle
funzioni di eccitazione a quelle delle variabili
di stato futuro.
Yn+1 = Dn
•
•
Dunque, per ricavare la tabella delle transizioni di una RSS assegnata è
sufficiente costruire le mappe associate alle espressioni di Dn
Dalla tabella delle transizioni si ricava il grafo degli stati
Esempio: registro a scorrimento
x
D Q
Q’
D Q
Q’
Q0
Q1
Q2
D Q
Q’
ck
Q0n+1 = x n
Q1n+1 = Q0n
Q2n+1 = Q1n
(Q2 Q1 Q0)n
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
xn = 0
0 0 0
0 1 0
1 0 0
1 1 0
0 0 0
0 1 0
1 0 0
1 1 0
xn = 1
0 0 1
0 1 1
1 0 1
1 1 1
0 0 1
0 1 1
1 0 1
1 1 1
(Q2 Q1 Q0)n+1
Grafo degli stati
1
100
1
0
0
110
1
1
1
1
1
000
010
101
0
111
0
0
0
001
1
0
0
011
Ogni stato è codificato dalla configurazione corrispondente agli ultimi
tre valori dell’ingresso. Ad ogni colpo di clock il bit in ingresso entra
in Q0, il bit in Q0 “scorre” o “trasla” su Q1, il bit in Q1 su Q2
… e comportamento
xn
D Q
Q’
x n-1
D Q
Q’
x n-2
ck
APPLICAZIONI
• linea di ritardo
• riconoscitore di sequenze
• convertitore serie/parallelo
D Q
Q’
x n-3
Progetto logico e famiglie logiche
Per fare macchine complesse,
occorrono
componenti complessi!
M. de Lapalisse
Modulo
sequenziale
Modulo
sequenziale
gate
gate
ff
gate
Modulo
sequenziale
ff
ff
gate
ff
gate
Modulo
sequenziale
Modulo
sequenziale
Modulo
sequenziale
7.3
Il registro di stato
Il registro per lo stato interno
x1
xn
y1
yk
t1
Rete
combinatoria
tm
t1
tk
Q
D
Q
D
z1
zm
Y1
Yk
f = 1/T0
Registro di stato o registro accumulatore - Insieme di flip-flop,
azionati dallo stesso clock e singolarmente dotati di un ingresso e di
una uscita.
L’applicazione tipica di questo circuito integrato è la realizzazione
delle retroazioni di una rete logica sequenziale sincrona.
I comandi dell’accumulatore
Rete
combinat.
Registro
Tre esigenze del registro accumulatore :
1- inizializzazione,
2- aggiornamento,
3- memorizzazione.
Una soluzione molto comoda: avere nel registro anche una
parte combinatoria in grado di interpretare due comandi.
WE RES esigenza descrizione
- 1
1
R0
1 0
2
R G(R,I)
0 0
3
RR
I comandi WE e RES (Registro con N ff D)
WEn, In
RESn,Qn 00 01 11 10
00
0 0 1 0
01
1 1 1 0
11
0 0 0 0
10
0 0 0 0
Qn+1
Mux
0
z
1
A
Ii
Per i = 0, 1, .., N-1
Qin+1 = (RES’.(Ii WE + Qi . WE’))n
N.B. - Per il reset di un registro
si può anche usare il comando
asincrono CL dei suoi flip-flop.
WE
Di
RES’
CK
Qi
ALU e accumulatore
operazione
iniz./aggiorn./mem.
operando
risultato
ALU
operando
Q0 D 0
Q1 D 1
Q2 D 2
Q3 D3
RES
WE
Esercizio 7.5
Modificare lo schema del contatore BCD al fine di disporre di
un comando sincrono di RESET. In caso di contemporanea
attivazione del RESET e del ENABLE, deve prevalere il primo.
7.4
Contatore
Il contatore binario x16
1
0
0
0
0
CI
a0
a1
a2
a3
b0
b1
b2
b3
4 Bit
F. A.
S+1 mod 16
s0
s1
s2
s3
CO
Q3
Q2
Q1
Q0
(S)2n = (Q3 Q2 Q1 Q0)2n
D3
D2
D1
D0
sn
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
sn+1
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
Forme d’onda
In un contatore binario, l’uscita Q del flip-flop che memorizza
il bit di peso 2i è un’onda quadra con periodo doppio di quella
presente sull’uscita Q del flip-flop che memorizza il bit di peso 2i-1 .
Il primo flip-flop divide per due la frequenza del clock.
ck
Q0
Q1
Q2
Q3
Una rete più semplice per l’incremento
1
CI
0
Q0
a
b
S
Q0
R
R
0
r
0
Qi
a
b
S
Qi
R
0
R
Periodo del clock e complessità della rete
1
D 0 Q0
1
J 0 Q0
K0
D 1 Q1
J 1 Q1
K0
D 2 Q2
J 2 Q2
K2
D 3 Q3
J 3 Q3
K3
CO = Q3. Q2. Q1. Q0
T 0 t r + 3.t g + t su
CO = Q3. Q2. Q1. Q0
T 0 t r + 2.t g + t su
Esercizio 7.6
contatore
U/D’ binario x16
QA
QB
QC
CO
QD
Progettare la cella i-esima di un contatore binario dotato di
comando “up/down”.
Quando U/D’ = 1, il contatore deve incrementare di una unità
il numero binario che rappresenta il suo stato; quando il
comando vale 0, il numero deve essere decrementato.
Aumento della base di conteggio
EN
RES
QA
contatore
binario x16
QB
QC
CO
QD QC QB QA “15”
QD
contatore binario x256
1
EN
RES
QA
contatore
binario x16
QB
QC
CO
QA
QB
QC
contatore
binario x16
QB
QC
CO
QD
EN
RES
QA
QD
QE
QF
QH
QG
QD
Diminuzione della base di conteggio
EN
RES
QA
contatore
binario x16
QB
QC
CO
QD
La nuova base
di conteggio è
X+1
rete che riconosce
la presenza del numero X
clock
stato
RESET
X-2
X-1
X
0
1
Esempio: sintesi del RESET
per ottenere base 11
QD
QBn, QAn
QDn,QCn 00 01 11 10
0
0 0 0
00
01
0
0 0 0
11
0
0 1
10
RES n
QD
QB
QD
QC
QB
QDQC QBQA
rete minima
mintermine
autoinizializzazione
in un solo clock
I° esempio di sintesi con contatori
Una rete sequenziale sincrona ha un ingresso X che assume il
valore 1 molto di rado e comunque sempre per un solo periodo
di clock. L’uscita Z deve sia ritardare l’impulso di ingresso di
quattro unità di tempo, sia raddoppiarne la durata.
ck
X
Z
I° esempio: grafo degli stati
0,0
1,0
0,0
0,0
0,0
0,1
0,1
Il comportamento è quello di un contatore con base 6 che compie
un intero ciclo per ogni evento X = 1
Per realizzarlo si può impiegare un contatore binario x8 dotato di
comandi di ENABLE e di RESET.
I° esempio: progetto di EN, RES, Z
stato
riposo 000
001
010
011
100
101
110
111
X=0
000
010
011
100
101
000
-----
X=1
001
---------------
Z
0
0
0
0
1
1
-
stato
000
001
010
011
100
101
110
111
X=0 X=1
0,0,0 1,0,0
1,0,0 -,-,1,0,0 -,-,1,0,0 -,-,1,0,1 -,-,-,1,1 -,-,-,-,- -,-,-,-,- -,-,EN, RES, Z
EN = X + (QC +QB +QA) = X + (QC’QB’QA’)’
RES = QC QA
Z = QC
I° esempio: schema logico
X
EN
RES
QA
contatore
binario x8
QB
QC
Z
II° esempio: orologio digitale
A partire da un oscillatore a 32.768 Hz
progettare un orologio digitale in
grado di visualizzare ore, minuti e
secondi tramite sei display
a 7 segmenti
77
Oscillatore
Trascodifica
Trascodifica
dadaBCD
BCD
a a7 7segmenti
segmenti
32.768 Hz
77
Trascodifica
Trascodifica
dadaBCD
BCD
a a7 7segmenti
segmenti
44
(divisore di frequenza)
BIN x 32768
Q0……. Q14
1 Hz
Z
Qi
EN
BCD x 24
(ore)
77
Trascodifica
Trascodifica
dadaBCD
BCD
a a7 7segmenti
segmenti
44
Z
Qi
EN
BCD x 60
(minuti)
44
Z
Qi
EN
BCD x 60
(secondi)
1
II° esempio: il contatore dei minuti/secondi
Z
Z = QD• QA
BCD x 60
Qi
RES
BCD
EN
EN
Z
QA QB QC QD
Z
“59”.EN
RES
BCD (decine)
Z
EN
QA QB QC QD
RES
BCD (unità)
EN
Z
QA QB QC QD
Qi
0
EN
II° esempio: il contatore delle ore
Z
BCD x 24
Qi
EN
Z
RES
BCD (decine)
Z
EN
QA QB QC QD
RES
BCD (unità)
EN
Z
QA QB QC QD
“23”.EN
Qi
EN
Esercizio 7.7
Ampliare il progetto dell’orologio con
• il conteggio dei mesi,
• il conteggio degli anni.
Come si può predisporre data e ora?
III° esempio: watch dog
ck
Start
Dato
Stato
X
0
X
X-1
2
Fine
X.T0
1
0
III° esempio: schema logico
X
IA
Start
0
LD
EN
U/D’
QA
IB IC ID
contatore
binario Z
x16
QB QC QD
“15”.(U/D’) + “0”.(U/D’)’
Fine
7.5
Registro
a scorrimento
Shift register
Shift register o registro a scorrimento - Rete sequenziale sincrona
formata da N flip-flop D disposti in cascata.
N-bit shift register
SI (serial input)
(serial output) SO
Q0
Q1
QN-1
………………………….
D Q
Q’
ck
D Q
Q’
D Q
Q’
Universal shift register
Qi
Qi-1
Qi+1
Ii
0 MUX
1
2
3 A0 A1
D Q
Q’
Qi
hold
right
left
load
APPLICAZIONI
• linea di ritardo
• convertitore S/P e P/S
• conteggio
• memoria a circolazione
• rotazione verso destra/sinistra
• moltiplicazione/divisione per 2i
A0n A1n
0 0
1 0
0 1
1 1
Qin+1
Qin
Qi-1n
Qi+1n
Iin
Esempio: conteggio
N-bit shift register
SI (serial input)
(serial output) SO
Q0
Q1
QN-1
………………………….
Base: N
Codice: 1 su N
Inizializzazione!
N-bit shift register
SI (serial input)
(serial output) SO
Q0
Q1
QN-1
………………………….
Base: 2N
Codice: Johnson
Inizializzazione!
Esempio: conversioni S/P e P/S
S/H’ 0
N-bit shift register A0 A1
SI (serial input)
Q0
Q1
QN-1
………………………….
I0
A0 A1
1 S’/L
I1
………………………….
S/P
IN-1
N-bit shift register
(serial output) SO
P/S
7.6
Buffer
Registro buffer
Registro buffer (o a latch)- Insieme di N latch CD azionati dallo
stesso comando e singolarmente dotati di un ingresso e di una uscita.
Applicazioni tipiche:
• memorizzazione di un dato di ingresso di N bit,
• memorizzazione di un dato di uscita di N bit.
X
B
u
f
f
e
r
1
I
Unità
funzionale
Ci: B1 X;
B
u
U f
f
e
r
2
Y
Cu: B2 U;
Il registro buffer
.. ed il BUS
wr
rd
C
D0
Q
Q1
D
C
DN-1
Q0
D
C
D1
Q
D
Q
QN-1
D0 D1 DN-1
Architettura e Registri buffer
AR
DR
Cella
Memoria principale
Processore
Protocollo per
l’uso del BUS
AR*
Dato
Stato
Unità di ingresso
DR*
Direct Memory Access
Esempio di accesso diretto:
AR* memory address;
DR* M(AR*);
AR* I/O address;
I/O(AR*) DR*;
Dato
Stato
Unità di uscita
Random Access Memory
Dato in
• scrittura
• lettura
Comando
• WR (scrittura)
• RD (lettura)
S
e
l
e
t.
/
D
i
s
t
r.
Registro # 0
Registro # 1
.
.
.
Registro # 2 n - 2
Registro # 2 n - 1
N.B. Al posto del termine
Indirizzo di n bit
“registro” si usa di norma
per scegliere il registro
il termine “cella”.
A0 A1 An-1 WR RD
D0 Dj DN-
1
DEC
La RAM
i
C
Qj
D
Cella di indirizzo “i”
I cicli di lettura e di scrittura
• Le celle di una RAM sono registri buffer
• I bit di indirizzo, tramite il DEC, scelgono una cella alla volta
• I comandi WR, RD stabiliscono se l’accesso
è “in lettura” o “in scrittura”.
LETTURA
SCRITTURA
Address
signals
tempo di accesso
RD
WR
Data
signals
tempo di accesso
Decoder e Matrici di decodifica
C D “decodifica di colonna”
• Proprietà associativa del AND
• Minimo (n°gate + n°ingressi)
“decodifica di riga”
A
B
Istruzioni a tre indirizzi
Opcode
address
address
address
Indirizzo
del
primo
operando
Indirizzo
del
secondo
operando
Indirizzo
del
risultato
ALU e RAM
Opcode
F1 F2
F3
B1
ALU
B2
address
address
1
2
3
MUX
address
RD WR
RAM