Sei sulla pagina 1di 23

I CONTATORI

Definizioni

1. I contatori sono dispositivi costituiti da uno o pi flip-flop


collegati fra loro in modo da effettuare il conteggio di impulsi
applicati in ingresso. In pratica, i flip-flop, opportunamente
connessi, realizzano un circuito sequenziale che, ad ogni ciclo di
clock, passa da uno stato ad un altro secondo una sequenza di
conteggio stabilita.
2. Poich un flip-flop pu assumere due stati logici, una serie di N
flip-flop pu assumere 2N stati logici dove, per stato della serie,
si intende una delle possibili combinazioni degli stati dei singoli
flip-flop. Se, partendo da uno stato iniziale, il contatore ritorna
allo stesso stato dopo k cicli del segnale di ingresso, si dice che
il contatore ha modulo k o base k. Il numerok corrisponde al
numero degli stati del contatore.
3. Ci sono due tipi di contatori definiti in base al modo in cui il clock
determina lattivazione dei flip-flop. Si parla di contatori asincroni
nel caso in cui il segnale di clock viene applicato solo al primo flipflop della serie il quale, a sua volta, genera il segnale di attivazione
per il flip-flop successivo e cos di seguito; si parla di contatori
sincroni nel caso in cui il segnale di clock viene applicato
direttamente e simultaneamente a tutti i flip-flop.

Flip-flop impiegati

1.

Flip-flop
JK
edge-triggered. Consentono i quattro
funzionamenti tipici: memoria, reset, set e toggle. Si riportano
nel seguito: a) schema funzionale di un flip-flop JK comandato
dal fronte positivo del clock, simbolo circuitale e tabella di
verit.

Fig.1 a) Schema funzionale di un flip-flop JK; b) simbolo


circuitale ; c) tavola di verit.
1. Flip-flop di tipo D. Possono essere pensati come flip-flop di
tipo JK (o SR edge-triggered) in cui gli ingressi assumono valori
luno il negato dellaltro. In pratica, sufficiente inserire una
porta NOT tra lingresso J e lingresso K in modo da ottenere un
flip-flop con un unico terminale D = J = K. Nel flip-flop di tipo D
sono, quindi, consentite solo le funzioni di Set e Reset attivate
sui fronti del clock (positivi o negativi) in corrispondenza
rispettivamente degli ingressi D=1 e D=0.
2

2. Flip-flop di tipo T. Possono essere pensati come flip-flop di tipo


JK in cui gli ingressi assumono entrambi il valore 1. Nel flip-flop
di tipo T , quindi, consentita solo la funzione di commutazione o
toggle. In pratica, in concomitanza con i fronti (positivi o
negativi) del clock, il flip-flop di tipo T inverte i valori delle sue
uscite.
3. Comandi asincroni dei flip-flop. Sono costituiti dagli ingressi
preset (o set) e clear (o reset) che determinano lo stato dei flipflop senza rispettare la sincronizzazione del clock. Questo si
verifica, ad esempio, nella fase di inizializzazione di una sequenza
operativa o semplicemente allaccensione del sistema allorch si
vuole che tutti i flip-flop siano azzerati.
4. Flip-flop in configurazione master-slave. Il loro modo di
funzionare che si basa sullinterruzione della connessione tra
ingresso ed uscita li renderebbe particolarmente indicati nelluso
dei circuiti sequenziali. Tuttavia sono particolarmente lenti in
quanto lo slave attivo solo dopo il fronte di discesa
dellimpulso di clock e, pertanto, luscita risponde con ritardo
allingresso. Sono, quindi, da preferire i flip-flop edge-triggered.

Contatori asincroni

1. Contatori asincroni. Sono contatori in cui i flip-flop non


commutano simultaneamente ma in successione nel tempo.
Limpulso di clock applicato solo al primo flip-flop della serie
mentre la sua uscita connessa al terminale di clock del flip-flop
successivo e cos via di seguito. Sono impiegati flip-flop T (o JK
con J=K=1) attivi sul fronte positivo o sul fronte negativo.

2. Contatori asincroni binari con modulo 2N. Si ottengono


