Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | lorenza-giovannini |
View: | 237 times |
Download: | 0 times |
Circuiti di memorizzazione
elementari: i Flip Flop
Circuiti di memoria elementari: Flip Flop (o bistabili)
• Il circuito sequenziale basilare é il Flip Flop, un circuito in grado di memorizzare un bit di informazione. Il Flip Flop prende anche il nome di bistabile, poiché può trovarsi in due stati stabili: lo stato in cui ha memorizzato un 1 e quello in cui ha memorizzato uno 0.
FF SR con porte NAND
S
R
Q
Q
Set(t) Reset(t) Uscita Q(t)
1 1 1 1 0 1 1 1 0 0 0 0 0
Q(t-1) (immutata)
1
0
non ammessa
Q=1 Q=0
1,0
0,1
0,0 0,1
1,0 0,0
Effetto dell’impulso negativo di Set
1
0
1
S
R
Q
Q
1
0
Notate che, al termine dell’impulso
di set, Q rimane ad uno!
Ma se Q(t) fosse stato 1?
1
0
1
S
R
Q
Q
1
0 Q e Q sarebbero rimasti immutati!!
Quindi:
• Nel FF con porte nand, se in t Q=0,Q=1 allora un impulso negativo di Set porta Q(t+1) al valore 1
• Se invece in t Q=1 , Q=0 allora Q(t+1) resta al valore uno
• Perciò: un impulso di set ha comunque l’effetto Q(t+1)=1
Analogamente:
• Un impulso di Reset porta, o mantiene, Q(t+1) al valore 0. Quindi:
Q=0
Q=1
R=0,S=1R=0,S=1
R=1,S=0
R=1,S=0
Vediamo ora le altre combinazioniS=1
R=1
1
1 1
1
0
0
0
1
1 0
1
1
Per S=R=1 lo stato del FF non cambia!
La combinazione S=R=0 (doppio impulso) genera uno stato non
stabile
0
1
In (t+1) sia Q che Q transitano a 1!!
1
1
Quando R e S tornano nella condizione di riposo (1,1) gli input degli AND diventano 11, e Q e Q di nuovo transitano entrambi a 0..
0
0
1
1
FF con porte NOR
S
R
Q
Q
SR Q(t)00 Q(t-1)01 110 0
11 np
Il comportamento è lo stesso, ma il FF cambia stato in corrispondenzadegli impulsi positivi. Un doppio impulso SR crea uno stato instabile.
Diagrammi temporali e sincronizzazione
• Per rappresentare un FF abbiamo a disposizione, come visto:
lo schema circuitale (porte logiche con controreazione) il simbolo grafico l'automa la tabella degli stati.
• Esiste anche un'altra modalità di analisi, che é il diagramma temporale.– Il diagramma temporale consente di rappresentare le commutazioni
delle uscite di un FF, o di un circuito più complesso, in funzione dell'andamento temporale ingressi.
Sistemi sincroni• I sistemi sequenziali possono operare in modo
sincrono o asincrono. Nei sistemi asincroni i circuiti logici cambiano ogni
volta che uno o più ingressi cambiano. Nei sistemi sincroni, l'istante esatto in cui una
qualsiasi uscita può cambiare é determinato da un segnale di "cadenza" detto clock.
Un clock é un treno di impulsi ad onda quadra. Un sistema sincrono può essere sensibile alle
transizioni (o fronti) positivi (01) del clock, oppure ai fronti negativi (10).
R
S R
Diagramma temporale di un FF SR asincrono
FF D (Delay) sincrono
D
ck
D=0 Q(t+1)=0
D=1 Q(t+1)=1
Q “segue” D con un ritardo (Delay)
Il ritardo dipende
dal clock
D
clock
Q
Q
Q
Delay=SR
D
Ck
=
R=not(S)
D
FF JK
S0 S1
(0,0), (0,1)(0,0), (1,0)
(1,1) (1,0)
(1,1), (0,1)
Q=0Q=1
J
K
J K
0 0
0 1
1 0
1 1
Q(t+1)
Q(t)
0
1
not(Q(t))
J
K
Q
Q
CK
X
X
X
X
X
X
J
K
CK
Q
Diagramma temporale JK sincrono
FF Toggle
T
00
1
1
Q0
Q=0
Q1
Q=1
T(t) Q(t)
0
1
Q(t-1)
Q(t-1) (toggle)
Equivalenza fra i vari tipi di FF
D J
K
T
J
K
=
=
Analisi di circuiti sequenziali
• Dato un circuito sequenziale, descriverne il funzionamento
• Il funzionamento di un circuito sequenziale va descritto in
termini di un automa a stati finiti. Dato lo schema circuitale, dapprima dobbiamo identificare gli
elementi di memoria che vi sono inclusi. In ogni istante, la memoria del sistema, ovvero il valore binario
memorizzato nei FF, indica lo stato in cui il sistema si trova. Per ogni possibile stato e possibile combinazione degli input, da un
esame della parte combinatoria del circuito possiamo determinare i valori delle uscite e il successivo stato in cui il sistema transiterà.
Procedura di Analisi (1)•Si esaminano gli elementi di memoria del circuito, ovvero i FF. I possibili stati del sistema sono rappresentati dalle possibili combinazioni di valori memorizzabili nei FF, e disponibili sulle uscite Qi. Per n FF, avremo 2n combinazioni, e 2n stati.
•Si assegna un simbolo di stato ad ogni combinazione di memoria.
Esempio 1
• Per l'esempio di figura, abbiamo 2 FF, e 4 possibili valori memorizzati su Q1 e Q0: 00,01,10,11. Possiamo ad esempio assegnare la seguente codifica:
S000, S1 01, S2 10, S3 11
Esempio 2
1: 2 FF 8 stati (max) corrispondenti ai valori (Q2Q1Q0) 000 001 010 ….111
2: Assegnamento: S0 000, S1 001, S2 010, S3 0 11S4 100, S5 101, S6 110, S3 111
Procedura di Analisi (2)
•Si analizza la parte combinatoria del circuito e si ricavano le funzioni di trasferimento per ciascun ingresso di ciascun FF contenuto nel circuito, dette anche funzioni di eccitazione dei FF, nonché le funzioni di trasferimento delle uscite.
Esempio
J0 = Q2 Q1 ,K0 = Q2 , J1 = K1 = 1 , J2 = Q0 + Q1, K2 = Q1
Notate: il circuito non hainput, cambia stato solosui fronti di clock
Inoltre, gli outputcoincidono con i Qi
Procedura di Analisi (3)
Si traccia una tabella degli stati futuri, così
composta:
possibili combinazio
ni degli input e
degli stati in t
corrispondenti valori delle funzioni di eccitazione dei FF in t (nel caso di FF JK)
corrispondenti valori delle
uscite in t
stati futuri, ovvero
nuovi valori che saranno memorizzati
in t+1 Qn-1...Q0 Im...I0
Jn-1 Kn-1......J0 K0
Yk..Y0 Qn-1...Q0
Esempio:
000 1
Stato(t) J2(t) K2(t) J1(t) K1(t) J0(t) K0(t) Stato(t+1) S0 S1 S2 S3 S4 S5 S6 S7
1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0
J0 = Q2 Q1 ,K0 = Q2 , J1 = K1 = 1 , J2 = Q0 + Q1, K2 = Q1
S6 S0 S4 S2 S3 S4
S5
S711
Q2Q1Q0(t)Non ci sono input
Q2Q1Q0(t+1)Output=Qi
001010011100101110111
110000100010011100101
Questa parte della tabella si riempiesulla base delle EB
Procedura di Analisi (3)
Stato(t) J2(t) K2(t) J1(t) K1(t) J0(t) K0(t) Stato(t+1) S0 S1 S2 S3 S4 S5 S6 S7
1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 0
S7 S6 S0 S4 S2 S3 S4
S5 S5
La prima e ultima colonna rappresentano le transizioni dell’automa
Graficamente:
S0
S7 S5
S3
S4 S2
S1 S6
Come osservato, le transizioni avvengono sui fronti di clock, glioutput coincidono col codice assegnato ad ogni stato, in quanto Qi=oi
Esempio 2
Analisi
1. Due FF di tipo D, 4 stati S0 S1 S2 S3
2. Espressioni booleane degli input
€
D0 =Cnt ⊕Q0 =Cnt ⋅Q0 +Cnt ⋅Q0
D1 =Cnt ⋅Q1+Cnt ⋅Q1⋅Q0 +Cnt ⋅Q1⋅Q0
Tabella stati futuriQ1Q0Cnt D1 D2 Q1Q0(t+1)
000001010011100101110111
0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0
0001011010111100
€
D0 =Cnt ⊕Q0 =Cnt ⋅Q0 +Cnt ⋅Q0
D1=Cnt ⋅Q1+Cnt ⋅Q1⋅Q0 +Cnt ⋅Q1⋅Q0
stato input
Automa
Q1Q0
CntD1 D2 Q1Q0
(t+1)
000001010011100101110111
0 0 0 1 0 1 1 0 1 0 1 1 1 1 0 0
0001011010111100
S(t),i(t) S(t+1)
Diagramma temporale
Q1Q0
CntQ1Q0(t+1)
000001010011100101110111
0001011010111100
S0 S1 S2 S3 S3
Le frecce rosse indicanole transizioni di stato(sincrone), i ti indicanoeventi (asincroni fra loro)
t5
Circuiti sequenziali importanti
• Contatori: circuiti che contano sequenze ordinate o qualsiasi
• Registri: circuiti per memorizzare e leggere stringhe di bit
Contatore sincrono
€
J0 =K0 =1
J1 =K1 =Q0
J2 =K2 =Q0 ⋅Q1
J3 =K3 =Q2 ⋅Q0 ⋅Q
..Jn =Kn = Qii=0..n−1
∏Q3Q2Q1Q0
(t)J3K3 J2K2 J1K1 J0K0 Q3Q2Q1Q0
(t+1)
0000000100100011010001010110011100000001001000110100010101100111
00000000000000110000000000000011
00000011000000110000001100000011
00110011001100110011001100110011
11111111111111111111111111111111
0001001000110100010101100111100010011010101111001101111011110000
0 12
3
511 1
0 9 8
4
6
7
12
13
14
15
Divisore di Frequenza
€
J0 =1
K0 =Q1 = B
J1 =Q0 = A
K1 =Q1 = B
Q1Q0 (t) J1K1 J0K0 Q1Q0 (t+1)
00
01
10
11
00
10
01
11
10
10
11
11
01
11
01
00
ck
00
10 11
01
Q1Q0 (t) Q1Q0 (t+1)
00
01
10
11
01
11
01
00
T
4T
2T
Q0
Q1
ck
Registri
• Classificabili in base alla modalità di scrittura e lettura dei dati:– Serial Input Serial Output (Shift register) SISO– Serial Input Parallel Output SIPO– Parallel Input Serial Output PISO– Parallel Input Parallel Output PIPO
RegistriSerial Input Serial Output (SHIFT REGISTER)
Shift Register (SISO)
Serial Input Parallel Output
Parallel Input Serial Output
Parallel Input Parallel Output
SHIFT LEFT-RIGHT
€
Di = (Qi+1 ⋅LEFT) ⋅(Qi−1 ⋅RIGHT) = (Qi+1 ⋅LEFT) + (Qi−1 ⋅RIGHT) =Qi+1 ⋅LEFT +Qi−1 ⋅RIGHT
D0 =Q1 ⋅LEFT + Input ⋅RIGHT
Dn = Input ⋅LEFT +Qn−1 ⋅RIGHT