Bis vor ein paar Wochen hatte ich noch nie in meinem Leben einen Schaltplan gezeichnet, also ertrage es mit mir. Ich versuche derzeit (in Logisim) eine Schaltung zu entwerfen, die wie ein Kippschalter funktioniert und nur einfache Logikgatter und keine Uhr verwendet. Grundsätzlich möchte ich, dass sich der LED-Ausgang einschaltet, wenn die SINGLE-Taste gedrückt wird, und aus, wenn sie erneut gedrückt wird, und ich habe mit allen möglichen SR-Latch/D-Latch/anderen Kombinationen vergeblich experimentiert.
Ich versuche es jetzt, indem ich ein D-Flip-Flop von Grund auf neu mache, wobei die Taste als "Uhr" dient und der letzte Q'-Ausgang direkt als D-Eingang im ersten Latch zurückgeschleift wird, wie im Bild gezeigt :
Ich habe mir dieses Flip-Flop sehr genau angesehen und dachte, ich hätte Master und Slave richtig ausgerichtet, mit den Wechselrichtern an den richtigen Stellen usw., aber laut Logisim ist es nicht korrekt und funktioniert nicht . Was fehlt mir hier?
Ich habe Ihre Schaltung in Logisim dupliziert (als Gelegenheit, etwas in Logisim zu tun). An deiner Schaltung ist nichts auszusetzen. Irgendwas an Logisim verstehe ich nicht.
Zunächst einmal sind die roten Linien keine Linien in einem hohen Zustand; sie sind Fehler. Man würde diese Art von Fehler erwarten, wenn zwei Ausgänge miteinander verbunden wären. Ich habe eine Reihe von Unterbrechungen des Stromkreises durchgeführt und Leitungen hoch oder niedrig gebunden, und schließlich wurden alle Fehler "ausgespült", und das Wiederanschließen des Stromkreises erzeugte normalerweise das Umschalten, für das es vorgesehen war.
Unterbrechen Sie insbesondere den Draht ganz links, der Q 'mit D verbindet, verbinden Sie dann D mit einer hohen oder niedrigen Quelle ("Pull-Widerstand" funktioniert hier gut) und schalten Sie ihn um, bis alles grün ist. Schließen Sie dann das Feedback wieder an, und alles wird funktionieren. Beachten Sie, dass High und Low durch Grün und Dunkelgrün (?) dargestellt werden.
Durch Drücken von „Simulation zurücksetzen“ werden alle Fehler wiederhergestellt. Meine Vermutung ist, dass es irgendwo in der Logik des Programms einen "undefinierten Zustand" hat. Diese undefinierten Zustände breiten sich in dem Maße durch die Tore aus, dass sie sich nicht so "aussortieren", wie es echte Elektronik tut. Undef AND 0 sollte 0 ergeben, nicht Undef. Gleiches gilt für 1 ODER Undef.
Nur für den Fall, dass dies in einer späteren Version behoben wurde, werde ich darauf hinweisen, dass Logisim 2.7.1 ist
Update: Ich habe das Problem (jedenfalls im Rahmen dieses Simulators) "behoben", indem ich ein NOR-Gatter in den Rückkopplungspfad eingefügt habe. Schließen Sie dann einen Taster an den anderen Eingang an. Ich habe den ursprünglichen Taster durch ein Taktsignal ersetzt (zu finden unter "Verkabelung"). Jetzt wird der Fehler durch Drücken der Taste gelöscht. (Das Zurücksetzen der Logik bringt den Fehler zurück).
Basierend auf der Antwort von gbarry klingt es so, als ob LogicSim eine pessimistische "Weiß nicht"-Logikbewertung verwendet, was bedeutet, dass Drähte nur niedrig sind, wenn der Simulator erkennen kann, dass sie angesichts der bisher empfangenen Stimuli definitiv niedrig sein sollten; ebenso sind sie nur dann hoch, wenn der Simulator sagen kann, dass sie definitiv hoch sein sollten. Eine solche pessimistische Logikbewertung schließt oft die Simulation von Geräten aus, die wahrscheinlich in der realen Welt zufriedenstellend funktionieren würden, aber sie stellt tendenziell sicher, dass sich Geräte in der Simulation nur dann wie gewünscht verhalten, wenn sie tatsächlich in der realen Welt funktionieren würden.
Wenn die Schaltung mit realer Logik implementiert würde, würde sich die Schaltung wahrscheinlich stabilisieren, sodass der obere rote Draht entweder hoch oder niedrig ist, aber sein tatsächlicher Pegel wäre willkürlich. Das Drücken des Knopfes sollte bewirken, dass der obere Draht den Zustand annimmt, der dem vor dem Drücken entgegengesetzt ist, aber da dieser Anfangszustand nicht vorhersagbar als hoch oder niedrig definiert werden kann, kann dies auch nicht der Zustand nach dem Drücken sein.
In einigen Fällen kann es nützlicher sein, einen Simulator willkürlich in einem bestimmten Zustand hochfahren zu lassen, als ihn einfach einen ungelösten unbestimmten Zustand anzeigen zu lassen. Eine große Gefahr bei Simulatoren, die dies tun, besteht jedoch darin, dass sie glauben machen können, dass eine Schaltung im wirklichen Leben funktionieren wird, obwohl dies in Wirklichkeit nicht der Fall ist. Wenn dagegen eine pessimistische Simulation anzeigt, dass unbestimmte Zustände aufgelöst werden, werden sie dies mit ziemlicher Sicherheit in der realen Welt tun; Wenn dies nicht der Fall ist, können solche Zustände in der realen Welt gelöst werden oder auch nicht, aber man sollte sich nicht auf ein solches Verhalten verlassen, es sei denn, man hat die zeitlichen Beschränkungen sehr sorgfältig untersucht.
Ich sortiere dieses Problem versehentlich.
Sie müssen nur Ihre And
Gates durch IC 74LS08
zusammen mit ersetzen NOT
. Die Frequenz der Uhr ist 0.5
und geben Sie zuerst ein j=0
und k=0
nach einigen Sekunden beginnt Ihr Flip-Flop zu arbeiten.
Platzhalter
Wouter van Ooijen
Platzhalter