Circuits séquentiels complexes Réalisé à partir des bascules élémentaires, des fonctions logiques séquentielles plus élaborées que ces dernières sont intégrées dans des circuits. Nous nous intéresserons ici particulièrement aux registres et aux compteurs. A titre indicatif une référence de circuit est donnée pour chaque fonction ; on rappelle cependant que ces références correspondent à des circuits aujourd’hui obsolètes pour une nouvelle conception, la facilité de mise en œuvre des circuits configurables les rendant maintenant préférables aux circuits à architecture figée. 1. Registres Le registre assure la mémorisation d' un mot binaire (et éventuellement sa transformation). Il existe plusieurs type de registre. 1.1. Registres parallèles (storage registers) Il est composé de bascule D montée en parallèle avec l' entrée d' horloge commune. horloge D0 D Q Q0 Q Q1 C D1 D C . . . . Dn . . . . D Q . . . . Qn C Les entrées D des bascules sont généralement reliées à un bus. Au front actif de l' horloge, le mot présent sur le bus est alors mémorisé jusqu' au prochain coup d' horloge. On parle de registre à entrées et sorties parallèles, comme l’intègre le circuit 74HC166. On réalise sensiblement la même fonction en utilisant des bascules D à verrouillage, la mémorisation se faisant alors lorsque l' entrée de chargement repasse à 0, le circuit étant "transparent" (c' est à dire entrées D et sorties Q égales) lorsque cette dernière est au niveau logique 1. On utilise alors le terme "verrou" pour différentier du registre. Le circuit : 74HC373 est par exemple un verrou 8 bits (octal Dtype transparent latches) 1.2. Registres à décalage (shift registers) En reliant dans le schéma précédent la sortie des bascules à l' entrée de la suivante, on obtient à chaque coup d' horloge un décalage vers la droite des bits contenus dans le mot. Le registre obtenu est alors à entrée et sortie série. Denis Rabasté ; IUFM Aix Marseille 1/1 circuits séquentiels complexes entrée série D Q Q0 D Q Q1 D C C Q C Q n sortie série horloge Plusieurs applications sont possibles : - réalisation d' une ligne à retard numérique, un bit mettant N fois la période de l' horloge pour traverser le registre de N bascules. - division par deux d' un nombre binaire. Avec les registres à décalage commercialisés, on a parfois accès directement aux entrées et sorties des bascules; il est alors possible de se servir du circuit comme d' un registre parallèle, de charger un mot, d' effectuer un décalage à droite, puis de lire le mot sur les sorties. En forçant l' entrée de la première bascule à 0, la valeur binaire contenue dans le registre est alors divisée par deux à chaque coup d' horloge. - conversion pour les communications séries. L' échange de mots binaires entre deux systèmes numériques peut se faire en parallèle (un fil par bit plus la masse) ou en série (un fil et la masse). Il est alors nécessaire pour l' émetteur d' envoyer tous les bits d' un mot les uns après les autres. On charge pour cela le mot à émettre dans un registre, puis par décalage les bits passent par la sortie série. De son coté, le récepteur les reçoit par l' entrée série d' un registre identique et recompose le mot également par décalage; il suffit alors de lire les sorties des bascules du registre récepteur. transm ission des données ém etteur récepteur ............ ............ chargem ent des données réception des données Il est également possible de réaliser un décalage à gauche en reliant les entrées de chaque bascule à la sortie de la suivante. entrée série sortie série D Q C D Q C Q1 D Q Qn C horloge Denis Rabasté ; IUFM Aix Marseille 2/2 circuits séquentiels complexes L' application principale est la multiplication par deux à chaque coup d' horloge de la valeur binaire contenue dans le registre. 1.3. Registres universels Certains circuits intégrés réalisent toutes les fonctions décrites ci-dessus; on parle alors de registre universel : suivant les signaux appliqués sur des entrées de commande, un système combinatoire interne relie les bascules de manière à obtenir la fonction désirée. Exemple de référence : le circuit 74HC299, registre universel de 8 bits (8-bit universal shift/storage registers). 2. Compteurs Ces circuits sont très importants en électronique numérique. Leur rôle ne se limite pas à compter des impulsions électriques correspondant par exemple au passage d' une pièce sur le tapis d' une chaîne de montage ou au nombre de tour d' une roue dont on veut connaître la vitesse, ils permettent également d' établir un ordre dans une succession d' événements. C' est par exemple, grâce à l' utilisation d' un compteur (entre autres) qu' un microprocesseur peut effectuer toutes les tâches d' un programme, les unes après les autres dans le bon ordre. La topologie de base des compteurs est toujours à peu près la même : - une entrée d' horloge recevant les impulsions à compter - N sorties sur lesquelles se trouve le résultat du comptage en binaire, en BCD ou dans un code quelconque (en décimal par exemple avec une seule des 10 sorties au NL 1) Le nombre d' états possibles sur les sorties d' un compteur binaire est exprimé par son modulo : un compteur de modulo M compte de 0 à M - 1. Comme pour les bascules, il existe deux types de compteur : asynchrone et synchrone. Le premier comme nous le verrons est très simple à réaliser, mais certaines limitations ont conduit à la mise au point du second. 2.1. Compteurs asynchrones L' élément de base est la bascule D ou JK montée en diviseur de fréquence par deux. entrée D Q C Q sortie entrée 1 J Q sortie C 1 K C 0 t 0 t Q On remarque en effet que dans cette configuration, le signal sur la sortie du compteur est de fréquence deux fois plus faible que celui sur l' entrée d' horloge. En associant ces bascules en cascade, on obtient sur les sorties un mot binaire dont la valeur est fonction du nombre d' impulsions apparues à l' entrée (l’indice de la sortie correspondant à la puissance de deux associée à la sortie). Denis Rabasté ; IUFM Aix Marseille 3/3 circuits séquentiels complexes Q0 D horloge Q1 Q C D Q C Q Q D Q C Q 2 Q horloge 0 1 2 3 4 5 6 t 7 Q0 0 t 0 t 0 t Q1 Q 2 Si le compteur comprend N bascules, son modulo est 2N, (le comptage s' effectuant de 0 à 2N - 1). Pour obtenir un modulo M inférieur, il suffit de détecter à l' aide de portes l' état M - 1 et de mettre les bascules à 0 lors de l' impulsion suivante. C' est de cette manière que l' on réalise un compteur BCD en remettant à zéro un groupe de quatre bascules toutes les dix impulsions. Si on utilise des bascules déclenchant sur front montant, on obtient alors un décompteur. Q0 D horloge Q1 Q C D Q C Q Q D Q C Q 2 Q horloge 0 7 6 5 4 3 2 1 0 t Q0 0 t 0 t 0 t Q1 Q 2 La configuration asynchrone présente une grande simplicité, mais son utilisation est limitée par l' apparition d' états instables au moment des transitions. Prenons l' exemple du compteur lors de Denis Rabasté ; IUFM Aix Marseille 4/4 circuits séquentiels complexes l' arrivée de la quatrième impulsion : le nombre trois étant présent en sortie (état stable), l' impulsion provoque le passage à 0 de la première bascule (on retrouve alors le nombre 2 sur la sortie du compteur), ce qui provoque le passage à 0 de la seconde bascule (on lit alors 0 en sortie du compteur), ce qui provoque la mise à 1 de la troisième bascule, le nombre 4 (état stable) pouvant alors être lu en sortie. Les nombres 2 et 0 n' apparaissent que pendant un temps très court correspondant au temps de propagation des bascules, mais cela peut être très gênant pour certaines applications. Aussi l' utilisation de ces compteurs est souvent limitée à la division de fréquence : on remarque en effet que sur la sortie de la bascule N on obtient un signal de fréquence 2N fois plus faible que le signal d' horloge. Cette propriété est utilisée par exemple lorsque l' on souhaite avoir un signal carré de fréquence basse stable et précise: on réalise alors un oscillateur à quartz dont la fréquence est élevée (pour des raisons mécaniques il est impossible de réaliser des quartz basse fréquence) puis on utilise un compteur asynchrone pour diminuer la fréquence. Le circuit 74HC4060 comprend par exemple une section oscillateur suivi de 14 étages montés en diviseur de fréquence par 2. 2.2. Compteurs synchrones Le seul moyen d' éviter le problème des compteurs asynchrone est de faire en sorte que les bascules changent d' état en même temps. Pour cela les entrées d' horloge de celles-ci doivent être reliées ensemble (comme pour les registres). Le basculement de chaque élément est alors autorisé ou non par des portes logiques en fonction de l' état du compteur. On obtient alors un schéma beaucoup plus compliqué que les précédents. 2.3. Fonctions annexes A l' intérieur des compteurs autour des bascules est organisé un certain nombre de circuits logiques combinatoire ou séquentiels permettant la réalisation de fonctions annexes : - choix du mode de comptage; entre du binaire et du BCD par exemple par une entrée BIN/BCD (comptage binaire si NL1 et BCD si NL0). - choix du comptage ou décomptage par entrée UP/DOWN par exemple. - possibilité par l' intermédiaire d' entrées et de sorties de mettre plusieurs compteurs en cascade de manière à augmenter le modulo de l' ensemble. - certains compteurs possèdent un registre de sortie permettant de mémoriser le résultat à un moment donné tandis que le comptage continue. - enfin certains compteurs sont programmables, c' est à dire qu' il est possible de commencer le comptage ou le décomptage à partir de n' importe quel nombre chargé préalablement. Le chargement peut se faire de manière synchrone (c' est à dire au front actif de l' horloge, lorsque l' entrée ordonnant le chargement est au niveau actif) ou asynchrone (c' est à dire lorsque l' entrée ordonnant le chargement est au niveau actif). Citons par exemple le circuit 74HC40103. Denis Rabasté ; IUFM Aix Marseille 5/5