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.
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...
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...
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
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
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.
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.
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
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
Mein Gott mach dir ne Tabelle und gehe die Werte mit deinem Automaten durch, ist das so schwer?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.