![]() |
Copyright |
5 pages à l'impression |
![]() |
version initiale 2000 | |
| dernière
mise à jour 18 mars 2013 |
Registres et compteurs (logique 6/9)
| généralités | la mise bout à bout | |||
| registre à décalage | des bascules | |||
| registre universel | ||||
| compteurs | ||||
| compteur asynchrone | ||||
| modulo différent de 2n | le plus complexe | |||
| exploitation des compteurs | ||||
| compteur synchrone | ||||
| réalisation d'un décompteur | ||||
| compteur johnson ou en anneau | ||||
| procédure de chargement | ||||
| une collection d'icônes pour visiter tout le site | ||||
Il s'agit maintenant d'examiner des dispositifs traitant plusieurs informations à la fois et comportant pour ce faire :

exemple de registre à décalage


registre universelL'exemple type de registre universel à 4 bits est le 7495 qui est conçu autour de bascules RS


| MC | H2 | H1 | horloge | ETsérie | ET A |
| 1 | 1 | 1 | 1 | 0 | A |
| 1 | 1 | 0 | 1 | 0 | A |
| 1 | 0 | 1 | 0 | 0 | A |
| 1 | 0 | 0 | 0 | 0 | A |
| 0 | 1 | 1 | 1 | série | 0 |
| 0 | 1 | 0 | 0 | série | 0 |
| 0 | 0 | 1 | 1 | série | 0 |
| 0 | 0 | 0 | 0 | série | 0 |
compteursIl s'agit de dispositifs dans lesquels existe une correspondance univoque entre le nombre d'impulsions entrées et l'état de sortie correspondant. Ils sont constitués à partir de bascules, un compteur à n bits peut compter jusqu'à 2n-1 avant que le cycle de comptage ne recommence. On distinguera 2 grandes familles, les compteurs synchrones dans lesquels toutes les bascules sont contrôlées par le même signal d'horloge et les asynchrones dont seule la première bascule reçoit sur son entrée clock le signal à compter.

compteur asynchronePrenons l'exemple d'un compteur par 8 = 23. Ecrivons d'abord le tableau des configurations possibles
| N | C | B | A |
| 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 |
| 2 | 0 | 1 | 0 |
| 3 | 0 | 1 | 1 |
| 4 | 1 | 0 | 0 |
| 5 | 1 | 0 | 1 |
| 6 | 1 | 1 | 0 |
| 7 | 1 | 1 | 1 |
| 8 | 0 | 0 | 0 |


entre le front descendant
et le résultat en sortie induit un décalage de n
après la nième bascule. Le problème c'est qu'il
peut arriver que n
>période d'horloge.
D'autre part on trouvera du temps
à
n
sur les sorties du compteur des états
transitoires non significatifs (il ne faut donc pas lire, c'est à dire
utiliser le contenu du compteur pendant ce temps). Ainsi si l'on regarde le
contenu du compteur juste après la quatrième impulsion d'horloge
on va lire pour CBA 011 puis 010 et enfin 000 avant 100, c'est à dire
3, puis 2, puis 0 en décimal avant d'avoir 4!compteur modulo différent de 2nExemple compteur par 5 : 22 < 5 < 23 il faudra donc trois bascules. En pratique on va ajouter au compteur par 8 vu précédemment un circuit qui lorsque n = 5 ramènera le compteur à 0. Pour cela nous utiliserons les entrées asynchrones CLEAR (RAZ) ou PRESET.

