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
Q
R
Q
0,0 0,1
1,0 0,0
1,0
Q=0
Q=1
0,1
Set(t)
1
0
1
1
1
0
0
Reset(t)
1
1
1
0
0
Uscita Q(t)
Q(t-1) (immutata)
1
0
non ammessa
Effetto dell’impulso negativo di Set
S
1
0
R
1
Q
1
Q
0
Notate che, al termine dell’impulso
di set, Q rimane ad uno!
Ma se Q(t) fosse stato 1?
S
1
0
1
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:
R=0,S=1
Q=
0
R=0,S=1
R=1,S=0
R=1,S=0
Q=1
Vediamo ora le altre combinazioni
S=1
R=1
1
0
1
1
0
0
1
1
1
1
1
Per S=R=1 lo stato del FF non cambia!
0
La combinazione S=R=0 (doppio
impulso) genera uno stato non
stabile
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
1
0
1
1
1
In (t+1) sia Q che Q transitano a 1!!
0
1
FF con porte NOR
Il comportamento è lo stesso, ma il FF cambia stato in corrispondenza
degli impulsi positivi. Un doppio impulso SR crea uno stato instabile.
S
Q
R
Q
SR
00
01
10
11
Q(t)
Q(t-1)
1
0
np
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 (0 1) del clock, oppure
ai fronti negativi (1 0).
Diagramma temporale di un FF SR
asincrono
S
R
R
FF D (Delay) sincrono
Q “segue” D con un ritardo (Delay)
D=0
D=1
D
clock
Q
Q(t+1)=0
Q(t+1)=1
D
ck
Q
Q
Il ritardo dipende
dal clock
Delay=SR
R=not(S)
D
=
Ck
D
FF JK
J
K
(0,0), (0,1)
(1,1) (1,0)
S0
(0,0), (1,0)
J
S1
0
0
1
1
Q=1
Q=0
(1,1), (0,1)
K
Q(t+1)
0
1
0
1
Q(t)
0
1
not(Q(t))
Diagramma temporale JK sincrono
J
Q
K
Q
CK
X
X
J
X
X
X
K
X
CK
Q
FF Toggle
T(t)
T
Q(t)
0
Q(t-1)
1
Q(t-1) (toggle)
1
0
Q1
Q=1
Q0
Q=0
1
0
Equivalenza fra i vari tipi di FF
D
J
=
K
J
T
=
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:
S000, 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 11
S4  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.
Notate: il circuito non ha
input, cambia stato solo
sui fronti di clock
Esempio
J0 = Q2  Q1 ,K0 = Q2 ,
J2 = Q0 + Q1,
K2 = Q1
Inoltre, gli output
coincidono con i Qi
J1 = K1 = 1
,
Procedura di Analisi (3)
Si traccia una tabella degli stati futuri, così
composta:
possibili
combinazio
ni degli
input e
degli stati
in t
Qn-1...Q0
Im...I0
corrispondenti
valori delle
funzioni di
eccitazione dei
FF in t
(nel caso di FF
JK)
Jn-1 Kn1......J0 K0
corrisponden
ti valori delle
uscite in t
Yk..Y0
stati futuri,
ovvero
nuovi valori
che saranno
memorizzati
in t+1
Qn-1...Q0
Esempio:
J0 = Q2  Q1 ,K0 = Q2 ,
J2 = Q0 + Q1,
K2 = Q1
Stato(t)
J2(t)
S0 000 1
S1 001 1
S2 010 0
S3 011 1
S4 100 1
S5 101 1
S6 110 0
S7 111 1
K2(t)
1
1
0
0
1
1
0
0
J1(t) K1(t) J0(t) K0(t)
1 1 1 1
1 1 1 1
1 1 0 1
1 1 0 1
1 1 0 0
1 1 0 0
1 1 0 0
1 1 0 0
Questa parte della
Q2Q1Q0(t)
Non ci sono input tabella si riempie
J1 = K1 = 1
,
Stato(t+1)
111
110
000
100
010
011
100
101
S7
S6
S0
S4
S2
S3
S4
S5
Q2Q1Q0(t+1)
Output=Qi
Procedura di Analisi (3)
Stato(t)
S0
S1
S2
S3
S4
S5
S6
S7
J2(t)
1
1
0
1
1
1
0
1
K2(t)
1
1
0
0
1
1
0
0
J1(t) K1(t) J0(t) K0(t)
1 1 1 1
1 1 1 1
1 1 0 1
1 1 0 1
1 1 0 0
1 1 0 0
1 1 0 0
1 1 0 0
Stato(t+1)
S7
S6
S0
S4
S2
S3
S4
S5
La prima e ultima colonna rappresentano le transizioni
dell’automa
Graficamente:
Come osservato, le transizioni avvengono sui fronti di clock, gli
output coincidono col codice assegnato ad ogni stato, in quanto Qi=oi
S7
S5
S0
S3
S2
S1
S4
S6
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 futuri
stato input
Q1Q0Cnt D1 D2
000
001
010
011
100
101
110
111
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
Q1Q0(t+1)
00
01
01
10
10
11
11
00
D0  Cnt  Q0  Cnt  Q0  Cnt  Q0
D1  Cnt  Q1 Cnt  Q1 Q0  Cnt  Q1 Q0
Automa
S(t),i(t)
Q1Q0
Cnt
000
001
010
011
100
101
110
111
S(t+1)
D1 D2
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
Q1Q0
(t+1)
00
01
01
10
10
11
11
00
Diagramma temporale
Le frecce rosse indicano
le transizioni di stato
(sincrone), i ti indicano
eventi (asincroni fra loro)
Q1Q0
Cnt
t5
S0
S1
S2
S3
S3
000
001
010
011
100
101
110
111
Q1Q0(t+1
)
00
01
01
10
10
11
11
00
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  K 3  Q2  Q0  Q
..Jn  Kn 
Q3Q2Q1Q0
(t)
J3K3 J2K2 J1K1 J0K0
0000
0001
0010
0011
0100
0101
0110
0111
0000
0001
0010
0011
0100
0101
0110
0111
00
00
00
00
00
00
00
11
00
00
00
00
00
00
00
11
00
00
00
11
00
00
00
11
00
00
00
11
00
00
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
00
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
11
Q3Q2Q1Q0
(t+1)
0001
0010
0011
0100

0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0000
1
1 5
4
1
3
1
2
11
1
0
 Qi
i0..n1
0 1
2
3
4
5
6
9
8
7
Divisore di Frequenza
J0  1
K0  Q1  B
ck
J1  Q0  A
K1  Q1  B
Q1Q0 (t)
J1K1
J0K0
Q1Q0
(t+1)
00
01
00
01
10
11
00
10
01
11
10
10
11
11
01
11
01
00
10
11
Q1Q0 (t)
Q1Q0
(t+1)
00
01
10
11
01
11
01
00
ck
Q0
Q1
T
4T
2T
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
Registri
Serial 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