Calcolatori Elettronici
Parte IV
Registri
Progetto di Macchine Sincrone
Contatori
Registri a scorrimento

Registri
T

R
Un registro atto a memorizzare un
dato tipo T a cardinalità k è una MS
avente:
k stati di uscita (u1,u2,…,uk) ciascuno
associato ad un valore da memorizzare
 t stati di ingresso (t>k) , T suddiviso in
due sottoinsiemi:
XN, con X=(x1,x2,…,xk) gli ingressi attivi
per la memorizzazione; N=(n1,n2,…,nm)
ingressi neutri per “mantenere l’uscita
del registro, m1

U
T1
T1
T1
…..
u1
u1
u1
nj conserva lo stato
uj=f(xj) nel caso più generale
Ipotesi


Sequenza di ingresso di natura impulsiva
Basi corrispondenti agli ingressi neutri



b1x1b1 ….. b2x2b2 … b3x3b3
Registro a Sincronizzazione esterna
Registro autosincronizzato
Registro a S. E.
I
s
I=(l1,l2,…,lk)
s=(0,1)
R
s=0
q1
q2
q3
…
qk
n1
q1
q2
q3
…
qk
n2
q1
q2
q3
…
qk
s=1
nk
.. q1
.. q2
.. q3
… …
qk
x1
q1
q1
q1
…
q1
x2
q2
q2
q2
…
q2
xk
.. qk
.. qk
.. qk
… …
.. qk
u
u1
u2
u3
..
uk
Registro autosincronizzato
X=(x1,x2,…,xk)
N=(n)
q1
q2
q3
…
qk
Caso concreto: unica base e k ingressi
Puramente impulsivi
Gli istanti di caricamento sono determinati
da uno degli impulsi
n
q1
q2
q3
…
qk
x1
q1
q1
q1
…
q1
x2
q2
q2
q2
…
q2
xk
.. qk
.. qk
.. qk
… …
.. qk
u
u1
u2
u3
..
uk
Tempificazione dei Registri

Registri “latch”

Catturano l’ingresso per tutti il tempo in cui
è presente una variabile impulsiva attiva


È valido finchè effettivamente gli ingressi sono
impulsivi
Registri a “derivazione del fronte”


Es. Accoppiamento capacitivo
.. Per ottenere impulsi sufficientemente
brevi
Tempificazione dei Registri (2)

Registri “edge triggered”


La variazione dell’uscita avviene in
corrispondenza di una variazione di livello
di una variabile impulsiva reale
Registri “Master Slave”
Modelli reali di Macchine
Sincrone (1)

D
R


P
Q
MC

u
I

R è usato per memorizzare gli
stati della macchina
I impulsivi
P uscite di posizionamento
dello stato, impulsive e
p=p(q,i)
U a livelli o imp.
D ritardo di posizionamento del
registro
Modelli reali di Macchine
Sincrone (2)
D
Q
I
R
MC
P
u
Neutri
Q0 Q0
Q1 Q1
Q2 Q2
… …
… …
Qn Qn
Attivi
Q0
Qx
Qy
…
…
Qz
Stabili | p. sincrona
Tempificazione (1)

q
i
p
D
Occorre garantire che il
ritardo D nel
posizionamento dei
registri sia maggiore
della durata degli
impulsi, di modo che lo
stato non cambi
durante la fase di
posizionamento,
d<D
Tempificazione (1)