collegando in cascata N flip-flop in modo da realizzare sistemi
sequenziali che, al susseguirsi degli impulsi di clock, passano
attraverso 2N stati. Ad ognuno di questi stati associato un
numero binario.
Il conteggio pu essere crescente o decrescente. Si riporta
nel seguito (fig. 2) lesempio di un contatore asincrono con
modulo 24=16 (contatore binario a 4 stadi) costituito da 4 flipflop JK, connessi in modo toggle, attivi sul fronte negativo
dellimpulso di clock. Il segnale di ingresso di cui si vogliono
contare gli impulsi, applicato al terminale di ingresso del primo
flip-flop FF0 ; i terminali di ingresso dei clock Cki dei flip-flop
FF1,FF2 e FF3 sono collegati rispettivamente alle uscite Qi-1 dei
flip-flop precedenti.
La figura 2b riporta il diagramma temporale degli stati, a
partire dallo stato iniziale Q3Q2Q1Q0 = 0000, in funzione della
sequenza degli impulsi di clock. Il primo fronte di discesa del
clock ha leffetto di far commutare FF0 portando la sua uscita a
livello alto senza influenzare gli altri flip-flop (Q3Q2Q1Q0 =
0001).
4

Il fronte di discesa del secondo impulso di clock fa


commutare FF0 portando luscita a livello basso e attivando, in
questo modo, FF1 la cui uscita passa a livello alto (Q3Q2Q1Q0 =
0010).
La sequenza degli impulsi di clock fa passare il contatore
attraverso tutti i sui possibili 24=16 stati per cui, dopo il
sedicesimo impulso, il contatore si ritrova nello stato iniziale.

Fig.2 Contatore asincrono modulo 16 e relative forme donda.

3. Contatori asincroni con modulo arbitrario. Si realizzano


mediante lutilizzo degli ingressi asincroni dei flip-flop al fine di
bloccare la sequenza di conteggio al valore richiesto riportando il
contatore allo suo stato iniziale mediante un reset. Si riporta nel
seguito (fig. 3), lesempio di un contatore decimale (o di modulo 10
o decadico).
Si adoperano, come nel caso precedente, N=4 flip-flop di tipo JK
in funzionamento toggle; il numero dei flip-flop adoperati risponde
allesigenza che il numero del modulo M del contatore deve
corrispondere al suo numero degli stati e quindi deve verificare la
relazione: 2N-1<M<2N. Al susseguirsi degli impulsi di clock, il
contatore deve passare attraverso 10 stati a partire dallo stato
Q3Q2Q1Q0=0000 corrispondente al numero decimale 0 e
fermarsi allo stato Q3Q2Q1Q0=1001 corrispondente al numero
decimale 9.
Il blocco del conteggio ed il successivo azzeramento del
contatore, sono realizzati con lattivazione del comando di reset
dei flip-flop dopo 10 cicli di clock. Questo ottenuto mediante
una porta NAND avente in ingresso le variabili: Q3, Q2, Q1 e Q0.
Pertanto, fino allo stato 1001 del contatore, luscita della porta
NAND si mantiene alta (la funzione reset attiva al livello basso)
mentre, nel momento in cui le uscite vengono a trovarsi nello stato
1010, luscita della porta NAND passa al livello basso e rende
attivo il reset dei flip-flop.

Contatori asincroni

Fig. 3 a) Contatore asincrono modulo 10; b) diagramma temporale


degli stati.

In realt, come evidenziato nella figura 3b, il contatore,


durante lundicesimo ciclo di clock, si porta per brevissimo tempo
allo stato 1010 prima di essere azzerato determinando, cos, un
breve impulso indesiderato (glitch). Di questo si deve tenere
conto sincronizzando opportunamente i dispositivi di lettura o di
visualizzazione con le commutazioni del contatore.
Nellesempio riportato, la funzione di reset stata realizzata,
in maniera semplificata, con una porta NAND con i soli ingressi
Q3 e Q1 tenendo conto del fatto che vi sono alcuni stati nei quali il
contatore non viene a trovarsi. Di questo facile rendersi conto
effettuando la sintesi della funzione reset mediante una mappa di
Karnaugh (fig.4) e considerando gli stati non consentiti del
contatore come condizioni non specificate.

Fig.4 - Sintesi della funzione di reset del contatore.

Contatori asincroni

4.

Contatori indietro asincroni . Sono contatori che iniziano la


sequenza di conteggio a partire dallo stato costituito da tutti 1
(es. Q3Q2Q1Q0=1111 nel caso di contatore a 4 stadi) e, quindi a
decrementare il valore, al susseguirsi dei cicli di clock. La
sequenza decrescente pu essere facilmente ottenuta
prelevando i dati di uscita sui terminali Q di ciascun flip-flop.
In alternativa, possibile adoperare flip-flop che commutino
sul fronte positivo del clock.

5.

Tempi di propagazione. Nei diagrammi temporali degli stati


non si , sin ora, tenuto conto del fatto che ogni flip-flop
introduce un tempo di propagazione del comando . Si riportano
nella figura 5, le forme donda duscita di un contatore modulo 8
prendendo in considerazione il tempo tpd di propagazione di
ciascun flip-flop. Si nota subito che il primo flip-flop commuta
con un ritardo tpd rispetto al clock; il secondo flip-flop commuta
con un ritardo 2tpd rispetto al clock mentre il terzo flip-flop
commuta con un ritardo 3tpd rispetto al clock. In definitiva, in un
contatore ad N stadi, la commutazione dellultimo stadio risulta
ritardata di un tempo pari a Ntpd. Questo fatto limita la velocit
di funzionamento dei contatori asincroni e richiede alcune
precauzioni nella lettura dei valori di uscita. A questo proposito,
facile rendersi conto della necessit che il periodo del clock
TCk sia > Ntpd + TS dove TS il tempo necessario per effettuare
la lettura. Si pu, quindi, affermare che la frequenza massima del
segnale di clock possibile deve essere:
1

fmax = _____ _____


Ntpd + TS
9

6.

Espansione dei Contatori asincroni. E possibile realizzare


contatori asincroni di modulo elevato ponendo pi contatori in
cascata. In figura 6 riportato lo schema a blocchi di un
contatore modulo 64 realizzato mediante un contatore modulo
16, costituito da 4 flip-flop, e un contatore modulo 4 composto
da due flip-flop. Partendo dalla condizione iniziale in cui tutte le
uscite sono a 0, i primi 15 impulsi di clock portano il primo
contatore dallo stato iniziale Q3Q2Q1Q0=0000 allo stato finale
Q3Q2Q1Q0=1111; al successivo impulso di clock, Q3Q2Q1Q0
ritornano a 0 e la transizione da 1 a 0 di Q3 attiva il secondo
contatore portandolo dallo stato Q5Q4=00 allo stato Q5Q4=01. Il
secondo contatore incrementa il suo stato di una unit ogni 16
impulsi di clock sino al 64simo quando anchesso ritorna allo
ritorna allo stato iniziale unitamente al primo contatore
(Q5Q4Q3Q2Q1Q0=000000). In generale si pu dire che il modulo
totale di pi contatori in cascata uguale al prodotto dei moduli
dei singoli contatori.

7.

Vantaggi e svantaggi dei contatori asincroni. I contatori


asincroni hanno lunico vantaggio costituito dalla semplicit
circuitale a fronte dei seguenti inconvenienti:
- limiti in frequenza determinati dai notevoli tempi di
propagazione (v. par. 5, sez 9);
- glitch e impulsi indesiderati (dovuti ai diversi ritardi di
propagazione dei segnali nei circuiti) che possono essere
causa di errori.

10

Contatori asincroni

Fig. 5 Forme donda duscita di un contatore modulo 8 ottenute


considerando il tpd di ciascun flip-flop.

Fig. 6 Contatori asincroni in cascata che realizzano sistemi di


conteggio: a) modulo 64 e b) modulo 60.

11

Contatori sincroni

1.

Generalit. I contatori sincroni, cos come quelli asincroni,


sono costituiti da una serie di flip-flop in cascata ma si
differenziano dai primi per il fatto che il segnale di clock
applicato con sincronia ad ogni flip-flop. Pertanto, per ottenere
una determinata sequenza di conteggio, necessario definire le
funzioni degli ingressi (dati) dei vari flip-flop in modo da
consentire, ad ogni impulso di clock, il passaggio di questi allo
stato desiderato.

2.

Contatori sincroni di modulo 2N. Si analizzano, nel seguito, le


fasi di realizzazione di un contatore binario sincrono di modulo
16.
- Scelta dei flip-flop. Come detto in precedenza, possibile
adoperare flip-flop di tipo JK, D o T. Si decide, in questo
caso, di adoperare flip-flop del tipo JK in numero N=4,
tenendo conto del fatto che il contatore deve avere 2N=16
stati.
Si definisce tabella di eccitazione del flip-flop JK, quella
tabella che consente di esprimere gli ingressi del flip-flop in
funzione di tutte le possibili transizioni di stato (v. fig. 7). I
valori della tabella di eccitazione del flip-flop si possono
ricavare facilmente dallesame della tavola di verit.

12

- Tabella di eccitazione del contatore. E la tabella che


