1
Contatore: esempio di circuito sequenziale
2
Circuito sequenziali
L’output dipende dall’input corrente e dalla storia passata degli
input
Lo “stato” racchiude tutte le informazioni sul passato necessarie
per predire l’output corrente basato sull’input corrente
Variabili di stato, uno o più bit di informazione
Esempio di circuito sequenziale: il contatore
Le variabili di stato sono i bit del conteggio  il conteggio
definisce lo stato
Ad un certo istante lo stato (conteggio) dipende dalla storia
passata
3
Circuito sequenziale con input: contatore con input di enable
Il contatore controlla il valore di ENABLE sui fronti di salita di 4CLK
5
ZOOM
6
Input EN deve essere sincrono: deve cambiare sempre a un
istante fissato un pò dopo il fronte di salita del segnale di clock
Tutti i segnali di input di un circuito sequenziale devono essere
sincroni col segnale di clock (altrimenti il circuito può funzionale
male)
7
Nei sistemi digitali le transizioni avvengono sui fronti di salita di clk
Potrei pero’ provocare le transizioni invertendo clk
8
Circuito sequenziale con output: COUT e’ un segnale che ci dice quando il
contatore ha raggiunto il conteggio massimo
9
Tutti i segnali di output prodotti da un circuito sequenziali sono
sincroni col segnale di clock
10
L’input EN potrebbe essere pilotato dall’uscita di un altro circuito sequenziale
(qui un altro contatore) che per definizione e’ un segnale sincrono
11
EN prodotto da un altro circuito sequenziale e’ quindi OK
12
Può essere mandato in input al contatore
13
Descrizione dei circuiti sequenziali: diagrammi degli
stati
Versione grafica della tavola degli stati di un contatore a 2 bit
S1
Le frecce indicano la
transizione da uno stato
(conteggio) al successivo
S0
S2
S3
contatore a 3 bit
S1
S2
S3
S0
S4
S7
S6
S5
14
Descrizione dei circuiti sequenziali: tavola delle
transizioni degli stati
Per ciascuno stato corrente, specifica gli stati successivi in funzione degli input
Per ciascuno stato corrente, specifica gli output
Esempio: contatore a 3 bit
Stato corrente
Notazione: Q* denota i bit dello
stato successivo
N.B.: questo circuito sequenziale
non ha input (oltre clock e reset)
Stato successivo
Q2Q1Q0
Q2*Q1*Q0*
0
0
0
0
1
1
1
1
0
0
0
1
1
1
1
0
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
15
16
17
18
I Flip-Flop potrebbero essere proprio i dispositivi adatti
19
Consideriamo 2 Flip-Flop: assumiamo che le uscite Q0 e Q1
siano i 2 bit del conteggio
20
Aggiungiamo un circuito combinatorio che ha come input Q0 e Q1
(stato corrente) e che produce come output Q0* e Q1*, cioe’ lo
stato successivo
21
Cosa succede se colleghiamo Q0* all’ingresso D0 del FF0 e Q1*
all’ingresso del FF1?
22
23
24
25
Contatore a 2 bit con enable: il conteggio (stato) cambia solo se il segnale di
enable è 1
Transizione da uno stato al successivo: adesso dipendono dal
valore di ENABLE
Se ENABLE=0 lo stato non cambia: freccia che parte e termina
26
nello stato
Contatore a 2 bit con enable: il conteggio (stato) cambia solo se il segnale di
enable è 1
input
Stato corrente
Stato successivo
Q1Q0 EN Q1*Q0*
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
27
Astrazione: dal contatore alle macchine a stati
Macchine a stati: controllano circuiti caratterizzati da uno stato
(definito da un certo numero di Flip-Flop)
La transizione a uno stato successivo dipendono dallo stato
corrente e dagli input
In ogni stato possono produrre degli output usati per controllare
altri circuiti
Descrivibili da un diagramma a bolle come il contatore
28
Macchine a stati
Stato successivo determinato da un circuito combinatorio:
Ha come input i segnali di input esterni e i segnali di output dei flip flop (stato
corrente)
Ha come output i valori degli input D dei flip flop necessari per produrre lo stato
successivo
clk
Inputs
Logica di
eccitazione
Stato
successivo
Flip
Flops
Stato
corrente
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
Scarica

circuiti sequenziali