q
i
d
p
D
Occorre garantire che il
ritardo D nel
posizionamento dei
registri sia maggiore
della durata degli
impulsi, di modo che lo
stato non cambi
durante la fase di
posizionamento,
d<D
Modello Sincronizzato
dall’esterno
l   a f (VL)
s
c  s. a f (VL)
R
k
i0 i
D
Q
I
ik i
P'  P' (Q, I ' )
MC
P
u
Non esistono problemi tipici delle
Macchine a livelli (alee multiple,
statiche)
In quanto l’uscita P’ risulta inattiva (in
assenza di impulso s) per il caricamento
del registro
 occorre garantire che la variazione dei livelli non
sia Sincrona con il fronte attivo di s
es.. Apparecchiatura di clock a due fasi
Modello Sincronizzato
dall’esterno: uscite imp.
s
R
D
Q
I
MC
P
u
Esercizio

Si costruisca una rete nella quale entrano serialmente
i bit di un codice decimale 8-4-2-1 a partire dal bit
meno significativo e dalla quale esca un segnale che
individui se i quattro bit costituiscono o meno una
delle 10 parole-codice previste.
0110
?
Parola vera
Parola falsa
Specifiche



Si assegna ad un segnale a livelli x la
rappresentazione del bit del codice, e ad un
clock la tempificazione.
In sincronia con il 4 bit, z = 1 indica la
correttezza del codice.
Macchina Sincrona a sincronizzazione esterna
Descrizione del Problema

z=1










0000
0001
0010
0011
0100
0101
0110
0111
1000
1001

z=0






1010
1011
1100
1101
1110
1111
0
1/0
0/0
1
2
0/0
1/0
3
1/0
7
1/0
4
0/0
8
1/0
9
0/0
6
5
0/0
1/0 0/0
10
11
12
1/0
13
1/0,0/1
1,0/1 1/0,0/1
1/0,0/1 1/0,0/1
1/0,0/1
1/0,0/1
0
0,1/1
0/0
14
Tabella Stato/trans e minim.
stati
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
1
1/0
3/0
5/0
7/0
9/0
11/0
13/0
0/0
0/0
0/0
0/1
0/0
0/0
0/0
0/1
0
2/0
4/0
6/0
8/0
10/0
12/0
14/0
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0
1
2
3
4
5
6
7
8
9
11
12
13
10
14
1
1/0
3/0
5/0
7/0
9/0
11/0
13/0
0/0
0/0
0/0
0/0
0/0
0/0
0/1
0/1
0
2/0
4/0
6/0
8/0
10/0
12/0
14/0
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
Paul&Unger
0
1
2
3
4
5
6
7
10
1
1/0
3/0
5/0
7/0
9/0
11/0
13/0
0/0
0/1
0
2/0
4/0
6/0
7/0
10/0
7/0
10/0
0/1
0/1
1
2
3
4
5
6
7
10
4
6
3
5
7
1
10
1-3;2-4
1-5;2-6
1-7;2-7
1-7;2-10
1-7;2-7
1-7;2-10
3-5;4-6
3-7;4-7
3-7;4-10
3-7;4-7
3-7;4-10
0
1
2
5-7;6-7
5-7;6-10 07-ott
5-7;6-7
5-7;6-10 07-ott
2
S0=
S1=
S2=
S3=
S4=
S5=
3
07-ott
07-ott
4
5
0
1,2
3,5
4,6
7,8,9,11,12,13
10,14
6
7
Macchina a S.R.
S0
S1
S2
S3
S4
S5
1
S1/0
S2/0
S4/0
S4/0
S0/0
S0/1
0
S1/0
S3/0
S4/0
S5/0
S0/1
S0/1
0
0,1
1
1
0
2
3
1
0,1
0
4
5
0/1
1/0
0
0/1
1/1
Codifica degli Stati







Codificando gli stati
(nell’ordine: y3y2y1)
S0 = 101
S1 = 010
S2 = 111
S3 = 011
S4 = 110
S5 = 000
con
Tabella in codice
000
0
101/1
1
101/1
001
-
-
010
011
011
011
000
110
100
-
-
101
010
010
110
101/1
101
111
110
110
Progetto combinatorio per il
posizionamento dei FF
SR
JK
D
S
R
J
K
D
00
0
-
0
-
0
01
1
0
1
-
1
10
0
1
-
1
0
11
-
0
-
0
1
Infatti, per RS e T …
RS
00
S0 S0
01
S1
11
-
10
S0
S1 S1
S1
-
S0
S
T
Fp
0
0
1
1
1
1
Infatti, per D e JK …
aD
00
S0 S0
01
S0
11
S1
10
S0
S1 S1
S1
S1
S0
S
A=1
kj
00
S0 S0
01
S1
11
S1
10
S0
S1 S1
S1
S0
S0
S
Tornando al progetto …

Scegliendo Flip Flop di tipo JK,
bisognerà progettare 6 segnali di
posizionamento:




J1= J1( y3y2y1x), K1= K1(y3y2y1x)
J2= J2(y3y2y1x), K2= K2(y3y2y1x)
J3= J3(y3y2y1x), K3= K3(y3y2y1x)
… ovvero per JK

JK
J
K
00
0
-
01
1
-
10
-
1
11
-
0
Posso costruire
mappe di
Karnaugh per i
segnali di
posizionamento
del JK e per le
uscite!
Per il primo FF JK ho:
y1x
y3y2
y1x
00 01
00 11 1
11
-
10
-
01
1
1
-
-
11
10
1
1
-
-
-
-
-
-
J1 = 1
y3y2
00 01
00 -1 -
11
-
10
-
01
-
-
1
1
11
10
-
-
1
1
-
-
1
1
K1 = 1
Per il secondo FF JK ho:
y1x
y1x
00
y3y2
01
00
11
-
10
-
y3y2
00
01
-
-
-
-
01
11
10
-
-
-
-
-
-
1
1
11
10
J2 ha diverse f.m. eq.,
Scelgo J2=y3
00
-
01
-
11
-
10
1
1
1
-
-
-
-
K 2  y1 y3 x  y1 y3
Per il terzo FF JK ho:
y1x
y3y2
y1x
00 01
00 11 1
11
-
1
1
-
-
-
-
-
-
-
-
01
11
10
J 3  y2  x
10
-
y3y2
00 01
00 -1 -
11
-
10
-
01
-
-
-
-
11
10
-
-
1
1
K 3  y2
Per le uscite ….

Per quanto attiene le uscite, se si desidera
un’uscita impulsiva, si ha che
z’ = c  z (y3y2y1x)

z si ottiene dalla seguente mappa
y1x
y3y2
00 01 11 10
00 1 1 01
11
10
1
-
-
z  c.( y3 y1 x  y1 y2 )
Circuito
Contatori

Macchine fondamentali



Aritmetica
Funzioni di controllo
Diversi tipi di contatori


Tempificazione
Segnali di ingresso uscita
Contatore Astratto
Generalizzato
U

u/d
div
EN
Counter-mod-M
cp
r
I
l
rp
Macchina
sincrona

.. Anche se la
tempificazione
interna può
essere asincrona
Esempio (1)
Not(cp)
Q0/UO
cp
cp
Not(cp)
Q1/U1 Not(cp)
Q3/U3
cp
cp
Q2/U2
Not(cp)
Esempio (2)
cp
0
1
2
3
0
stato
div
rp
Contatore Astratto
Generalizzato
U
u/d
EN
cp

div
Counter-mod-M
r
I
l
Cp


rp


Conteggio
u/d: up o down
EN: enable generale al
conteggio
div

Divisore


Ho tutti 0 tranne un 1 tra i
conteggi
rp

Ripple Asserito se ho “carry”
oppure “borrow”
Contatore Astratto
Generalizzato (2)
U
u/d
EN

div
Counter-mod-M
cp
rp


U

Uscita

Ingresso omogeneo con U
I
L

r
I
l

Load: se attivo inizializza ad I
l’uscita U
r

Reset, se attivo produce
l’azzeramento di U

P: preset, pone il valoe M-1 ad U
Sincroni e Asincroni

Asincrono

Macchina sequenziale avente come ingresso una variabile di
conteggio, della quale conta solo i fronti di salita, di discesa
oppure entrambi


Almeno uno dei bistabili non riceve in ingresso il segnale di
conteggio ed il suo eventuale cambiamento dis tato è
determinato solo dalla sua funzione stato prossimo, che
dipende dallo stato degli altri bistabili
Sincrono

Macchina di Moore

Tutti i bistabili che costituiscono la memoria del contatore
ricevono simultaneamente in ingresso il segnale di conteggio e
tutti quelli che devono commutare commutano
simultaneamente
Contatori Asincroni ( opp )

01 2 3 4
5 6
7 0
0
1
u
0
0
1
0
1
2
1
0
2
2
3
1
3
4
3
1
4
4
5
2
5
6
5
2
6
6
7
3
7
0
7
3
Un contatore
asincrono mod-n
che conti i soli
fronti di salita o di
discesa può essere
realizzato con 2.n
stati
Contatori Asincroni ( )

01 2 3 0
0
1
u
0
0
1
0
1
2
1
1
2
2
3
2
3
0
3
3
Un contatore
asincrono mod-n
che conti i fronti di
salita e di discesa
può essere
realizzato con n
stati, se n è pari
Contatori Asincroni ( opp )

01 2 3 4
5 0
1 2
0
1
u
0
0
1
0
1
2
1
1
2
2
3
2
3
4
3
0
4
4
5
1
5
0
5
2
Un contatore
asincrono mod-n
che conti i fronti di
salita e di discesa
può essere
realizzato con 2.n
stati, se n è dispari
Il ritorno allo stato iniziale
È possibile solo se
L’ultimo stato è dispari
Ripple Counter
rp
0
rp
rp
cp
mod10
1
cp
mod10
… il contatore del gas ….
Contatore asincrono mod bk
9
cp
mod10
3 cont. mod. 10  Mod 103
… non tutte le variazioni di stato
dei flip flop sono sincrone con cp
Ripple counter mod 2k
Contatore
Mod-23
Ripple counter
JK con J=K=1 funziona come T, contatore mod-2
Il ripple viene generato quando raggiungo 1.
Collegamento in cascata di macchine asincrone
Contatori sincroni

000
001
010
011
100
101
110
111
LSB: 0101
2 c.: 0011, passa
Da 0 a 1 quando la 1.c.
È 1.
MSB 000 0
11110
Passa Da 0 a 1 quando
la 2.c. è 1.
Possono essere
progettati con la
teoria classica delle
macchine sincrone
pilotate da un
impulso di
sincronismo.
Contatori sincroni

000
001
010
011
100
101
110
111
Usando ff T sincroni come v. di stato, ho
le funzioni di posizionamento:
T0=1; T1= Q0; T2= Q0 Q1
Generalizzando…
Tk=Q0 Q1 ….. Qk-1
Registri a Scorrimento
Parallel out

In/out
in

a

out

Parallel In/Out

b
Parallel in
Ingresso e uscita seriale
a abilitazione allo shift
Abilitato da b
Shift logico e aritmetico
logico
1
1
1
0
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
0
1
1
aritmetico
Proprietà dei registri a
scorrimento
Right
Shift
Regis
ter
Left
Shift
Regis
ter
0
0
0
0
1
0
0
1
9
0
0
0
0
0
1
0
0
9 DIV 2 = 4
0
0
0
1
0
0
1
0
9*2 = 18
Serializzazione e Rotate
b
0
0
0
1
0
0
1
0
0
0
0
1
0
0
1
0
Rotate Left
Rotate Right
Shift Circolari usati come
contatori
10000000
01000000
00100000
00010000
00001000
00000100
00000010
00000001
Shift register con 8 bit
contatore modulo 8
Contatori Johnson
00000000
10000000
11000000
11100000
11110000
11111000
11111100
11111110
11111111
01111111
00111111
00011111
00001111
00000111
00000011
00000001
1 1 0 0 0 0 0 0
Cont. Mod-16
Progetto di Sistemi
Not(go)
go
x1
b0
go
x2
A
done
B
go
done
Not(done)
bn
Parallelo, Serie, Retroazione
M1
M1
M2
serie
w
w
M1
M2
parallelo
M2
feedback
Esempio riconoscitore 8421
a
0

0,1
b
c
d
1
1

0
2
3
1
0,1
0
4
5
0/1
1/0
0
0/1
1/1
Contatore
mod-4 (abcd)
Un dispositivo
che mi dice se
sto a destra o
sinistra del
grafo a
seconda degli
ingressi
Ovvero
x
clock
a
b
c
d
b
c
d
a
counter
Mod-4
z0
M
z1
Counter mod-4
a=(0); b=(1); c=(2,3); d=(4,5)
A=(0,1,2,4); B=(3,5)
Ovvero …
a
0
0,1
b
c
d
1
1
1a
0
3
1
0b
1c
0c
B
-
-
-
-
5
0
1d
0d
A/0 B/0 A/0 A/1
0
4
0/1
1/0
1b
A A/0 A/0 A/0 B/0 A/0 A/0 A/0 A/1
2
0,1
0a
0/1
1/1
A=(0,1,2,4); B=(3,5)
Codifica:
a=00
B=01
c=10
d=11
A=0
B=1
Scarica

Macchine sequenziali 2