Il contatore a 2 bit: contare gli impulsi di clock
Un contatore aggiunge uno al numero che memorizza ogni volta che il clock sale. Con 2 bit, Q1 Q0, conta 00, 01, 10, 11 e poi ricomincia da 00. I contatori segnano il tempo negli orologi, contano eventi e fanno avanzare un processore lungo il suo programma.
Passo dopo passo
Qui conta l’ordine: la verifica imposta gli ingressi una riga alla volta, dall’alto in basso, e le uscite devono corrispondere a ogni riga.
| Passo | CLK | Q1 | Q0 |
|---|---|---|---|
| 1 | 0 | 0 | 0 |
| 2 | 1 | 0 | 1 |
| 3 | 0 | 0 | 1 |
| 4 | 1 | 1 | 0 |
| 5 | 0 | 1 | 0 |
| 6 | 1 | 1 | 1 |
| 7 | 0 | 1 | 1 |
| 8 | 1 | 0 | 0 |
Come funziona
Guarda come contano i numeri binari: 00, 01, 10, 11. Il bit più basso Q0 cambia a ogni passo. Il bit successivo Q1 cambia solo quando Q0 valeva 1 subito prima. Un flip-flop T (T da toggle, “commuta”) inverte la sua uscita a ogni fronte di clock finché l’ingresso T è 1, e la mantiene quando T è 0. Quindi: un flip-flop T per Q0 con T sempre a 1, e uno per Q1 con T collegato a Q0.
Aggiungendo altri flip-flop con la stessa regola si ottengono contatori di qualunque dimensione: un bit cambia quando tutti i bit sotto di lui sono 1.
Suggerimenti e soluzione
Prova prima da solo. Ogni suggerimento svela un po’ di più.
- Un flip-flop T inverte la sua uscita a ogni fronte di clock mentre T è 1.
- Q0 si inverte a ogni fronte.
- Q1 si inverte solo quando Q0 era 1.