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.

Anzahl der zu verfügung gestellten Variablen:
(=Startbedingung der Variable =fügt Zeitereignis hinzu)
Abstand der 0-1 Taktflanke:(Flipflops sind vorderflankengesteuert)

Eingabebeispiel

and⇒Name des Bauteils
-a0,a1⇒Eingänge des Bauteils
+5⇒ 5 Zeitschritte Verzögerung
=c⇒Variable am Ausgang
erlaubte Bauteile: 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.

ZeichenBefehlErklärung
-Eingängehinter dem Zeichen folgen die Eingänge des Bauteils. Mit einem , getrennt lassen sich auch mehrere Eingänge in einer Zeile eingeben.
+Delaydirekt hinter dem + steht die Verzögerungszeit des Gatters. Bei mehreren Angaben zählt die letzte.
[zeitliches Verhaltenbei 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. s1Startwerte Startwerte von Flipflops oder Ausgängen zum Zeitpunkt 0 und davor. Wird bei normalen Gattern ignoriert.
Das Bauteil wird mit =abgeschlossen. Hinter dem = wird die Variable angegeben, die am Ausgang des Bauteils liegen soll.

Die Spalten sind nur zur besseren Übersicht und werden am Schluss als eine Spalte interpretiert. Eine generierte Schaltung kann dann im Grafikmodus geändert werden.

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