Hallo Zusammen,
kann mir Jemand erklären in dem angezeigten Automatgraph bei der Erkennung von 11010, wieso springt er von 011 zu 000,wenn eine 0 ist, und von 100 zu 010, wenn eine 1 ist
Viele Grüße
|
Anzeige
|
Automatgraph
Gast
#7335606
Hallo Zusammen, kann mir Jemand erklären in dem angezeigten Automatgraph bei der Erkennung von 11010, wieso springt er von 011 zu 000,wenn eine 0 ist, und von 100 zu 010, wenn eine 1 ist Viele Grüße
Was verstehst du unter "Erkennung"? Welches Bit kommt zuerst? Links oder rechts?
Das "wieso" steht nicht im Bild. Woher sollen wir das wissen? Der Automat macht das eben. So ist er gezeichnet. Eine Begründung fehlt. Weil er falsch ist. Kommilitonen wissen auch oft nic. Besser du schreibst alle erkannten Ziffern in die Knoten. Start ist dann leer. Im Uhrzeigersinn kommt 1 11 110 1101 11010 und letzteres ist erkannt.
Gast
#7335780
Du verwechselst Zustandscodierung mit Eingangsalphabet. In der bubble steht der Name (state_name) resp der Code des Zustandes. Der Name des Zustands muss nicht unbedingt etwas mit seiner Funktion/Ausgangscodsierung zu tun haben. https://vhdlguide.readthedocs.io/en/latest/vhdl/fsm.html Ansonsten scheint die FSM eher die Zeitlichen Längen als die Werte aus zu werten. Eine '0' darf höchsten einen Takt lang sein, während eine '1' schon mal länger anliegen darf.
Gast
#7335848
Das ist korrekt so. Im Zustand (011) hat die FSM bereits die Eingangsfolge "110" erkannt. Als nächstes muss eine "1" kommen. Kommt eine "0", so wurde die Eingangsfolge nicht erkannt und es geht von vorne los (Zustand (000)). Wie schon jemand geschrieben hat: verwechsle nicht die Zustandcodierung mit der Eingangsfolge. Die Codierung des Zustands (also das Bitmuster im Kreis) ist für die Funktion der FSM völlig unwichtig. Besser hätte man sie erstmal A, B, C ... genannt. Später kann man sich überlegen, wie die Zustände so codiert werden, dass die Transiitionsfunktion möglichst einfach wird, aber das hat mit der eigentlich FSM nicht zu tun.
Gast
#7335856
Btw, diese FSM akzeptiert nicht nur die Folge 11010 sondern eine ganze Klasse von Eingangsfolgen, nämlich alle, die auf 11{1}01{1{1}01}0 matchen. Die Klammern {} bedeuten dabei "null mal oder öfters".
Gast
#7336223
Das Bit wird von links nach rechts gelesen.
Gast
#7350944
Bekommt der Automat die Zeichenfolge 1100 so geht er auf Anfang, weil 00 im zu erkennenden Muster nicht vorkommt.
Bekommt der Automat die Zeichenfolge 11011 so kann das letzte 11 der Beginn der Zeichenfolge 11010 sein. Mit anderen Worten, der Automat erkennt die Zeichenfolge auch dann, wenn er nicht auf dem Startzustand steht, wenn die zu erkennende Zeichenfolge eingegeben wird. Im übrigen ist der Automat ein sogenannter Speicherautomat. Das heißt, seine Zustandsvariablen sind auch seine Ausgangsvariablen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|