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
khedira55 schrieb: > Erkennung von 11010 Was verstehst du unter "Erkennung"? Welches Bit kommt zuerst? Links oder rechts? khedira55 schrieb: > wieso springt er von 011 zu 000,wenn eine 0 ist, > und von 100 zu 010, wenn eine 1 ist 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.
khedira55 schrieb: > 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 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.
khedira55 schrieb: > wieso springt er von 011 zu 000,wenn eine 0 ist, > und von 100 zu 010, wenn eine 1 ist 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.
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".
> wieso springt er von 011 zu 000,wenn eine 0 ist Bekommt der Automat die Zeichenfolge 1100 so geht er auf Anfang, weil 00 im zu erkennenden Muster nicht vorkommt. > und von 100 zu 010, wenn eine 1 ist 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.
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.