Un registre dont la séquence d’états est systématique est appelé un compteur. Le comptage peut être contrôlé par une entrée spécifique ou par l’entrée d’horloge. La séquence d’états est toujours la même pour un type de compteur donné. Par exemple, les états d’un compteur binaire à deux bits suivent la séquence \(00 \rightarrow 01 \rightarrow 10 \rightarrow 11 \rightarrow 00 \ldots\) La sortie correspond directement aux bits d’état. On distingue les compteurs asynchrones et les compteurs synchrones. Quel que soit le type de compteur, il y a toujours un retour vers l’état initial, car la séquence d’états est un cycle.
Dans un compteur binaire asynchrone, la sortie d’une bascule de poids moins significatif est acheminée à l’entrée d’horloge de la bascule suivante. C’est la transition de la sortie de la bascule de poids moins significatif qui déclenche la bascule suivante. La figure ci-dessous montre un compteur asynchrone construit à partir de bascules T. La séquence de sortie est donnée dans le tableau 2. On peut voir qu’après huit étapes, la séquence se répète.
Compteur asynchrone
$$A_2$$ | $$A_1$$ | $$A_0$$ |
---|---|---|
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 0 | 1 |
1 | 1 | 0 |
1 | 1 | 1 |
0 | 0 | 0 |
Les compteurs asynchrones sont très simples, mais l’inconvénient est que les transitions d’état ne sont pas synchrones. En particulier, les bits d’état ne changent pas tous en même temps. Par exemple, si le compteur passe de 0111 à 1000, la sortie peut passer par des états intermédiaires parasites: 0111 \(\rightarrow\) 0110 \(\rightarrow\) 1100 \(\rightarrow\) 1000.