Dans un compteur synchrone, toutes les bascules sont commandées par un même signal d’horloge et les changements d’état sont synchronisés. Les changements d’état sont contrôlés par les signaux d’entrée appliqués aux bascules, comme dans le fonctionnement normal d’un circuit séquentiel synchrone.
Le diagramme d’état d’un compteur trois bits (huit états) est un cycle, comme on peut le voir sur la figure suivante. Le tableau d’états correspondant est donné dans le tableau 3.
Diagramme d’état d’un compteur
$$Z_2^n$$ | $$Z_1^n$$ | $$Z_0^n$$ | $$Z_2^{n+1}$$ | $$Z_1^{n+1}$$ | $$Z_0^{n+1}$$ | |
---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 | |
0 | 0 | 1 | 0 | 1 | 0 | |
0 | 1 | 0 | 0 | 1 | 1 | |
0 | 1 | 1 | 1 | 0 | 0 | |
1 | 0 | 0 | 1 | 0 | 1 | |
1 | 0 | 1 | 1 | 1 | 0 | |
1 | 1 | 0 | 1 | 1 | 1 | |
1 | 1 | 1 | 0 | 0 | 0 |
Les expressions pour le décodeur de prochain état sont:
\[Z_2^{n+1} = Z_0^n \cdot Z_1^n \cdot (Z_2^{n})^\prime + (Z_0^{n})^\prime \cdot Z_2^n + (Z_1^{n})^\prime \cdot Z_2^n\] \[Z_1^{n+1} = Z_0^{n} \cdot (Z_1^{n})^\prime + (Z_0^{n})^\prime \cdot Z_1^n\] \[Z_0^{n+1} = (Z_0^{n})^\prime\]Le schéma correspondant est donné à la figure suivante.
Schéma logique du compteur à 3 bits
On peut ajouter aux compteurs des fonctions diverses: comptage vers le haut, comptage vers le bas, préchargement parallèle, remise à zéro, etc.
Le compteur de la figure précédente a été conçu comme un circuit séquentiel général, avec un décodeur de prochain état en forme somme de produits. Il est également possible de concevoir un compteur synchrone directement, sans passer par la méthodologie classique, en suivant un raisonnement tout simple. La bascule du bit le moins significatif \(Z_0\) doit changer d’état à tous les coups d’horloge. La bascule du bit suivant \(Z_1\) doit changer d’état seulement lorsque le bit précédent \(Z_0\) vaut 1. La bascule du bit suivant \(Z_2\) doit changer d’état seulement lorsque les bits précédents \(Z_1, Z_0\) valent tous deux 1. Et on peut pousser le raisonnement pour un compteur quelconque:
la bascule d’un bit \(Z_i\) doit changer d’état seulement lorsque les bits précédents \(Z_{i-1},Z_{i-2},\ldots, Z_0\) valent tous 1.
Le compteur à quatre bits de la figure suivante a été conçu
selon cette approche, à partir de bascules JK. L’utilisation d’une
porte ET par bascule permet de mettre en oeuvre les
conditions. L’entrée \(E\) est un contrôle enable pour activer le
comptage. On a aussi prévu une sortie Prochain
pour pouvoir
connecter en cascade d’autres compteurs.
Schéma logique du compteur à 4 bits
Si on réfléchit de la même façon pour le comptage vers le bas, on constate que la règle devient:
la bascule d’un bit \(Z_i\) doit changer d’état seulement lorsque les bits précédents \(Z_{i-1},Z_{i-2},\ldots, Z_0\) valent tous 0.
Cette fois-ci, les conditions se baseront sur les sorties complémentées des bascules précédentes.
En combinant les deux conditions au moyen d’un multiplexeur deux-vers-un, il est facile de concevoir un compteur haut/bas, comme illustré sur la figure suivante.
Schéma logique du compteur haut/bas à 4 bits