Mealy Automat

OP #6403780
Lesenswert?

Hallo, ich versuche mir gerade das Entwerfen von Mealy-Automaten 
beizubringen. Und zwar geht es um folgende Funktion des Mealy Automaten:
Mealy Automat nimmt als Eingabe eine Folge von Bits an (0/1), und als 
Ausgabe wird die Summe von jeweils zwei aufeinanderfogenden Bits, 
gefolgt vom Carry ausgegeben.

Ich hab meine Lösung als .png angehängt, wie würdet ihr hier den 
Zustandsgraphen entwerfen? Ich bin mir vorallem unsicher bei der Ausgabe 
des Mealy Automaten..
Ich freue mich auf eine rege Diskussion über dieses Problem. Danke.
Angehängte Dateien:
Gast #6403837
Lesenswert?

Aus meiner Sicht versuchst du ein algorithmisches Problem als 
Zustandsmaschine zu implementieren. Das macht für mich wenig Sinn.

Wenn bspw als Eingabe 011 kommt, weiß dein Automat nicht wohin, weil
011 nicht vorgesehen ist. Du müsstest (wenn ich deiner Logik folge) für 
jede mögliche Kombination 01 einen Zustandsübergang in einen jeweils 
speziellen Zustand implementieren.

Such dir als Übungs-Beispiel lieber etwas sinnfälliges wie eine 
Ampelsteuerung. Da hast du Timer, die ablaufen und dann die Ampel 
umschalten.
rot  --> rot/gelb --> grün --> rot usw...
Gast #6403856
Lesenswert?

Mic ". schrieb:

> Hallo, ich versuche mir gerade das Entwerfen von
> Mealy-Automaten beizubringen.

Okay.
Ich kenne das aus dem Studium so, dass man erstmal
einen Moore-Automaten entwirft und dann schaut, ob
sich die Zahl der Zustände reduzieren lässt.


Ach so: Meiner Erfahrung nach ist es eine GANZ
schlechte Idee, sich beim Entwurf von Automaten
die Anlauf-Phase vorzustellen. Viel besser ist es,
erstmal den Ablauf im "eingeschwungenen Fall" zu
modellieren und Start- bzw. Stoppphase nachträglich
zu bedenken.

> Und zwar geht es um folgende Funktion des Mealy
> Automaten: Mealy Automat nimmt als Eingabe eine
> Folge von Bits an (0/1), und als Ausgabe wird die
> Summe von jeweils zwei aufeinanderfogenden Bits,
> gefolgt vom Carry ausgegeben.

Okay.
Anders formuliert: Immer, wenn das erste Bit eines
neuen Paares eingelesen wird, wird der Übertrag des
vorigen ausgegeben; immer, wenn das zweite Bit eines
Paares eingelesen wird, wird das Ergebnis des aktuellen
Bit-Paares ausgegeben.

Korrekt verstanden?


> Ich hab meine Lösung als .png angehängt, wie würdet
> ihr hier den Zustandsgraphen entwerfen?

???

Was soll den Deine Lösung sein -- wenn nicht der
Zustandsgraph?


> Ich bin mir vorallem unsicher bei der Ausgabe
> des Mealy Automaten..

Naja, beim Mealy-Automaten hängt die Ausgabe nicht
nur -- wie beim Moore-Autoamten -- vom Zustand ab,
sondern außerdem noch von der Eingabe.

Es kann sein, dass es in Deinem Beispiel gar nicht
sinnvoll möglich ist, einen Mealy-Automaten als
Lösung anzugeben...
Gast #6403984
Lesenswert?

Mic ". schrieb:
> Ich freue mich auf eine rege Diskussion über dieses Problem.

Ganz schlechtes Beispiel.

Die Lösung intern ist ja ein 1+1 Bit Addierer mit Carry.
Der hat 2 Eingänge und 3 Ausgänge.
Fertig.
Gatterlogik.
Kein Takt nötig.

>nimmt als Eingabe eine Folge von Bits an
Also sequentielle Eingabe, Bit für Bit.
Aber du brauchst einen externen Takt, oder soll das der "Automatentakt" 
sein?
Dann muss man auch immer bis 2 zählen, und dann addieren.
Das braucht wohl auch einen weiteren Takt, damit es "synchron" gültig 
wird.
Zwischenfrage: Wie wird der Anfangszustand des Zählers gesetzt?
Aber jetzt kommt es: Die Ausgabe braucht dann weitere 3 Takte für die 3 
Ergebnisbits.
Das wäre dann quasi sequentiell mit 6 Takten.
Erst dann darf wieder ein Eingangswertepaar kommen.

Wenn es "parallel" sein soll, muß ein Ausgangstakt vorhanden sein, der 
1,5 mal schneller ist.
Und wie soll dann die Kennung der Synchronität erfolgen?
Denn auch hier wird zwingend einen Zeitversatz geben müssen, denn erst 
wenn zwei Bit "eingetaktet" sind kann das Ergebnis errechnet werden und 
erst dann kann die Ausgabe erfolgen.

Mache besser irgendwas einfacheres als Übungsbeispiel.
Der Tip mit der Ampelsteuerung ist nicht schlecht.
Oder, etwas anspruchsvoller, eine Aufzugssteuerung.

Gruss
OP #6404025
Lesenswert?

Erich schrieb:
> Also sequentielle Eingabe, Bit für Bit.
> Aber du brauchst einen externen Takt, oder soll das der "Automatentakt"
> sein?

Ja wenn in einem Zustand eine 0 oder eine 1 kommt, wird in den nächsten 
Zustand gehüpft.
Ich will nur den Zustandsgraphen zeichnen, ohne mir um Takte Gedanken zu 
machen.

Erich schrieb:
> Mache besser irgendwas einfacheres als Übungsbeispiel.

Ich will das Beispiel unbedingt knacken, das Beispiel ist ein Beispiel 
von einer deutschen Uni, also müsste das Beispiel schon lösbar sein. Ich 
weiß halt nur nicht ob mein Zustandsgraph stimmt, weil es leider keine 
Lösung dazu gibt.
Beitrag #6404045 wurde von einem Moderator gelöscht.
Beitrag #6404078 wurde von einem Moderator gelöscht.
Beitrag #6404106 wurde von einem Moderator gelöscht.
Beitrag #6404133 wurde von einem Moderator gelöscht.
Gast #6404165
Lesenswert?

Mic ". schrieb im Beitrag #6404133:
> Von anderen Posts
> bitte ich Abstand zu nehmen, die stören den Schreibfluss, danke.

Nein das stört nicht. Warum implementierst du deinen Automaten nicht 
einfach und lässt ihn laufen? Dann siehst du obs funktioniert

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren