Post on 01-May-2015
transcript
Calcolatori ElettroniciParte IV
RegistriProgetto di Macchine SincroneContatoriRegistri a scorrimento
Registri 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:
XN, con X=(x1,x2,…,xk) gli ingressi attivi per la memorizzazione; N=(n1,n2,…,nm) ingressi neutri per “mantenere l’uscita del registro, m1
R
T
U
T1
u1
T1
u1
T1
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 esternaa Sincronizzazione esterna Registro autosincronizzatoautosincronizzato
Registro a S. E.
R
I s I=(l1,l2,…,lk)s=(0,1)
ukqk..q2q1qkqkqkqk
..………………………
u3qk..q2q1q3..q3q3q3
u2qk..q2q1q2..q2q2q2
u1qk..q2q1q1..q1q1q1
uxkx2x1nkn2n1
s=0 s=1
Registro autosincronizzatoX=(x1,x2,…,xk)N=(n)
Caso concreto: unica base e k ingressi Puramente impulsiviGli istanti di caricamento sono determinatida uno degli impulsi
ukqk..q2q1qkqk
..………………
u3qk..q2q1q3q3
u2qk..q2q1q2q2
u1qk..q2q1q1q1
uxkx2x1n
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)
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. ritardo di
posizionamento del registro
M C
Iu
P
Q
RR
Modelli reali di Macchine Sincrone (2)
M C
I u
PQ
RR
Q0Q1Q2……Qn
Neutri AttiviQ0Q1Q2……Qn
Q0QxQy……Qz
Stabili | p. sincrona
Tempificazione (1) Occorre garantire
che il ritardo nel posizionamento dei registri sia maggiore della durata degli impulsi, di modo che lo stato non cambi durante la fase di posizionamento,
<
q
i
p
Tempificazione (1) Occorre garantire
che il ritardo nel posizionamento dei registri sia maggiore della durata degli impulsi, di modo che lo stato non cambi durante la fase di posizionamento,
<
q
i
p
Modello Sincronizzato dall’esterno
M C
I u
PQ
RRs
)',(''
)(.
)(
0
IQPP
VLfasc
VLfal
ii
iikk
Non esistonoNon esistono problemi tipici delleMacchine 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.
M C
I u
PQ
RR
s
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.
?Parola veraParola falsa
0110
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
1/0
3
7 8
1/0 0/0
1/0
4
9 10
1/0 0/0
0/0
2
0/0
5
11 12
1/0 0/0
1/0
6
13 14
1/0 0/0
0/0
0
1/0,0/1 1/0,0/11/0,0/1
1,0/1 1/0,0/11/0,0/1
1/0,0/1 0,1/1
Tabella Stato/trans e minim.stati
1 0 1 00 1/0 2/0 0 1/0 2/01 3/0 4/0 1 3/0 4/02 5/0 6/0 2 5/0 6/03 7/0 8/0 3 7/0 8/04 9/0 10/0 4 9/0 10/05 11/0 12/0 5 11/0 12/06 13/0 14/0 6 13/0 14/07 0/0 0/1 7 0/0 0/18 0/0 0/1 8 0/0 0/19 0/0 0/1 9 0/0 0/110 0/1 0/1 11 0/0 0/111 0/0 0/1 12 0/0 0/112 0/0 0/1 13 0/0 0/113 0/0 0/1 10 0/1 0/114 0/1 0/1 14 0/1 0/1
Paul&Unger
1 00 1/0 2/0 1 1-3;2-41 3/0 4/0 2 1-5;2-6 3-5;4-62 5/0 6/0 3 1-7;2-7 3-7;4-7 5-7;6-73 7/0 7/0 4 1-7;2-10 3-7;4-10 5-7;6-10 07-ott4 9/0 10/0 5 1-7;2-7 3-7;4-7 5-7;6-7 07-ott5 11/0 7/0 6 1-7;2-10 3-7;4-10 5-7;6-10 07-ott 07-ott6 13/0 10/0 77 0/0 0/1 1010 0/1 0/1 0 1 2 3 4 5 6 7
4 6
3 51 2
S0= 0S1= 1,2S2= 3,5S3= 4,6S4= 7,8,9,11,12,13S5= 10,147 10
Macchina a S.R.1 0
S0 S1/0 S1/0S1 S2/0 S3/0S2 S4/0 S4/0S3 S4/0 S5/0S4 S0/0 S0/1S5 S0/1 S0/1
0
1
0,1
23
1 0
5
0
00/11/1
4
10,1
0/11/0
Codifica degli Stati
Codificando gli stati con (nell’ordine: y3y2y1)
S0 = 101 S1 = 010 S2 = 111 S3 = 011 S4 = 110 S5 = 000
000 101/1 101/1
001 - -
010 011 011
011 000 110
100 - -
101 010 010
110 101/1 101
111
0 1
110 110
Tabella in codice
Progetto combinatorio per il posizionamento dei FF
SR JK D
S R J K D
00 0 - 0 - 0
01 1 0 1 - 1
10 0 1 - 1 0
11 - 0 - 0 1
Infatti, per RS e T …
S0-S1S1S1
S0-S1S0S010110100RS
S
T
11
1010Fp
Infatti, per D e JK …
S0S1S1S1S1
S0S1S0S0S010110100aD
S
S0S0S1S1S1
S0S1S1S0S010110100kj
S
A=1
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 Posso costruire
mappe di Karnaugh per i segnali di posizionamento del JK e per le uscite!
JK
J K
00 0 -
01 1 -
10 - 1
11 - 0
Per il primo FF JK ho:
11 1 - -
1 1 - -
1 1 - -
- - - -
y1x
y3y2
00
01
1110
00 01 11 10-1 - - -
- - 1 1
- - 1 1
- - 1 1
y1x
y3y2
00
01
1110
00 01 11 10
J1 = 1 K1 = 1
Per il secondo FF JK ho:
- -
- - - -
- - - -
- - 1 1
y1x
y3y2
00
01
11
10
00 01 11 10
- - - -
1
1 1
- - - -
y1x
y3y2
00
01
11
10
00 01 11 10
31312 yyxyyK J2 ha diverse f.m. eq.,Scelgo J2=y3
Per il terzo FF JK ho:
11 1 - -
1 1
- - - -
- - - -
y1x
y3y2
00
01
11
10
00 01 11 10
-1 - - -
- - - -
- - 1 1
y1x
y3y2
00
01
11
10
00 01 11 10
xyJ 23 23 yK
Per le uscite …. Per quanto attiene le uscite, se si desidera
un’uscita impulsiva, si ha chez’ = c z (y3y2y1x)
z si ottiene dalla seguente mappa
1 1 - -
1
- -
y1x
y3y2
00
01
1110
00 01 11 10
).( 2113 yyxyycz
Circuito
Contatori Macchine fondamentali
Aritmetica Funzioni di controllo
Diversi tipi di contatori Tempificazione Segnali di ingresso uscita
Contatore Astratto Generalizzato
Macchina sincrona .. Anche se la
tempificazione interna può essere asincrona
Counter-mod-M
u/d
EN
cp
div
rp
I
U
r l
Esempio (1)
Q0/UO
Q1/U1
Q2/U2
Q3/U3
cp
cpcp
cp
Not(cp)
Not(cp)
Not(cp)
Not(cp)
Esempio (2)
0 12 3
0
rp
div
stato
cp
Contatore Astratto Generalizzato
Cp 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”
Counter-mod-M
u/dENcp
div
rp
I
U
r l
Contatore Astratto Generalizzato (2)
U Uscita
I Ingresso omogeneo con U
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
u/dCounter-mod-MEN
cp
div
rp
I
U
r l
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 )
Un contatore asincrono mod-n che conti i soli fronti di salita o di discesa può essere realizzato con 2.n stati
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
0 1 2 3 4 5 6 7 0
Contatori Asincroni ( ) Un contatore
asincrono mod-n che conti i fronti di salita e di discesa può essere realizzato con n stati, se n è pari
0 1 u
0 0 1 0
1 2 1 1
2 2 3 2
3 0 3 3
0 1 2 3 0
Contatori Asincroni ( opp )
Un contatore asincrono mod-n che conti i fronti di salita e di discesa può essere realizzato con 2.n stati, se n è dispari
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
0 1 2 3 4 5 0 1 2
Il ritorno allo stato inizialeÈ possibile solo se L’ultimo stato è dispari
Ripple Counter
910mod10mod10mod10
cp
rprprp
cpcp
… … il contatore del gas ….il contatore del gas ….3 cont. mod. 10 3 cont. mod. 10 Mod Mod 101033
Contatore asincrono mod bk
… non tutte le variazioni di statodei flip flop sono sincrone con cp
Ripple counter mod 2k
JK con J=K=1 funziona come T, contatore mod-2Il ripple viene generato quando raggiungo 1.
ContatoreMod-23
Ripple counter
Collegamento in cascata di macchine asincrone
Contatori sincroni Possono essere
progettati con la teoria classica delle macchine sincrone pilotate da un impulso di sincronismo.
000001010011100101110111
LSB: 01012 c.: 0011, passaDa 0 a 1 quando la 1.c. È 1.MSB 000 0 11110Passa Da 0 a 1 quando la 2.c. è 1.
Contatori sincroni 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
000001010011100101110111
Registri a Scorrimento
In/out Ingresso e uscita
seriale abilitazione allo
shift Parallel In/Out
Abilitato da
in
Parallel in
out
Parallel out
Shift logico e aritmetico
11000111
10001110 1logico
10001111 1
aritmetico
Proprietà dei registri a scorrimento
10010000
Right Shift Register
00100000
9
9 DIV 2 = 4
01001000 9*2 = 18Left Shift Register
Serializzazione e Rotate
01001000
01001000
Rotate LeftRotate Right
Shift Circolari usati come contatori1000000001000000001000000001000000001000000001000000001000000001
Shift register con 8 bitcontatore modulo 8
Contatori Johnson00000000100000001100000011100000111100001111100011111100111111101111111101111111001111110001111100001111000001110000001100000001
00000011
Cont. Mod-16
Progetto di Sistemi
A B
go
done
x1
x2
go
Not(done)
b0
bn
go
done
Not(go)
Parallelo, Serie, Retroazione
M1
M2
parallelo
M1 M2
serie
M1
M2
feedback
Esempio riconoscitore 8421
Contatore mod-4 (abcd)
Un dispositivo che mi dice se sto a destra o sinistra del grafo a seconda degli ingressi
0
1
0,1
23
1 0
5
0
0 0/11/1
4
10,1
0/11/0
a
b
c
d
Ovvero
McounterMod-4
z0
z1
x
clock
a b
b c
c d
d a
Counter mod-4a=(0); b=(1); c=(2,3); d=(4,5)
A=(0,1,2,4); B=(3,5)
Ovvero …0
1
0,1
23
1 0
5
0
0 0/11/1
4
10,1
0/11/0
a
b
c
d
A=(0,1,2,4); B=(3,5)
1a 0a 1b 0b 1c 0c 1d 0d
A A/0
A/0
A/0
B/0
A/0
A/0
A/0
A/1
B - - - - A/0
B/0
A/0
A/1
a=00B=01c=10d=11A=0B=1
Codifica: