ELEMANIA
Digitale - Contatori sincroni
Contatore sincrono modulo 2n

Si consideri adesso lo schema seguente:

Osserviamo che il primo flip flop T commuta sempre, ad ogni fronte di salita del clock. Il secondo flip flop commuta solo quando l'uscita del primo è a 1, mentre il terzo commuta quando le uscite dei primi due sono a 1.

Il seguente diagramma temporale dovrebbe chiarire il funzionamento:

Si osservi che si tratta di un contatore in avanti modulo 8. A differenza dei contatori asincroni, in questo caso il segnale di clock arriva contemporaneamente a tutti i flip flop, i quali dunque commutano insieme (in realtà c'è un tempo di ritardo dovuto al singolo flip flop e alla porta AND, ma si tratta di un tempo molto piccolo e che non cresce all'aumentare del numero di bit del contatore). Questo tipo di contatore si dice appunto sincrono e risolve i problemi di ritardo che avevamo evidenziato nei contatori asincroni.

Sulla base delle stesse considerazioni precedenti non è difficile espandere il modulo del nostro contatore. Per esempio per realizzare un contatore sincrono modulo 16 occorre aggiungere un ff e una porta AND. Il flip flop aggiunto deve commutare quando tutte le uscite dei flip flop precedenti sono a livello alto e dunque lo schema è il seguente:

Contatore sincrono all'indietro (down)

Un contatore sincrono a decremento (down) può essere realizzato molto semplicemente con gli stessi schemi precedenti, ma considerando le uscite Q dei singoli flip flop. Non serve invece allo scopo usare ff pilotati sul fronte di discesa del clock: il lettore può facilmente verificare per proprio conto che il contatore sincrono continua a contare nello stesso verso indipendentemente da quale sia il fronte attivo del clock.

Una soluzione alternativa è mostrata in figura (si lascia al lettore la verifica del fatto che si tratta di un contatore all'indietro modulo 16):

Contatore sincrono decimale (BCD)

La progettazione di un contatore sincrono decimale potrebbe essere fatta partendo da un contatore modulo 16 e usando quindi gli ingressi asincroni di CLEAR per resettare i ff all'arrivo della combinazione 1010, come visto per i contatori asincroni.

Questa soluzione presenta però il problema dei glitch e non è certo il modo migliore per sfruttare pienamente le potenzialità dei contatori sincroni. Una soluzione migliore consiste nel riprogettare il contatore tenendo conto del suo funzionamento e in particolare di quando devono avvenire le commutazioni. Consideriamo infatti la sequenza di conteggio da 0000 a 1010:

0000 → 0001 → 0010 → 0011 → 0100 → 0101 → 0110 → 0111 → 1000 → 1001 → 0000

Esaminiamo separatamente il comportamento dei diversi bit:

Il circuito che realizza il conteggio modulo 10 può essere realizzato in base alle precedenti considerazioni, modificando opportunamente lo schema di un contatore sincrono modulo 16. Lo schema circuitale finale è il seguente:

 

precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it