Forum: FPGA, VHDL & Co. Automatgraph


von khedira55 (Gast)


Angehängte Dateien:

Lesenswert?

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

von Gustl B. (-gb-)


Lesenswert?

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.

von Michael B. (laberkopp)


Lesenswert?

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.

von Sephiroth (Gast)


Lesenswert?

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.

von vancouver (Gast)


Lesenswert?

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.

von vancouver (Gast)


Lesenswert?

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

von khedira55 (Gast)


Angehängte Dateien:

Lesenswert?

Das Bit wird von links nach rechts gelesen.

von RalphT (Gast)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.