Bis vor ein paar Wochen hatte ich noch nie in meinem Leben einen Schaltplan gezeichnet. Ich versuche derzeit (in Logisim) eine Schaltung zu entwerfen, die wie ein Kippschalter wirkt und nur grundlegende Logikgatter und keine Uhr verwendet. Grundsätzlich möchte ich, dass der LED-Ausgang beim Drücken der SINGLE-Taste eingeschaltet und beim erneuten Drücken ausgeschaltet wird, und ich habe erfolglos mit allen Arten von SR-Latch / D-Latch / anderen Kombinationen experimentiert.
Ich versuche es jetzt, indem ich ein D-Flip-Flop von Grund auf neu mache, wobei der Knopf als "Takt" dient und der endgültige Q'-Ausgang direkt als D-Eingang im ersten Latch zurückläuft, wie in der Abbildung gezeigt ::
Ich habe mir dieses Flip-Flop sehr genau angesehen und dachte, ich hätte den Master und den 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?
Antworten:
Ich habe Ihre Schaltung in Logisim dupliziert (als Gelegenheit, etwas in Logisim zu tun). Es ist nichts falsch mit Ihrer Schaltung. Es gibt etwas an Logisim, das ich nicht verstehe.
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 ein paar Mal die Schaltung unterbrochen und die Leitungen hoch oder niedrig gebunden, und schließlich wurden alle Fehler "ausgespült", und das erneute Anschließen der Schaltung führte normalerweise zu dem Umschalten, für das sie entwickelt wurde.
Brechen Sie insbesondere den Draht ganz oben links, der Q 'mit D verbindet, und 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 hoch und niedrig durch Grün und Dunkelgrün (?) Dargestellt werden.
Durch Drücken von "Simulation zurücksetzen" werden alle Fehler zurückgebracht. Ich vermute, dass es irgendwo in der Logik des Programms einen "undefinierten Zustand" hat. Diese undefinierten Zustände breiten sich so weit durch die Tore aus, dass sie sich nicht wie echte Elektronik "selbst aussortieren". 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 feststellen, dass Logisim 2.7.1 ist
Update: Ich habe das Problem "behoben" (jedenfalls im Rahmen dieses Simulators), indem ich ein NOR-Gatter in den Rückkopplungspfad eingefügt habe. Verbinden Sie dann einen Druckknopf mit dem anderen Eingang. Ich habe die Originaltaste durch ein Taktsignal ersetzt (unter "Verkabelung"). Durch Drücken der Taste wird nun der Fehler behoben. (Das Zurücksetzen der Logik bringt den Fehler zurück).
quelle
Basierend auf der Antwort von gbarry klingt es so, als ob LogicSim eine pessimistische "Weiß nicht" -Logikbewertung verwendet, was bedeutet, dass die Drähte nur dann 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 erkennen kann, dass sie definitiv hoch sein sollten. Eine solche pessimistische Logikbewertung schließt häufig die Simulation von Geräten aus, die in der realen Welt wahrscheinlich zufriedenstellend funktionieren würden, stellt jedoch 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, so dass der obere rote Draht entweder hoch oder niedrig wäre, aber sein tatsächlicher Pegel wäre willkürlich. Durch Drücken der Taste sollte das obere Kabel den Zustand annehmen, der dem vor dem Drücken entgegengesetzt ist. Da dieser Anfangszustand jedoch nicht vorhersehbar als hoch oder niedrig definiert werden kann, kann der Zustand nach dem Drücken auch nicht als hoch oder niedrig definiert werden.
In einigen Fällen kann es nützlicher sein, einen Simulator in einem bestimmten Zustand willkürlich einschalten zu lassen, als einfach einen ungelösten unbestimmten Zustand anzuzeigen. Eine große Gefahr bei Simulatoren, die dies tun, besteht jedoch darin, dass sie glauben machen, dass eine Schaltung im wirklichen Leben funktioniert, obwohl dies tatsächlich 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 Einschränkungen sehr sorgfältig untersucht.
quelle
Ich sortiere dieses Problem versehentlich.
Sie müssen nur Ihre
And
Tore durchIC 74LS08
zusammen mit ersetzenNOT
. Die Taktfrequenz ist0.5
und wird zuerst eingegebenj=0
undk=0
nach einigen Sekunden beginnt Ihr Flip-Flop zu arbeiten.quelle