JavaFSM als Applikation
Auswahl
zwischen Mealy- und Moore-Schaltwerken
Speichern
und Laden von entworfenen Automaten
Laden von
Beispielautomaten
Festlegen des
Automaten-Namen
Festlegen der
Ein-/ und Ausgänge
Entwurf
des zugrundeliegenden Automaten mit Hilfe des Editors
Zwischen
Editier- und Simulationsmodus hin- und herschalten
Definition
der logischen Übergangsbedingungen und Ausgabefunktionen
Überprüfung
des Automaten auf Korrektheit
Simulation
durch Verändern der Eingangswerte und Taktgebung
Ausgabe
des Simulationsergebnisses im Impulsdiagramm
Export des
Automaten im VHDL/ KISS-Format
Zum Ausführen von JavaFSM benötigen Sie das JDK von Sun.
Laden Sie sich die Datei JavaFSM.zip
herunter und entpacken Sie diese. Sie enthält neben dem Programm
JavaFSM auch einige Beispielautomaten, sowie Dokumentation.
Wechseln Sie in das Verzeichnis JavaFSM und starten Sie den
Interpreter wie folgt:
"java -classpath PFAD
DE.uni_hamburg.informatik.tech.JavaFSM.JavaFSM", wobei
der Pfad auf das Verzeichnis JavaFSM zeigen muß.
Sie können unter Windows 95 / NT auch die mitgelieferte Batch-Datei "JavaFSM.bat" anpassen. Sofern sich das Verzeichnis JavaFSM nicht direkt auf dem Laufwerk C: befindet,mssen Sie hier den Pfad angeben. Außerdem muß der Pfad auf das JDK gesetzt sein
Beim Starten des JavaFSM erscheint ein Dialogfenster zur
Auswahl des Schaltwerk-Typs. Bei
Moore-Schaltwerken hängen die Ausgabewerte nur von der
Berechnung des Automaten ab. Bei Mealy hingegen werden die
Eingabewerte mit in das Lambda-Schaltnetz geführt, sodaß die
Ausgabewerte auch direkt von den Eingabewerten abhängen können
und sich somit auch zwischen den Takten ändern können.
Über den Menüpunkt "Automat-Moore" bzw
"Automat-Mealy" kann der Schaltwerktyp geändert
werden. Dies ist jedoch nur im Editiermodus möglich, da der
Automat während der Simulation nicht verändert werden darf.
Beim Wechsel vom Mealy-Schaltwerk zum Moore-Schaltwerk gehen
dabei komplexe Ausgabefunktionen verloren und werden durch
"0" ersetzt.
JavaFSM bietet die Möglichkeit, selbst entworfene Automaten zu speichern und wieder zu laden.
In der Applikation läßt sich dabei über die Menüpunkte Laden und Speichern ein Dateiname auswählen. Zur einheitlichen Kennzeichnung sollten diese die Endung ".fsm" tragen. Hierbei ist zu beachten, daß der CLASSPATH gesetzt sein muß! Applets sind aus Sicherheitsgründen jegliche Zugriffe auf den Client-Rechner verboten und es ist daher nicht möglich, Daten direkt beim Anwender zu speichern.
Bei Auswahl des Menüs "Datei-Laden" / "Datei-Speichern" im Applet öffnet sich ein Dialogfenster. Dateien erhalten einen Namen unter dem sie gespeichert werden und ein Paßwort, das ein versehentliches Überspeichern verhindern soll und Daten vor anderen Anwendern schützt. Dabei ist zu beachten, daß auf dem Server alle Automaten im gleichen Verzeichnis abgelegt werden. Daher sollte ein Automat einen eindeutigen Namen erhalten (username_automatenname). Nach Eingabe des Filenamens und des Paßwortes und Bestätigung werden die Daten zum Server übertragen. Eventuell auftretende Fehler werden in der Statuszeile ausgegeben. Wurde der Automat ordnungsgemäß geladen / gespeichert, schließt sich das Dialogfenster. Wird beim Speichern ein bereits vorhandener Filename gewählt, muß das zugehörige Paßwort angegeben werden. Sonst erscheint die Fehlermeldung "Dateiname vergeben / Paßwortfehler". Wählen Sie dann bitte einen anderen Filenamen.
Ein Java Applet darf aus Sicherheitsgründen eine Netzwerkverbindung nur zu dem Server herstellen, von dem es geladen wurde. Liegt zwischen dieser Verbindung ein Proxy-Server (Firewall), können leider keine Automaten geladen bzw. gespeichert werden, da der Proxy selbst nicht kontaktiert werden kann! Wer dennoch mit JavaFSM arbeiten möchte, kann es sich downloaden und als Applikation starten.
Unter dem Menüpunkt "Datei-Beispiele" befinden sich einige Beispielautomaten, die bei Auswahl vom Webserver geladen werden. Sollten beim Laden irgendwelche Fehler auftreten, werden diese in der Statuszeile ausgegeben. Diese Auswahl ist in der Applikation nicht möglich. Hier können die Beispiele direkt aus dem Unterverzeichnis Beipiele geladen werden.
Über das Menü Automat - Automaten-Name läßt sich ein Name für den Automaten festlegen. Dieser erscheint dann in den Titelleisten der Fenster.
Über die Buttons bzw. das Menü Signal können die Eingänge
und Ausgänge eingegeben, geändert bzw. gelöscht werden.
Neu: Es öffnet sich ein Dialogfenster, indem man den
Namen des Inputs / Outputs und bei Inputs den Initialwert
festlegen können. Ein Name darf Buchstaben, Ziffern und die
Zeichen "/" und "_" enthalten, wobei das
erste Zeichen keine Ziffer sein darf.
Ändern: Nach der Auswahl des Ändern-Buttons oder der
Menüs Ändern klickt man den zu ändernden Input / Output an. Es
erscheint das Dialogfenster, indem man die Änderungen vornehmen
können.
Löschen: Nach der Auswahl des Löschen-Buttons oder der
Menüs Löschen klickt man den zu löschenden Input / Output an.
Dieser wird dann gelöscht.
Über das Menu Automat-Editor gelangt man in den Automaten-Editor. Der linken Bereich enthält die Buttons und darunter das Eingabefeld. Rechts befindet sich die Zeichenfläche.
Der Editor arbeitet Modus-orientiert. Die Buttons haben dabei
folgende Bedeutung:
Zustände: Durch Anklicken des Buttons "Zustand"
gelangt man in den Modus zum Einfügen der Zustände. Es können
nun beliebig viele Zustände durch Klicken in die rechte
Zeichenfläche eingegeben werden.
Transitionen: Durch Anklicken des Buttons
"Transition" gelangt man in den Modus zum Einfügen der
Transitionen. Zum Eingeben einer Transition werden die beiden zu
verbindenden Zustände nacheinander ausgewählt. Beim Anklicken
des ersten Zustandes färbt sich dieser rot. Danach wird der
Folgezustand angeklickt. Die Transition wird eingefügt. Der
Folgezustand bleibt zunächst ausgewählt (rot), so daß er schon
der Ausgangszustand für die nächste Transition ist. Durch
Klicken ins "Leere" wird er wieder deselektiert und ein
anderer Ausgangszustand kann angeklickt werden.
Löschen: Durch Anklicken des Buttons "Löschen"
gelangt man in den Löschmodus. Alles, was im Löschmodus
angeklickt wird, wird gelöscht. Bei Zuständen werden auch die
zugehörigen Transitionen gelöscht.
Startzustand: In diesem Modus kann man durch Anklicken den
Startzustand festlegen. Es muß in jedem Automaten ein
Startzustand festgelegt werden.
Bewegen: Im Bewegen-Modus können Zustände und Kommentare
verschoben werden. Bei Zuständen verschieben sich die
Transitionen dabei mit. Außerdem können Transitionen und
Zustände ausgewählt werden, um im Eigenschaftsfeld die
Übergangsbedingungen, die Ausgabefunktionen, sowie die Namen der
Zustände festzulegen. Für einen Kommentar kann im
Eigenschaftsfeld der Text festgelegt werden.
Kommentar: Hier lassen sich auf der Zeichenfläche Kommentare einfügen. Diese sind umrandet und dürfen mehrere Zeilen umfassen. Durch Anklicken des "Übernehmen"-Buttons wird der Text in den Kommentar übernommen.
Beim Anklicken einer Transition (im Bewegen-Modus) erscheint unter den Buttons ein Textfeld, das die logische Übergangsfunktion enthält. Dabei gilt folgende Syntax:
& : logisches AND
| : logisches OR
! : logisches NOT
Bei von einem Zustand ausgehenden Transitionen kann eine der Übergangsfunktion auch nur den "*" enthalten. Der "*" steht für alle anderen Belegungen, d.h. diese Transition ist aktiviert, wenn keine andere von diesem Zustand ausgehende Transition aktiviert ist.
Durch Anklicken von "FSM testen" (im Editor) wird der aktuelle Automat auf Korrektheit überprüft. Eventuelle Fehler werden in einem Fenster ausgegeben. Bei komplexeren Automaten kann dies einige Minuten dauern (neben der größe des Automaten ist die Anzahl der Inputs entscheident für den Zeitbedarf). Dabei wird zunächst überprüft, ob überhaupt Zustände und Transitionen vorhanden sind, und ob einer der Zustände als Startzustand definiert wurde. Danach werden alle möglichen Belegungen durchgegangen und festgestellt, ob jeweils genau eine Transition aktiviert ist. In einem Dialogfenster werden dabei Statusmeldungen und gegebenenfalls Fehler ausgegeben
Das Programm unterscheidet zwischen Editier- und Simulationsmodus. Im Editiermodus können Inputs / Outputs festgelegt und der Automat eingegeben werden. Im Simulationsmodus können Inputwerte verändert, Takte generiert und das Impulsdiagramm angezeigt werden. Den Modus wechselt man über das Menü Simulation-Simulieren bzw. Simulation-Editieren. Beim Wechsel vom Simulations- in den Editiermodus gehen alle bisherigen Simulationsdaten verloren.
Nachdem in den Simulationsmodus gewechselt wurde, können die Werte der Inputs durch Anklicken verändert werden. Durch Anklicken des Takt-Buttons oder über das Menü Simulation-Takt kann ein Takt generiert werden. Der Automat berechnet dabei den Folgezustand und wechselt in diesen. An den Ausgängen (Outputs) liegen nun die Werte der Ausgabefunktionen dieses Zustandes an. Durch Anklicken von Reset (oder Menü Simulation-Reset) geht der Automat in den Ursprungszustand zurück (Startzustand, Initialwerte der Inputs, Outputwerte der Ausgabefunktion des Startzustandes). Das Impulsdiagramm wird ebenfalls zurückgesetzt.
Über das Menü Impulsdiagramm-Anzeigen (nur im Simulationsmodus aktiv) öffnet sich das Impulsdiagramm.
Über das Menü Datei-Konvertieren-VHDL bzw. Datei-Konvertieren-KISS läßt sich der Automat im VHDL bzw. KISS-Format ausgeben. Da ein Applet aus Sicherheitsgründen weder Drucken noch speichern kann, wird der Text in einem Textfeld ausgegeben, von wo er mit Copy und Paste in einem normalen Editor gespeichert werden kann.