L'une des raisons pour lesquelles nous synchronisons les bascules de sorte qu'il n'y ait pas de chaos lorsque les sorties des bascules sont alimentées via certaines fonctions logiques et retournées à leurs propres entrées.
Si la sortie d'une bascule est utilisée pour calculer son entrée, il nous appartient d'avoir un comportement ordonné: pour empêcher l'état de la bascule de changer jusqu'à ce que la sortie (et donc l'entrée) soit stable.
Cette synchronisation nous permet de construire des ordinateurs, qui sont des machines à états: ils ont un état actuel, et de calculer leur prochain état en fonction de l'état actuel et de certaines entrées.
Par exemple, supposons que nous voulons construire une machine qui "calcule" un nombre incrémentiel de 4 bits de 0000 à 1111, puis passe à 0000 et continue. Nous pouvons le faire en utilisant un registre à 4 bits (qui est une banque de quatre bascules D). La sortie du registre est soumise à une fonction logique combinatoire qui ajoute 1 (un additionneur à quatre bits) pour produire la valeur incrémentée. Cette valeur est ensuite simplement renvoyée au registre. Maintenant, chaque fois que le front d'horloge arrive, le registre accepte la nouvelle valeur qui est une plus sa valeur précédente. Nous avons un comportement ordonné et prévisible qui parcourt les nombres binaires sans aucun problème.
Les comportements d'horloge sont également utiles dans d'autres situations. Parfois, un circuit a de nombreuses entrées, qui ne se stabilisent pas en même temps. Si la sortie est produite instantanément à partir des entrées, elle sera chaotique jusqu'à ce que les entrées se stabilisent. Si nous ne voulons pas que les autres circuits qui dépendent de la sortie voient le chaos, nous faisons cadencer le circuit. Nous accordons un temps généreux pour que les entrées se stabilisent puis nous indiquons au circuit d'accepter les valeurs.
L'horloge fait également partie intégrante de la sémantique de certains types de bascules. La bascule AD ne peut pas être définie sans entrée d'horloge. Sans entrée d'horloge, il ignorera son entrée D (inutile!), Ou copiera simplement l'entrée à tout moment (pas une bascule!) Une bascule RS n'a pas d'horloge, mais elle utilise deux entrées contrôler l'état qui permet aux entrées d'être "auto-synchronisées": c'est-à-dire d'être les entrées, ainsi que les déclencheurs du changement d'état. Toutes les bascules ont besoin d'une combinaison d'entrées qui programme leur état, et une certaine combinaison d'entrées leur permet de maintenir leur état. Si toutes les combinaisons d'entrées déclenchent la programmation, ou si toutes les combinaisons d'entrées sont ignorées (l'état est maintenu), cela n'est pas utile. Qu'est-ce qu'une horloge maintenant? Une horloge est spéciale, entrée dédiée qui distingue si les autres entrées sont ignorées ou si elles programment l'appareil. Il est utile de l'avoir comme entrée distincte, plutôt que de la coder entre plusieurs entrées.
Une bascule sur front montant peut être envisagée comme deux verrous dos à dos, dont l'un est activé peu de temps après que le signal d'horloge passe à l'état bas et reste activé jusqu'à ce qu'il passe à l'état haut; la seconde est activée peu de temps après que l'horloge passe à l'état haut et reste activée jusqu'à ce qu'elle baisse. Le fait d'avoir un bref instant pendant lequel aucune bascule n'est activée signifie que la sortie d'une bascule peut être réinjectée en toute sécurité à son entrée via une logique combinatoire. Une modification de la sortie sur un cycle d'horloge peut entraîner une modification de l'entrée, mais cette modification d'entrée n'aura aucun effet avant le cycle d'horloge suivant.
Historiquement, il était assez courant pour les appareils numériques d'utiliser ce qu'on appelait une "horloge à deux phases", qui avait deux fils d'horloge qui étaient élevés pour des intervalles sans chevauchement pendant chaque cycle. Tous les verrous sont divisés en deux groupes, une horloge contrôlant le premier groupe de verrous et l'autre horloge contrôlant le second; dans la plupart des cas, les sorties de chaque groupe ne sont utilisées que pour calculer les entrées de l'autre. Chaque cycle d'horloge consiste en une ou plusieurs impulsions sur la première horloge, dont au moins une doit respecter des spécifications de longueur minimale, et une ou plusieurs impulsions sur la seconde (même exigence). Un avantage d'une telle conception est qu'elle peut être très tolérante au décalage d'horloge à condition que le temps mort entre les phases d'horloge dépasse la quantité de décalage d'horloge.
Une approche plus "moderne" consiste à faire en sorte que chaque élément de verrouillage (registre) reçoive un seul fil d'horloge et génère essentiellement ses propres horloges internes qui ne se chevauchent pas. Cela nécessite que le décalage d'horloge maximal ne dépasse pas le temps de propagation minimum entre les registres, mais les outils modernes permettent de contrôler le décalage d'horloge plus précisément que ce n'était possible au cours des décennies passées. De plus, dans de nombreux cas, la synchronisation monophasée simplifie les conceptions en éliminant la nécessité de partitionner la logique en deux groupes.
la source
Nous savons tous que les circuits réels numériques vont contenir BEAUCOUP de portes. Un signal peut avoir à emprunter plusieurs chemins pour atteindre la dernière porte qui donne la sortie. Un signal met un certain temps à se "propager" sur les différents trajets atteignant la dernière porte. Le temps de propagation n'est pas le même sur des chemins différents. Cela conduit à ce que nous appelons des pépins. Des problèmes surviennent car certains chemins sont plus courts que d'autres et lorsqu'un signal atteint la dernière porte plus tôt en empruntant le chemin le plus court, il l'affecte immédiatement avant que les autres signaux sur le chemin le plus long n'atteignent la porte. La sortie qui en résulte momentanément est erronée et peut devenir dangereuse dans un circuit numérique conduisant à des erreurs de propagation.
J'en viens maintenant à la raison pour laquelle nous avons besoin d'une horloge. Une horloge "synchronise" essentiellement le circuit avec un seul signal externe. Considérez-le comme un rythme sur lequel le circuit est réglé pour aimer la musique. Les choses se produisent en harmonie avec cette horloge, aucune horloge = le circuit n'est désactivé. En utilisant l'horloge, nous nous assurons que les différentes parties du circuit fonctionnent en harmonie en même temps . De cette façon, le comportement du circuit est plus prévisible. Elle est également moins affectée par les changements de retard de propagation par la température et les variations de fabrication. Cela couvre l'horloge.
Les bascules sont de tels éléments de circuit numérique qui prennent une action (modifiant leur sortie en réponse à une entrée sur leur port d'entrée) lorsqu'un "CLOCK EDGE" se produit. Le front d'horloge est lorsque le signal d'horloge passe de 0 à 1 ou de 1 à 0. Il suffit de dessiner une onde d'horloge et vous saurez ce que je veux dire. Il existe un autre groupe d'éléments appelés verrous, la sortie des verrous change pour refléter l'entrée lorsqu'un certain signal de contrôle est à un niveau logique spécifique et n'attend pas de fronts, ce signal de contrôle est appelé ENABLE dans les verrous. Les verrous peuvent fonctionner lorsque la validation est 1 et modifier leur sortie ou lorsque la validation est 0. Cela dépend du type de verrouillage. En revanche, les tongs ne font que quelque chosequand ils sont alimentés par une horloge EDGE. Veuillez noter cette différence entre les verrous et les bascules, et rappelez-vous que les verrous sont connectés ensemble pour créer une bascule de telle sorte que l'activation ne fasse que la bascule faire quelque chose quand un front d'horloge se produit. Dans ce cas, nous appelons le signal Enable à Clock, et cela a également plus de sens. L'horloge pour les humains va tique tique tique, la bascule ne fait que quelque chose aux tiques et RIEN entre les tiques.
Si ce n'est toujours pas clair, vous pourrez en profiter en regardant la conférence nptelhrd sur YouTube de l'Indian Institute of Technology on Digital Circuits.
la source
Il y a des choses comme les compteurs asynchrones. En voici un: -
Il est également connu sous le nom de compteur d'ondulations, car lorsqu'une impulsion d'entrée arrive à l'entrée (modification de l'état de la 1ère bascule), ce changement d'état prend un temps limité pour se répercuter sur les bascules restantes. Pendant cette durée courte mais limitée, les sorties ABCD auront une valeur transitoire imprévisible jusqu'à ce que la bascule finale soit réglée.
Si les sorties ABCD étaient alors toutes alimentées par des bascules de type D et cadencées ensemble, quelque temps après la période de stabilisation, cette "meilleure" version d'ABCD ne "montrerait" jamais ce comportement transitoire.
Pour éviter cela, les ingénieurs utilisent parfois des circuits d'horloge synchrones. Désolé, l'entrée est de la gauche sur celui-ci et la carte Q0 à Q3 à ABC et D sur le diagramme précédent: -
C'est un peu plus complexe mais c'est plus rapide et a moins de parties que par rapport à un compteur asynchrone avec un tas de types D sur les sorties.
la source
Parce qu'il est plus facile de concevoir des systèmes synchrones (système synchrone signifie toute collection de logique combinatoire et de bascules cadencées) que les systèmes asynchrones, et les systèmes synchrones sont plus fiables. Cependant, la conception d'une machine à états asynchrone mérite d'être étudiée car elle peut calculer une sortie beaucoup plus rapidement et avec une puissance inférieure à celle d'un système synchrone.
la source