riporta sulle prime N colonne (QN, QN-1 Q0), riga per riga,
tutti gli stati possibili del contatore, su un secondo gruppo di
2N colonne (JN, KN, JN-1, KN-1 J0, K0) i valori degli gli
ingressi necessari a portare i flip-flop negli stati successivi
e, su un terzo gruppo di N colonne (QN, QN-1, , Q0) gli stati
successivi del contatore. In altre parole, la tabella di
eccitazione riporta tutti gli stati del contatore e, per ognuno
di essi, gli ingressi necessari al passaggio nello stato
successivo (v. fig.8).
- Sintesi delle funzioni di ingresso. In riferimento alla tabella di
eccitazione del contatore, si procede alla sintesi delle funzioni
di ingresso dei flip-flop in funzione delle uscite precedenti degli
stessi: Ji=fi(Q3,Q2,Q1,Q0) e Kj=gj(Q3,Q2,Q1,Q0).
La sintesi delle funzioni di ingresso pu essere efficacemente
effettuata mediante luso delle mappe di Karnaugh, come
riportato in figura 9.
- Sintesi ed analisi del circuito. In base alle funzioni di ingresso,
sopra ricavate, si realizzano i circuiti combinatori di ingresso
dei vari flip-flop costituenti il contatore (v. fig.10). Nella figura
10 anche riportato il diagramma temporale degli stati.
Si pu notare come il bit meno significativo commuti ad ogni
impulso di clock. Il secondo bit, di peso binario 21, varia ogni due
cicli di clock, quando Q0=1. Il terzo bit, di peso binario 22, varia
ogni quattro cicli di clock, quando Q0 e Q1 sono ad 1. Il quarto
bit, di peso binario 23, varia ogni otto cicli di clock, quando Q0,
Q1 e Q2 sono ad 1.

13

Contatori sincroni

Qn

Qn+1

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
1
0
0
1
1
1
0

(a)
Fig.7

Transizioni
Qn

->

Qn+1

Ingressi
J

(b)

(a) Tavola di verit di un flip-flop JK


(b) Tabella di eccitazione di un flip-flop JK

14

Contatori sincroni
Stato
Eccitazione

Stato futuro

presente
Q3n

Q2n

Q1n

Q0n

J3

K3

J2

K2

J1

K1

J0

Q3n+1

K0

Q2n+1

Q1n+1

Q0n+1

S0

S1

S2

S3

S4

S5

S6

S7

S8

S9

S10

S11

S12

S13

S14

S15

Fig.8 Tabella di eccitazione di un contatore binario di modulo 16.


15

Contatori sincroni

Q1Q0
Q3Q2

00

Q1Q0
01

11

10

00

00

01
11
10

Q3Q2

11

00
01
11
10

00

01

11

10

11
10

J3 = Q2Q1Q0

K3 = Q2Q1Q0

Q1Q0

Q1Q0

00

01

11

10

Q3Q2
00

10

Q3Q2

01

00
01

Q3Q2

00

01

11

10

01

11
10

J2 = Q1Q0

K2 = Q1Q0

Q1Q0

Q1Q0

00

01

11

10

J1 = Q0

Q3Q2
00
01
11
10

10

00

01

11

K1 = Q0
16

J0 = k0 = 1

(nelle colonne relative a J0 e k0 della tabella di eccitazione del contatore


non compaiono 0)
Fig. 9 Sintesi delle funzioni di ingresso dei flip-flop del contatore mod.16.

Contatori sincroni

Fig.10 Contatore binario sincrono modulo 16 e relativo diagramma


degli stati.

17

3. Contatori sincroni con modulo arbitrario. La tecnica di


comando sincrona si presta molto bene alla realizzazione di
contatori con modulo arbitrario e con sequenze di conteggio
prefissate.
Per realizzare un contatore sincrono di modulo k arbitrario,
occorre passare attraverso le fasi seguenti:
- Scelta del numero e del tipo dei flip-flop. Il numero N di
flip-flop il numero minimo per cui vale la relazione: k<2N. Un
contatore ad N flip-flop, pu avere un numero massimo 2N
stati ma di questi se ne utilizzano soltanto i k richiesti.
Di solito, si utilizzano i flip-flop JK (o in certi casi anche D o
T). Nelle figure 11, 12 e 13 sono riportate le fasi di
realizzazione di un contatore di modulo k=6 (e quindi N=3) in
cui si impiegano flip-flop JK.
- Tabella di eccitazione del contatore. Consiste, come visto
nel caso precedente, nel compilare una tabella che riporti
sulle prime N colonne (QN, QN-1 Q0), riga per riga, tutti i
k stati richiesti del contatore, su un secondo gruppo di
2N colonne (JN, KN, JN-1, KN-1 J0, K0) i valori degli gli
ingressi necessari a portare i flip-flop negli stati successivi
e, su un terzo gruppo di N colonne (QN, QN-1, , Q0) gli
stati successivi del contatore. In figura 11 riportata la
tabella di eccitazione di un contatore binario con N=3 flipflop di tipo JK e k=6 stati.

