Forum: Mikrocontroller und Digitale Elektronik Mealy Automat


von Mic ". (mic1)


Angehängte Dateien:

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.

von Heinz (Gast)


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...

von Egon D. (Gast)


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...

von Mic ". (mic1)


Lesenswert?

Hallo, es ist explizit nach dem Zustandagraph als Mealy Automat gefragt. 
Ich habe meine Lösung als .png angehängt. Was meint ihr, würde dieser 
stimmen?

: Bearbeitet durch User
von Erich (Gast)


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

von Mic ". (mic1)


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.
von Mic ". (mic1)


Angehängte Dateien:

Lesenswert?

Heinz schrieb:
> Wenn bspw als Eingabe 011 kommt, weiß dein Automat nicht wohin, weil
> 011 nicht vorgesehen ist.

Doch ist vorgesehen, Wir befinden uns im Z=0 (Start), dann 0 - wir 
bleiben also in Z=0 ´, dann deine 1 - also nun im Z=1, dann noch ne 1 - 
also im Zustand Z=11.
Nach meiner Logik müsste das doch so passen?

Beitrag #6404106 wurde von einem Moderator gelöscht.
Beitrag #6404133 wurde von einem Moderator gelöscht.
von Mici (Gast)


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

von Mic ". (mic1)


Lesenswert?

Wo könnte ich das austesten? Die Software, welche mir das testet sagt 
mir aber nicht ob es die effizienteste Lösung ist.

: Bearbeitet durch User
von Miethai (Gast)


Lesenswert?

Mein Gott mach dir ne Tabelle und gehe die Werte mit deinem Automaten 
durch, ist das so schwer?

von Mic ". (mic1)


Lesenswert?

Laut meiner Logik stimmt ja alles, aber als Anfänger in solchen 
Bereichen würde ich mich über eine sachliche Diskussion und womögliche 
Bestätigung meiner Lösung freuen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.