après le front descendant
de l'horloge d'entrée. Le décodeur met lui aussi un certain temps
à réagir (
). Ensuite la remise
à zéro s'effectue en un temps
pour une bascule. Donc pendant
+
on aura 101 d'affiché. Dans l'exemple choisi SN7472 et SN7442
=
10ns et
= 20ns soit un total
de 30ns. Il importe que cette durée soit courte vis à vis de la
période d'horloge.| D | C | B | A | |
| 0 | 0 | 0 | 0 | |
| 0 | 0 | 0 | 1 | |
| 0 | 0 | 1 | 0 | (1) |
| 0 | 0 | 1 | 1 | ![]() |
| 0 | 1 | 0 | 0 | |
| 0 | 1 | 0 | 1 | |
| 0 | 1 | 1 | 0 | |
| 0 | 1 | 1 | 1 | (2) |
| 1 | 0 | 0 | 0 | ![]() |
| 1 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | |
| 1 | 0 | 1 | 1 | (3) |
| 1 | 1 | 0 | 0 | ![]() |
| 1 | 1 | 0 | 1 | |
| 1 | 1 | 1 | 0 | |
| 1 | 1 | 1 | 1 |

exploitation des compteursDeux cas se présentent
- Ou l'on fait un comptage, arrête le compteur, puis exploite le résultat avec tout le temps devant soi. C'est par ex le cas de certains fréquencemètres. Dans ce cas la vitesse de comptage peut être élevée, la limitation étant celle de la première bascule. Mais la lecture du résultat s'effectuant sur un temps suffisamment long on évitera les problèmes avec les états transitoires.
- Ou l'on affiche tous les résultats après chaque nouvelle impulsion. Dans ce cas, il est nécessaire de procéder à un échantillonnage décalé. Il faut alors 2 horloges distinctes, décalées d'au moins nq si le compteur comporte n étages afin d'éviter le décodage d'états transitoires. La configuration d'exploitation est alors la suivante :

, alors que dans le premier
cas elle devait simplement être >
.
ce qui n'est pas forcément évident
car
n'est pas toujours le même d'une bascule
à l'autre et donc pour chaque compteur il faudra ajuster la cellule à
retard. Aussi on préfère utiliser un décodeur commandé
par le front montant de l'horloge (si c'est le front descendant qui agit sur
le compteur, et vice versa).
compteur synchroneSoit à construire un compteur synchrone modulo 6 décrivant le cycle suivant et utilisant des JK
| N | A | B | C |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 |
| 2 | 0 | 1 | 0 |
| 3 | 1 | 1 | 0 |
| 4 | 0 | 1 | 1 |
| 5 | 1 | 1 | 1 |
| N | A | B | C | JA | KA | JB | KB | JC | KC |
| 0 | 0 | 0 | 0 | 1 | x | 0 | x | 0 | x |
| 1 | 1 | 0 | 0 | x | 1 | 1 | x | 0 | x |
| 2 | 0 | 1 | 0 | 1 | x | x | 0 | 0 | x |
| 3 | 1 | 1 | 0 | x | 1 | x | 0 | 1 | x |
| 4 | 0 | 1 | 1 | 1 | x | x | 0 | x | 0 |
| 5 | 1 | 1 | 1 | x | 1 | x | 1 | x | 1 |

......

réalisation d'un décompteurIl suffit en pratique de faire un compteur binaire et de sortir non sur les Q mais sur les sorties complémentaires Q. En effet
| N | Q3 | Q2 | Q1 | Q3 | Q2 | Q1 | |
| 0 | 0 | 0 | 0 | 1 | 1 | 1 | 7 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 | 6 |
| 2 | 0 | 1 | 0 | 1 | 0 | 1 | 5 |
| 3 | 0 | 1 | 1 | 1 | 0 | 0 | 4 |
| 4 | 1 | 0 | 0 | 0 | 1 | 1 | 3 |
| 5 | 1 | 0 | 1 | 0 | 1 | 0 | 2 |
| 6 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
| 7 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
compteur Johnson ou en anneauC'est un registre à décalage dont les sorties sont rebouclées sur les entrées inverses. capacité 2n (et non 2n).

| A | B | C | |
| 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 |
| 2 | 1 | 1 | 0 |
| 3 | 1 | 1 | 1 |
| 4 | 0 | 1 | 1 |
| 5 | 0 | 0 | 1 |
| A | B | C | D |
| 0 | 0 | 1 | 0 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 0 | 0 |
| 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 |

procédure de chargement d'un compteurasynchrone, c'est à dire chargement non synchronisé par l'horloge


![]() | ![]() |