« Fonctionnement d'un ordinateur/Les circuits compteurs et décompteurs » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 69 :
[[File:AsyncCounter Alternativ.svg|centre|vignette|upright=3|Compteur asynchrone de 3 bits, basé sur des bascules T simplifiées activées sur front montant.]]
 
====L'incrémenteur/décrémenteur asynchrone réinitialisable et modulo====
 
Un décrémenteur est strictement identique à un incrémenteur auquel on a inversé tous les bits. On peut donc réutiliser le compteur du dessus, à part que les sorties du compteurs sont reliées aux sorties Q des bascules.
Le circuit précédent a cependant un problème : il ne peut pas être réinitialisé. Pour que cela soit possible, il faut que les bascules du compteur aient une entrée de réinitialisation ''Reset'', qui les force à se remettre à zéro, alors on peut l'utiliser. Il suffit d'ajouter une entrée ''Reset'' au compteur, et de la connecter aux entrées ''Reset'' des bascules. Ce faisant, le compteur peut être remis à zéro sur simple demande.
 
[[File:AsyncCounter mod 8 with RST Backwards.svg|centre|vignette|upright=3|CompteurDécompteur asynchrone de 3 bits, basé sur des bascules T simplifiées activées sur front réinitialisabledescendant.]]
 
Il est possible de fusionner un incrémenteur et un décrémenteur asynchrone, de manière à créer un circuit qui puisse soit incrémenter, soit décrémenter le compteur. Le choix de l'opération est réalisé par un bit d'entrée, qui vaut 1 pour une incrémentation et 0 pour une décrémentation. L'idée est que les entrées des bascules sont combinées avec ce bit, pour donner les entrées compatibles avec l'opération demandée.
Cette réinitialisation est utile pour créer des compteurs modulo. Il suffit de créer un circuit qui vérifie si la valeur maximale du comparateur est atteinte et qui met à 1 l'entrée ''Reset'' si c'est le cas. Un exemple est illustré ci-dessous.
 
[[File:AsyncCounter mod 10UpDown.svg|centre|vignette|upright=3|CompteurAsyncCounter modulo 10.UpDown]]
 
====Le décrémenteurL'incrémenteur asynchrone réinitialisable et modulo====
 
LeLes circuitcircuits précédentprécédents aont cependant un problème : ilils ne peutpeuvent pas être réinitialiséréinitialisés. Pour que cela soit possible, il faut que les bascules du compteur aient une entrée de réinitialisation ''Reset'', qui les force à se remettre à zéro, alors on peut l'utiliser. Il suffit d'ajouter une entrée ''Reset'' au compteur, et de la connecter aux entrées ''Reset'' des bascules. Ce faisant, le compteur peut être remis à zéro sur simple demande.
Un décrémenteur est strictement identique à un incrémenteur auquel on a inversé tous les bits. On peut donc réutiliser le compteur du dessus, à part que les sorties du compteurs sont reliées aux sorties Q des bascules.
 
[[File:AsyncCounter Backwardsmod 8 with RST .svg|centre|vignette|upright=3|Décompteur asynchrone de 3 bits, basé sur des bascules T simplifiées activées sur frontCompteur descendantréinitialisable.]]
 
Cette réinitialisation est utile pour créer des compteurs modulo. Il suffit de créer un circuit qui vérifie si la valeur maximale du comparateur est atteinte et qui met à 1 l'entrée ''Reset'' si c'est le cas. Un exemple est illustré ci-dessous.
====L'incrémenteur/décrémenteur asynchrone====
 
Il est possible de fusionner un incrémenteur et un décrémenteur asynchrone, de manière à créer un circuit qui puisse soit incrémenter, soit décrémenter le compteur. Le choix de l'opération est réalisé par un bit d'entrée, qui vaut 1 pour une incrémentation et 0 pour une décrémentation. L'idée est que les entrées des bascules sont combinées avec ce bit, pour donner les entrées compatibles avec l'opération demandée.
 
[[File:AsyncCounter UpDown.svg|centre|vignette|upright=3|AsyncCounter UpDown]]
 
[[File:AsyncCounter UpDownmod 10.svg|centre|vignette|upright=3|AsyncCounterCompteur UpDownmodulo 10.]]
 
====L'incrémenteur asynchrone configurable====