Nell’articolo di oggi analizzeremo nel dettaglio il funzionamento del contatore asincrono
Negli articoli precedenti abbiamo visto:
- Come funziona una CPU: progetto di circuiti logici #0
- Come funziona una CPU: Flip-Flop SR asincrono #0.1
- Come funziona una CPU: Flip-Flop sincrono #0.1.1
- Come funziona una CPU: Flip-Flop D #0.1.2
- Come funziona una CPU: Flip-Flop Master-Slave #0.1.3
- Come funziona una CPU: Modello di Huffman #0.2
- Come funziona una CPU: progetto di circuiti sequenziali sincroni #0.2.1
- Come funziona una CPU: progetto dei circuiti logici #0.3
- Come funziona una CPU: porte logiche operanti su parole #0.3.1
- Come funziona una CPU: multiplexer #0.3.2
- Come funziona una CPU: decodificatore #0.3.3
- Come funziona una CPU: codificatore (encoder) #0.3.4
- Come funziona una CPU: codificatore prioritario (priority encoder) #0.3.4.1
- Come funziona una CPU: sommatore full-adder #0.3.5
- Come funziona una CPU: sommatore Ripple Carry Adder #0.3.5.1
- Come funziona una CPU: sommatore seriale #0.3.5.2
- Come funziona una CPU: Sommatore con carry-lookahead #0.3.5.3
- Come funziona una CPU: ALU spiegata in modo semplice #0.3.5.4
- Come funziona una CPU: comparatore #0.3.5.5
- Come funziona una CPU: registro a m-bit #0.3.6
- Come funziona una CPU: registro a scalamento (Shift Register) #0.3.6.1
- Come funziona una CPU: contatore semplice #0.3.7
Per quanto concerne i contatori esistono due principali modalità di realizzazione:
- ripple counter (o asincroni):
- hanno un ritardo dipendente dalla lunghezza della ”catena” di contatori messi in cascata;
- contatori sincroni:
- tutte le uscite assumono contemporaneamente il valore corrente
Contatore asincrono
Il contatore asincrono è costituito da un tipo particolare di Flip-Flop: i Flip-Flop T. Essi hanno un ingresso di Clear (che serve per inizializzarli a 0), un ingresso di Clock ma non un ingresso di dato. Questo perché, ad ogni impulso di Clock, il Flip-Flop T si complementa, ovvero commuta il proprio valore (da 1 a 0 oppure da 0 a 1). Il Contatore presenta un segnale di Count connesso solo al Clock del primo Flip-Flop. Ad ogni impulso di Count il primo Flip-Flop si complementa e la sua uscita funge da segnale di Clock per il Flip-Flop successivo.
Ogni qual volta un Clock commuta 2 volte di seguito (fronte di salita e di discesa) cioè dopo un intervallo di tempo pari al periodo di tale Clock, il corrispondente Flip-Flop si complementa. Fino a quando un Flip-Flop non vede il proprio Clock commutare 2 volte, resta in attesa.
Si presti attenzione al fatto che i bit sono memorizzati nei Flip-Flop dal meno significativo al più significativo.
Si osservano pertanto le seguenti configurazioni (con LSB ad estrema sinistra e MSB ad estrema destra):
- 0000 = 0
- 1000 = 1
- 0100 = 2
- 1100 = 3
- 0010 = 4
- 1010 = 5
- 0110 = 6
- 1110 = 7
- 0001 = 8
- Etc…
Esse corrispondono ad un vero e proprio conteggio! Il principale svantaggio di un Contatore asincrono è che l’intervallo di tempo dopo il quale commuta il MSB cresce linearmente col parallelismo del circuito.
Supponendo che ogni Flip-Flop abbia un ritardo δ, si ottiene:
ritardo = nflipflop ∗ δ
La velocità di conteggio risulta quindi limitata dal numero di bit che compongono il Contatore. Per ovviare a questo problema, si può adottare una soluzione differente utilizzando un Contatore sincrono.
Iscriviti ai nostri gruppi Telegram
Link utili