Contatori Sincroni e Asincroni
Nel campo dell'elettronica digitale, un "contatore" è un circuito logico sequenziale. Il circuito consiste di una serie di flip-flop: circuiti elettronici con due condizioni stabili, ciascuna corrispondente a uno di due segnali input alternativi. I circuiti possono ciclare attraverso una sequenza di stati. Esistono due tipi di contatori: sincroni e asincroni.
Contatori Sincroni
I contatori sincroni tipicamente consistono di elemento memoria, implementato usando flip-flop, e elemento combinazionale, tradizionalmente implementato usando porte logiche. Le porte logiche sono circuiti logici con uno o più terminali input e uno output, in cui l'output commuta tra due livelli tensione determinati da combinazione segnali input. L'uso di porte logiche per logica combinazionale tipicamente riduce costo componenti per circuiti contatore al minimo assoluto, quindi rimane approccio popolare.
Impulso Clock
I contatori sincroni hanno un clock interno, mentre quelli asincroni non ce l'hanno. Di conseguenza, tutti i flip-flop in un contatore sincrono sono pilotati simultaneamente da un singolo impulso clock comune. In un contatore asincrono, il primo flip-flop è pilotato da impulso da clock esterno e ogni flip-flop successivo è pilotato dall'output del flip-flop precedente nella sequenza. Questa è la differenza essenziale tra contatori sincroni e asincroni.
Contatori Asincroni
I contatori asincroni, anche detti ripple counter, sono il tipo più semplice, richiedendo meno componenti e meno circuiti dei sincroni. Sono più facili da costruire, ma l'assenza di clock interno introduce svantaggi maggiori. I flip-flop in contatore asincrono cambiano stato in momenti diversi, quindi i ritardi nel cambio da uno stato all'altro — noti come ritardi di propagazione — si sommano creando ritardo complessivo. Più flip-flop contiene contatore asincrono, maggiore il ritardo complessivo.
Considerazioni
Tipicamente, contatori asincroni sono meno utili dei sincroni in sistemi complessi ad alta frequenza. Alcuni circuiti integrati reagiscono più velocemente di altri, quindi se evento esterno avviene vicino a transizione tra stati — quando alcuni, ma non tutti, i circuiti integrati hanno cambiato stato — può introdurre errori nel contatore. Tali errori sono difficili da prevedere per la differenza di tempo casualmente variabile tra eventi. Inoltre, ritardi propagazione possono rendere difficile rilevare, o decodificare, lo stato output di circuito contatore asincrono elettronicamente.