Ich habe Probleme mit einer Digtal Works-Simulation eines Ringzählers. (Version 3.0.5.0, Urheberrecht Mecanique)
Der Ein-Aus-Knopf löscht die Flip-Flops nicht; Das Flip-Flop links ist immer eingeschaltet.
(Ich verwende dies in einer Simulation einer CPU für die Computerorganisationsklasse, die ich unterrichte. Dies dient der grundlegenden Steuerung, ob der Computer eine Anweisung aus dem Speicher abruft, eine sofortige Operation ausführt usw.)
Ich habe in diesem Stapelüberlauf nach "Digital Works" gesucht und nichts gefunden. Natürlich habe ich im Allgemeinen viele Informationen zu diesem Thema im Internet gefunden und verwendet.
Ich habe ein kommentiertes Bild Ihres Schaltplans beigefügt:
Erstens ist es ein bisschen chaotisch. Es ist ein langer Weg, den Schaltplan "sauber aussehen" zu lassen, insbesondere weil Drahtsprünge häufig Netzlistenfehler verursachen (oder zumindest nicht die Netzliste erstellen, wie Sie es erwarten würden). Jeder Draht ist idealerweise gerade. Die Gates sind nicht zufällig platziert, sondern so angeordnet, dass sie den Signalfluss intuitiv zeigen.
Ich bin nicht vertraut mit den unteren beiden Anschlüssen des Flip-Flops. Ich nehme an, es ist irgendwie klar?
Beachten Sie trotzdem das grüne Netz. Was treibt das an? Für mich sieht es schwebend aus. Im Allgemeinen möchten Sie Netze entweder an die Versorgungsspannung oder an Masse binden. Wenn sie nur schweben, kann das Verhalten unvorhersehbar sein.
Alternativ geht das rote Netz (das mit dem ganz linken Flip-Flop verbunden ist) an jedem Flip-Flop an denselben Port wie das grüne (klar, nehme ich an). Aber es ist an den Druckknopf gebunden, während das Grün noch von nichts angetrieben wird.
Wenn Sie also möchten, dass sich der ganz linke Flip-Flop wie die anderen 3 Flip-Flops verhält, verbinden Sie ihn mit der gepunkteten orangefarbenen Linie und schneiden Sie den Draht zum ersten Flip-Flop, der aus dem roten Netz kommt (die lila gepunktete Linie steht für einen Schnitt).
In der Praxis möchten Sie jedoch sicherstellen, dass alle Eingangsnetze gebunden sind. Ich vermute, dass Sie in diesem Fall damit durchkommen, weil Sie auf der Grundlage von Verilog simulieren und das Zurücksetzen so etwas wie @rising_edge(clear) ist. Da ein schwimmendes Netz niemals „aufsteigt“, löst dies niemals aus. Aber im wirklichen Leben würde es zu sehr unvorhersehbaren Ergebnissen führen, da seine Spannung aufgrund von Rauschen und Drift schwanken könnte.
Hier ist ein Beispielschema, wie ich es bauen würde:
Benutzer39382