Logik-Zeit-Simulator
Dieser Logiksimulator kann eine zeitliche Simulation einer Logikschaltung durchführen.
Dabei arbeitet der Simulator nicht in Echtzeit, sondern mit vordefinierten, zeitabhängigen Ereignissen.
Eine genauere Beschreibung befindet sich unter dem Programm.
(=Startbedingung der Variable =fügt Zeitereignis hinzu)
Eingabebeispiel
and | ⇒Name des Bauteils |
-a0,a1 | ⇒Eingänge des Bauteils |
+5 | ⇒ 5 Zeitschritte Verzögerung |
=c | ⇒Variable am Ausgang |
and, or, not, nand, nor, xor, flipflop, 1mux, 2mux, ausgang
Die Spalten sind gleichberechtigt, dienen nur der besseren Übersicht (weniger scrollen)
Anzahl der Zeitschritte:
Simulation
Ergebnisse Pert-Algorythmus
Hilfe zu dem Programm
Variablen
Das Programm stellt maximal zehn Variablen zur Verfügung, deren Zeitverlauf man vorher einstellen kann.
Dazu gibt man in das Eingabefeld den Zeitschritt ein, bei dem die Variable ihren Zustand ändern soll und klickt auf +.
Um alle Änderungen einer Variable zu löschen, klickt man auf löschen hinter der Variablen.
Zwischen welchen Intervallen die Variable welchen Zustand hat, wird durch ein _ (logisch 0) oder ¯ (logisch 1) angezeigt.
(Verändert man die Anzahl, werden alle Zeitereignisse gelöscht!)
Startbedingungen der Variablen
Jeder Variable, die das Programm zur Verfügung stellt und jedem Flipflop kann ein Startwert gegeben werden, der vor dem Zeitpunkt 0 gilt. Dazu dienen die . Ist das Feld gesetzt, bedeutet es eine logische 1, ansonsten eine logische 0.
Takt
Das Programm arbeitet nicht mit einem kompletten Takt, sondern nur mit der Vorderflanke. Da nur diese für das Flipflop von Bedeutung ist, ist das restliche Aussehen des Takt-Signals irrelevant. Eingegeben wird also die Anzahl der Zeitschritte bis zur nächsten Vorderflanke.
Bauteile
Um ein Bauteil der Schaltung hinzuzufügen, klickt man auf den Button Bauteil hinzufügen Nun kann man das Bauteil auf der weißen Fläche verschieben und oben den Typ und die Verzögerung eintragen. Auf der linken Seite befinden sich die Eingäge, auf der rechten Seite die Ausgänge. Mit dem + lassen sich Eingänge hinzufügen. besondere Fälle:
- D-Flipflop: Als Eingang zählt nur der erste belegte Eingang. Den Takt bezieht der Flipflop automatisch von dem System. (Taktflanke nicht vergessen!)
- not: Als Eingang zählt nur der erste belegte Eingang
- 1-Mux (Multiplexor): Der erste Eingang ist der Steuereingang, dann kommen 0 und 1 Eingänge
- 2-Mux Die ersten beiden Eingänge sind Steuereingänge und schalten die anderen Eingänge nach folgendem Muster: 00,01,10,11
In die Eingabefelder lassen sich Variablennamen eintragen. ie Variablennamen werden später in der Simulation angezeigt und sollten nicht läger als zwei Buchstaben sein. Das Programm erkennt dann Felder mit gleichen Variablennamen und erstellt entsprechende Verbindungen.
Schaltpan erstellen
Dieser Schritt ist für die Simulation zwingend notwendig. Dabei werden die Eingabemasken der Bauteile in
interne Objekte übersetzt und diese dann grafisch angezeigt. Diese Anzeige ist nur eine Orientierung und entspricht
keinem ordentlichen Schaltplan.
Möchte man den Schaltplan ändern, so kann man einfach auf Schaltplan ändern klicken
und die Eingabemasken erscheinen wieder. Nach der Änderung unbedingt wieder Schaltplan erstellen anklicken.
Bauteile automatisch anordnen
Dabei werden die Bauteile nach ihren Stufen (Abhängigkeiten) sortiert und automatisch angeordnet. simulierte Ausgänge sind ganz links, Flipflops ganz rechts.
Simulation
Die Simulation arbeitet mit diskreten Zeitschritten. Dabei ist es gerade in Zusammenhang mit Flipflops wichtig, dass
es eine Zeitverzögerung gibt, da sonst die Simulation in einer Endlos-Schleife landet.
Alle 5 Zeitschritte zeigt die Simulation eine dünne, graue Linie.
Ein Zeitschritt ist 10 Pixel breit.
Texteingabe
Meine Erfahrungen haben gezeigt, dass es per „Drag&Drop” ziemlich umständlich ist eine Schaltung in
den Simulator zu übertragen. Deshalb habe ich mich um eine intuitive Texteingabe bemüht.
Jeder Befehl steht dabei in einer neuen Zeile, Leerzeilen werden ignoriert.
Ein neues Bauteil wird mit dem Namen des Typs eingeleitet.
Dann folgen die Spezifikationen. Jede Spezifikation wird mit einem Zeichen am Zeilenanfang eingeleitet.
Zeichen | Befehl | Erklärung |
- | Eingänge | hinter dem Zeichen folgen die Eingänge des Bauteils. Mit einem , getrennt lassen sich auch mehrere Eingänge in einer Zeile eingeben. |
+ | Delay | direkt hinter dem + steht die Verzögerungszeit des Gatters. Bei mehreren Angaben zählt die letzte. |
[ | zeitliches Verhalten | bei Ausgängen kann so angegeben werden, wie sie sich verändern. Die Zeitangaben werden durch Komma (,) getrennt und bei jeder Zeitangabe wird der Ausgang umgeschalten. Am Schluss der Angaben muss die schließende Klammer ] stehen. |
s0 bzw. s1 | Startwerte | Startwerte von Flipflops oder Ausgängen zum Zeitpunkt 0 und davor. Wird bei normalen Gattern ignoriert. |
Eingabebeispiel für einen selbstbgebauten Multiplexor: (man erkennt einen Hazard in der Simulation)
ausgang s1 =f0 ausgang s1 =f1 ausgang s1 [3,8] =x not +2 -x =x1 and +2 -x1,f0 =y and +2 -x,f1 =z or +2 -y,z =f