Je ne peux pas comprendre comment fonctionne le verrou SR. Apparemment, vous branchez une ligne d'entrée de R, et une autre de S, et vous êtes censé obtenir des résultats dans Q et Q '.
Cependant, les deux R et S nécessitent une entrée de la sortie de l'autre, et la sortie de l'autre nécessite une entrée de la sortie de l'autre. Qu'est-ce qui vient en premier le poulet ou l'œuf ??
Lorsque vous branchez ce circuit pour la première fois, comment démarre-t-il?
digital-logic
flipflop
CodyBugstein
la source
la source
Réponses:
Une question perspicace. En fait, si vous construisez ce verrou dans un programme de simulation, il vous montrera en effet qu'il ne peut pas prédire dans quel état il commencera:
Mais si vous réglez l'une des entrées à l'état haut (ce sont des boutons-poussoirs à gauche), le signal se propage à travers (rappelez-vous, 1 OU [n'importe quoi] est égal à 1) et le circuit verrouille cet état:
Ce sont des portes NOR, donc la sortie inversée devient faible lorsque l'une ou l'autre entrée est élevée. Le programme que j'ai utilisé est Logisim. Il est petit et je le recommande pour débuter. Les compilateurs logiques (FPGA et tout le reste) adorent se plaindre des états non initialisés. Ce fut un excellent premier exemple.
Maintenant, je sais que dans la vraie vie, le circuit se verrouillera aléatoirement dans l'un ou l'autre état. Beaucoup d'autres l'ont souligné. Mais parfois, il est important que cela démarre de manière fiable dans un état ou un autre, et c'est à cela que servent tous les avertissements.
la source
Une bascule est implémentée comme un multivibrateur bi-stable; par conséquent, Q et Q 'sont garantis comme étant inverses l'un de l'autre pour toutes les entrées sauf S = 1, R = 1, ce qui n'est pas autorisé. La table d'excitation de la bascule SR est utile pour comprendre ce qui se produit lorsque des signaux sont appliqués aux entrées.
Les sorties Q et Q 'changeront rapidement d'état et s'arrêteront à un état stable après que des signaux ont été appliqués à S et R.
Si nous examinons la mise en œuvre la plus simple d'une bascule SR (voir http://en.wikipedia.org/wiki/File:Transistor_Bistable_interactive_animated_EN.svg ), nous découvrons qu'elle est composée de deux transistors à jonction bipolaire (BJT) et de quatre résistances (remplacer les interrupteurs à bascule SPST à la terre par des interrupteurs SPDT qui peuvent commuter les lignes de réglage et de réinitialisation entre le potentiel de terre et V +). Les BJT sont configurés comme des onduleurs à émetteur communs. Le collecteur (sortie) de chaque transistor est réinjecté dans la base (entrée) du transistor opposé. L'entrée S est câblée avec la sortie du BJT dont la connexion du collecteur sert de sortie Q (la jonction de R1 / R3). L'entrée R est câblée avec la sortie le BJT dont la connexion collecteur sert de sortie Q '(la jonction de R2 / R4).
Lorsque le circuit est mis sous tension pour la première fois, aucun des transistors n'est polarisé en direct dans la région de saturation pendant une infime fraction de seconde, ce qui signifie que Q et Q 'sont au niveau logique 1. La tension disponible sur chaque collecteur est envoyée à la base du transistor opposé, ce qui le rend polarisé en direct dans la région de saturation. Le transistor qui est polarisé en direct en premier commencera à conduire le courant en premier, ce qui, à son tour, provoquera une chute de tension à travers sa résistance de collecteur, plaçant sa sortie au niveau logique 0. Cette chute de tension du collecteur empêchera le transistor opposé de devenir biaisé vers l'avant; par conséquent, définir l'état initial de la bascule. Il s'agit essentiellement d'une condition de concurrence matérielle qui conduit à un résultat imprévisible.
la source
Comme vous l'avez dit, ce n'est pas défini. Dans la pratique, il existe des transitoires ou des caprices qui devraient mettre le verrou dans un certain état, mais il n'y a aucune garantie dans quel état il se trouvera. Cela est dû à une incompatibilité entre les deux portes qui définira un état initial donné (fondamentalement, le circuit ne ne se comportent pas comme un véritable verrou SR numérique mais sont un circuit analogique complexe comme dans la vie réelle). La sortie initiale sera plus ou moins aléatoire, soit
Q=1 and ~Q=0
ouQ=0 and ~Q=1
.Sauf mention explicite dans une fiche technique, je ne m'appuierais pas sur un état choisi plutôt que sur l'autre car l'état initial réel peut changer entre les différentes parties du lot, le placement sur une carte, les facteurs environnementaux (température / humidité / etc.) et le vieillissement (en aucun cas une liste complète des facteurs).
La meilleure façon de définir un état est, après le démarrage, d'affirmer l'ensemble ou de réinitialiser pour mettre le verrou SR dans un état connu.
En remarque, en général, les verrous SR affirmant S et R en même temps entraîneront également un comportement indéfini et vous comptez sur un vaudou similaire pour définir les sorties (une véritable implémentation peut désactiver les deux sorties, basculer au hasard entre les deux, activer / désactiver les deux sorties, etc.). Comme l'a expliqué Supercat si une broche n'est pas affirmée avant l'autre, le verrou SR peut entrer dans un état connu car une seule broche est affirmée. D'autres types de bascules / bascules peuvent définir un comportement différent, par exemple les bascules JK définissent l'affirmation des deux broches pour basculer les sorties (Q = ~ Qprev, ~ Q = Qprev).
la source
Gardez à l'esprit que les portes s'inversent. Cela fournit une boucle de rétroaction positive. En supposant que S et R sont à zéro et qu'une sortie est une, celle-ci sera réinjectée dans l'autre porte pour forcer l'autre sortie à zéro. De cette façon, les portes sont dans l'un des deux états stables.
Dès que vous définissez l'un de S ou R sur un, cela forcera la porte correspondante à sortir zéro qui, à son tour, forcera l'autre porte à sortir zéro. Encore une fois, stable.
Par exemple, état initial: S = 0, R = 0, Q = 0, Q # = 1. Vous définissez maintenant S = 1. Cela changera la sortie de la porte inférieure (Q #) à 0. Ce 0 alimente la partie supérieure porte, forçant cette sortie (Q) à 1. Ce 1 renvoie à la porte inférieure. Lorsque vous remettez S à 0, la porte inférieure reçoit toujours le 1 de l'autre porte. Cela maintiendra la sortie Q # à 0.
Si Q est déjà 1 et que vous réglez S sur 1, les deux entrées de la porte inférieure sont égales à 1 et il n'y a donc pas de changement.
la source
Je pense que le point important dont vous parlez concerne le fait que le verrou se met sous tension dans un état inconnu, alors comment pouvons-nous le mettre dans un état connu. Vous devez vous rappeler que si l'une des entrées d'une porte NOR est un 1, la sortie doit être un 0, quel que soit l'état de l'autre entrée. Ainsi, l'application des combinaisons d'entrée SET ou RESET forcera toujours le verrou dans l'état défini ou réinitialisé, quel que soit l'état précédent du verrou.
la source