Comment le Q et le Q 'sont-ils déterminés la première fois dans la bascule JK?

Dec 01 2020

J'ai une formation en informatique et c'est la première fois que je poste dans l'électronique SE. Ceci est un schéma de circuit de la bascule JK.

Je ne comprends pas comment ça marche au début, quand le circuit est mis en marche. Dans ma compréhension, Q et Q 'n'ont pas encore de valeur, alors comment se déroule le circuit? Je lisais sur ce site Web . J'ai essayé trois autres sites Web, mais je n'ai pas trouvé d'explication.

Réponses

12 hacktastical Dec 01 2020 at 12:41

Le flop JK peut démarrer dans les deux états. Avec des portes parfaitement assorties, les chances seraient de 50 à 50 pour chaque état. Il appartient au reste du système de s'initialiser à un état connu et souhaité ou de ne pas s'en soucier. Il en va de même pour un flop D.

C'est la même chose que d'avoir une variable non initialisée dans un programme. Tant que la variable n'est pas définie, les valeurs qui en dépendent (y compris elle-même) ne sont pas connues.

La simulation matérielle de ce flop apparaîtrait comme un état «X» jusqu'à ce qu'il y ait un 0 ou 1 synchronisé. Sinon, il restera «X» si J et K valent tous les deux 0 (maintenir) ou 1 (basculer).

Dans le matériel réel (comme les logiciels), des choses inconnues peuvent se produire en fonction de la façon dont la sortie à état inconnu est utilisée.

Une variante de ce flop a des entrées directes de mise et d'effacement pour forcer un état initial avec des signaux séparés (par exemple, réinitialisation). Dans ce cas, un comportement de démarrage peut être défini.

PLUS: le schéma logique montré pour le JK est de la merde. Il s'agit en fait d'un verrou JK déclenché , et il présente un danger lorsque les entrées J et K sont à «1» et que l'horloge est haute: il devient un oscillateur en anneau en raison du problème de la «course autour».

Malheureusement, bien que l'article lié en discute, il donne une réponse farouche sur l'utilisation d'une impulsion d'horloge très étroite pour éviter le problème de la «course autour». Ceci est extrêmement trompeur. Les flops JK basés sur des circuits intégrés utilisent une paire de verrous câblés en 2 étapes ("maître-esclave" ou "déclenché par front") et n'ont pas le problème de la course autour.

Une autre plainte. Le schéma logique donné pour le 74xx73 type JK est non seulement incomplet (ne montre pas set / reset), il est faux (74xx73 utilise la conception "maître-esclave" à 2 verrous, pas le verrou fermé.) J'ai laissé une note pour le auteur de la page pour qu'ils puissent le réparer.

Cette réponse aborde en détail le problème du verrou verrouillé JK. Question SR FlipFlop

Et ici: verrou JK, erreur possible de Ben Eater?

10 JohnDoty Dec 02 2020 at 00:08

Lors de la première mise sous tension, cela ne peut pas être compris comme un circuit numérique. Pour le circuit physique réel, les entrées et les sorties peuvent être comprises entre 1 et 0, voire au - delà . Une partie de la conception des primitives logiques cache cela à la conception de niveau supérieur, mais c'est une "abstraction qui fuit". Prenons l'exemple simple suivant:

simuler ce circuit - Schéma créé à l'aide de CircuitLab

Maintenant, clairement, en tant que circuit numérique, si Out1c'est 0, Out2est 1, ou vice-versa, pour toujours. Alors, que se passe-t-il à la mise sous tension?

Imaginez que lors de la mise sous tension, les deux Out1et le Out2sont 0. Dans cet état, Not1et Not2orientera leurs sorties vers 1. Mais quelque part entre 0et 1, ils basculeront, retournant vers 0. Maintenant, le circuit n'est jamais construit dans un équilibre parfait et un bruit thermique est également présent, influençant de manière aléatoire ce processus. Ainsi, l'un des deux onduleurs commute la polarité de sortie avant l'autre et remporte la course 1. Cela conduit l'autre à zéro. Le circuit peut brièvement se débattre, ne se comportant pas comme une logique booléenne agréable, mais il s'installe rapidement dans un état logique bien défini. Avec un circuit réel, vous obtenez généralement un comportement aléatoire biaisé: un état est préféré à l'autre, mais il y a un certain caractère aléatoire.

2 ShashankVM Dec 01 2020 at 16:15

Q et Q 'n'ont pas encore de valeur, alors comment se déroule le circuit?

C'est correct. Il n'y a aucun moyen de savoir comment le circuit se déroulerait.

Pour résoudre ce problème, nous pouvons utiliser une entrée RESET ou PRESET asynchrone ou synchrone pour régler la sortie sur un état connu . Une entrée asynchrone ne dépend pas de l'horloge, mais une entrée synchrone dépend de l'horloge.

Voici un circuit de référence pour une bascule JK maître-esclave avec réinitialisation asynchrone et entrées de réglage.

Flip-Flop JK avec entrée RESET et SET asynchrone

simuler ce circuit - Schéma créé à l'aide de MultisimLive

Il s'agit du circuit d'une bascule JK avec un RESET et un PRESET asynchrones. Un HAUT sur une entrée RESET asynchrone règle Q à LOWet Q 'à HIGH, et cette opération est indépendante de l'horloge. De même, a HIGHsur une entrée PRESET asynchrone définit Q sur HIGHet Q 'sur LOW.

Travail:

Lorsque l'entrée RESET est HIGH, la sortie de la porte NOT (U11) sera LOW. La sortie de la porte NAND (U12) deviendra HIGHpuisque l'une des entrées est LOW. Cela rendra la sortie de la porte NAND (U13) Q réglée sur LOW. De même, d'autres cas peuvent être analysés, et sont laissés comme exercice au lecteur.

Remarque:

Le comportement n'est pas défini pour le cas où PRESET et RESET le sont HIGH, car il n'est pas autorisé (et n'a aucun sens).

Lectures complémentaires

La section 2 de cet article de Clifford Cummings, Don Mills et Steve Golson est particulièrement pertinente, donc je la cite ici

Pour les ASIC individuels, le but principal d'une réinitialisation est de forcer la conception ASIC dans un état connu pour la simulation. Une fois que l'ASIC est construit, la nécessité pour l'ASIC d'avoir une réinitialisation appliquée est déterminée par le système, l'application de l'ASIC et la conception de l'ASIC. Par exemple, de nombreux ASIC de communication de chemin de données sont conçus pour se synchroniser avec un flux de données d'entrée, traiter les données, puis les sortir. Si jamais la synchronisation est perdue, l'ASIC passe par une routine pour réacquérir la synchronisation. Si ce type d'ASIC est conçu correctement, de telle sorte que tous les états inutilisés pointent vers l'état «démarrer l'acquisition de la synchronisation», il peut fonctionner correctement dans un système sans jamais être réinitialisé. Une réinitialisation du système serait nécessaire à la mise sous tension pour un tel ASIC si les machines à états de l'ASIC profitaient de la réduction logique «sans souci» pendant la phase de synthèse.

Nous pensons qu'en général, chaque bascule dans un ASIC devrait être réinitialisée, qu'elle soit requise ou non par le système. Dans certains cas, lorsque des bascules en pipeline (bascules à registre à décalage) sont utilisées dans des applications à grande vitesse, la réinitialisation peut être éliminée de certaines bascules pour obtenir des conceptions plus performantes. Ce type d'environnement nécessite un nombre prédéterminé d'horloges pendant la période active de réinitialisation pour mettre l'ASIC dans un état connu.

ASIC: Circuit intégré spécifique à l'application