Pourquoi horloge-t-on les tongs?


19

J'essaie de comprendre les tongs et les verrous. Je lis du livre Digital Logic de Morris Mano. Une chose que je ne peux pas comprendre, c'est pourquoi nous faisons des tongs?

Je comprends pourquoi nous avons besoin de verrous «activés» ou fermés. Mais à quoi sert l'horloge? Je ne peux pas comprendre cela. Pourquoi ne pouvons-nous pas simplement activer les tongs requises et leur donner une entrée? Lorsque nous changeons d'entrée, la sortie change. Pourquoi devons-nous changer la sortie avec un front d'horloge montant ou descendant (en cas de bascule déclenchée par front)?

Toute aide à ce sujet est appréciée.

Réponses:


18

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.


Cela a du sens lorsque vous expliquez la nécessité de synchroniser le compteur ou la machine d'état. S'il n'y a pas d'horloge du tout, alors le compteur ne fait que changer sa valeur (et réinitialiser) et démarrer à l'infini? et même avec la machine d'état. (D'après ce que j'ai lu sur wiki, il ne s'agit que d'un type de machines à états, car les états sont en train d'être modifiés). Mais même avec des registres, nous utilisons également l'horloge, dans ce cas, pourquoi? Je veux également savoir s'il existe des bascules (pouvant être) utilisées dans une application sans horloge?
avi

Arrivant maintenant au point de stabilité, si les sorties continuent de changer, les autres appareils qui ont besoin d'une sortie flipflops ne pourront pas la recevoir correctement et il pourrait y avoir un comportement erratique. Est-ce donc un problème de stabilité? J'essaie maintenant de comprendre le concept de stabilité. Surtout ces deux paras que vous avez expliqué: "pour empêcher l'état de la bascule de changer jusqu'à ce que la sortie (et donc l'entrée) soit stable." "Parfois, un circuit a de nombreuses entrées, qui ne se stabilisent pas en même temps"
avi

7

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.


2

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.


"En utilisant l'horloge, nous nous assurons que les différentes parties du circuit fonctionnent en harmonie en même temps." - Comment faisons-nous cela? Je vais regarder les vidéos.
avi

Veuillez noter que les bascules sont des dispositifs qui modifient leur sortie pour refléter l'entrée au front montant (ou au front descendant s'il s'agit d'une bascule déclenchée par front négatif) d'un signal de commande pour une bascule déclenchée par front positif. Ce signal de contrôle est appelé horloge en raison de sa nature périodique, plus comme le tic-tac de nos horloges murales. Si le signal d'horloge est présent, la bascule fera quelque chose, sinon l'entrée ne fera rien arriver à la sortie. Veuillez également connaître la différence et la similitude entre les loquets et les tongs à un stade précoce afin de ne pas être confondu.
quantum231

1

Il y a des choses comme les compteurs asynchrones. En voici un: - entrez la description de l'image ici

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: -

entrez la description de l'image ici

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.


Eh bien, avec des compteurs, cela a du sens. Mais y a-t-il une application où les tongs sont utilisées sans horloge? ou les tongs ne peuvent jamais être utilisées sans horloges?
avi

@avi Le premier exemple (compteur asynchrone) ne doit pas être considéré comme prenant son entrée d'une "horloge". Il peut s'agir d'impulsions provenant d'un capteur magnétique cherchant à voir à quelle vitesse un arbre tourne. Il y aurait une horloge "principale" sur le système qui "déclenche" le décompte toutes les secondes, mais le "signal" entrant dans le compteur n'est pas nécessairement une horloge. La sortie d'un comparateur analogique pourrait "synchroniser" un "1" à la sortie d'un type D et la sortie d'un autre comparateur analogique peut réinitialiser le type D - cela peut être utilisé pour produire un signal dérivé d'une forme d'onde analogique - pas d'horloge en tant que tel
Andy aka

Je considérerais le comportement d'un compteur d'ondulations comme étant quantitativement plutôt que qualitativement différent de celui du compteur synchrone. Les sorties des deux compteurs deviendront invalides un certain temps après l'arrivée d'une impulsion d'horloge et redeviendront valides un certain temps après cela. Le compteur synchrone aura une fenêtre plus petite pendant laquelle ses sorties ne seront pas valides, mais la fenêtre sera dans tous les cas non nulle. Il convient également de noter que la vitesse de comptage maximale avec le compteur tel que dessiné sera limitée par la longueur du compteur. On pourrait éviter cette limitation ...
supercat

... en faisant démarrer la chaîne de report, par exemple au quatrième bit, en générant le "et" des trois premiers bits, puis en ne retournant chaque bit que si l'entrée de la chaîne de portage était élevée, le bit 2 était élevé, le bit 1 était élevé et le bit 0 était élevé. Même si sept impulsions de comptage arrivaient dans le temps requis pour qu'un signal se propage à travers la chaîne de report, cela ne poserait aucun problème puisque la chaîne de report commencerait à propager le report lorsque le comptage xxx111 ... 111000 était atteint mais sa sortie n'aurait pas d'importance avant l'impulsion d'horloge après xxx111 ... 111111 a été atteinte.
supercat

Ces compteurs d'ondulations sont simples mais détestés dans le monde réel des circuits numériques dans lesquels je travaille. Il est bon de savoir qu'ils existent, mais il est très peu probable que vous soyez autorisé à les utiliser pour de vrais projets. Il peut toujours être utilisé dans des exercices triviaux où leur nature "asynchrone" n'est pas un problème.
quantum231

0

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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.