18

Contatori sincroni
- Sintesi delle funzioni di ingresso. Facendo riferimento alla
tabella di eccitazione del contatore, si possono ricavare le
funzioni di ingresso dei flip-flop in funzione delle loro uscite :
Ji=fi(QN-1, , Q0) e Kj=gj(QN-1, , Q0).
La sintesi delle funzioni di ingresso pu essere efficacemente
effettuata mediante luso delle mappe di Karnaugh. Come
riportato in figura 12 nel caso di un contatore con K=6 si
ottiene:
J1 = Q 2 Q 0
J0 = 1
J2 = Q1Q0
K1 = Q0
K0 = 1
K2 = Q0
Occorre osservare che, nella sintesi delle funzioni di
ingresso, si sono considerati i termini X (condizioni
indifferenti) e * (stati indesiderati), come se assumessero il
valore 1.
In ogni caso, una volta definite le funzioni e quindi la rete logica,
occorre verificare che gli stati eliminati o indesiderati non
possano presentarsi. Se, comunque, per un motivo qualsiasi, il
contatore si venisse trovare in uno stato indesiderato, occorre
far in modo che esso non si blocchi e che, dopo alcuni cicli di
clock, ritorni in uno stato predefinito. Nel nostro caso, qualora
il contatore (di modulo 6) venga a trovarsi nello stato S6 con
Q2Q1Q0=110, le funzioni di ingresso dei flip-flop assumono i
seguenti valori:
J0 = K0 = 1
J2 = K2 = J1 = K1 = 0 e
e, al successivo impulso di clock, portano il contatore nello
stato S7 (Q2Q1Q0=111) anchesso indesiderato. In questo stato,
le funzioni di ingresso dei flip-flop, assumendo i valori:
J2 = K2 = 1 ; J1 = 0 ; K1 = 1 ; J0 = K0 = 1
riportano il contatore nello stato S0 (Q2Q1Q0=000).
19

Contatori sincroni
Stato
Eccitazione

Stato futuro

presente
Q2n

S0
S1
S2
S3
S4
S5

Q1n

0
0
0
0
1
1

Q0n

0
0
1
1
0
0

0
1
0
1
0
1

J2

K2

J1

K1

J0

K0

0
0
0
1
X
X

X
X
X
X
0
1

0
1
X
X
0
0

X
X
0
1
X
X

1
X
1
X
1
X

X
1
X
1
X
1

Q2n+1
0
0
0
1
1
0

Q1n+1
0
1
1
0
0
0

Q0n+1
1
0
1
0
1
0

Fig.11 Tabella di eccitazione di un contatore binario di modulo 6.

20

Contatori sincroni

Q1Q0
Q2

00

Q1 Q0
01

11

10

Q2
0

00

01

11

10

10

J2 = Q1Q0

K2 = Q0

Q1Q0
Q1Q0
Q2

00

0
1

Q2
0
1

01

11

10

Q2
0
1

00

01

11

J1 =Q2 Q0

K1 = Q0

Q1Q0

Q1Q0

00

01

11

10

J1 =1

Q2
0
1

00

01

11

10

K1 = 1

Il segno " * " sta ad indicare gli stati del contatore non utilizzati.

Fig. 12 Sintesi delle funzioni di ingresso dei flip-flop del contatore mod.6.

21

Contatori sincroni

Fig.13 Contatore binario sincrono modulo 6 e relativo diagramma


degli stati.

22

Contatori sincroni
- Conclusioni. La procedura illustrata deriva dal metodo
generale di progettazione dei sistemi sequenziali intesi
come macchine a stati finiti o automi. Infatti, il contatore
sincrono costituisce unapplicazione di macchina a stati
finiti semplificata.
3. Tempi di propagazione. Nei diagrammi temporali degli stati
occorrerebbe tener conto dei tempi di propagazione nei flip-flop
(tpd(FF)) e nelle porte (tpd(G)). A questo proposito, si osserva che i
tempi di propagazione nei flip-flop (tpd(FF)) non sono uguali per
tutti i flip-flop, aumentano con il numero delle porte di carico e
variano a seconda che la transizione sia verso il livello alto o
basso. Discorso simile si pu fare per i tempi di propagazione
(tpd(FF)) delle porte logiche che costituiscono la rete combinatoria
degli ingressi. In definitiva, assumendo degli opportuni valori
massimi per tpd(FF) e tpd(G), possiamo definire la frequenza
massima del clock con la seguente relazione:
1

fmax = _____ ________


tpd(FF) + tpd(G) +TS

23