Forum: FPGA, VHDL & Co. Automatengraphen


von deike (Gast)


Lesenswert?

Hallo,
Ich sitze gerade vor einer Aufgabe, wo ich einen Automatengraphen 
erstellen soll mit möglichst wenigen Zuständen.
Also Eingabe gibt es 2 positive gleich lange Binärzahlen. Es wird pro 
Takt ein Bit von jeder Zahl eingegeben mit den Most signifikanten Bit 
zuerst. Als Ausgänge soll es Ymax und Ymin geben und pro Takt je ein 
Ausgabe Bit liefern. Bei Ymax soll die größere der beiden Zahlen 
ausgegeben werden und bei Ymin die kleinere. Außerdem soll es eine reset 
Leitung geben die den Anfang und Ende der zu sortierenden Zahlen zeigen 
soll und den Automaten in einen Anfangszustand zurücksetzten soll. Mit 
der reset Leitung wird auch die letzten zu vergleichenden Bits 
eingegeben.

Reichen für den Automaten 2 Zustände aus oder wie muss ich da vorgehen ? 
Schon mal danke für die Hilfe!!

: Verschoben durch Admin
von Yalu X. (yalu) (Moderator)


Lesenswert?

deike schrieb:
> Reichen für den Automaten 2 Zustände

Ich hätte eher auf 3 getippt. Aber du kannst ja mal deine Lösung mit 2
Zuständen posten, dann sage ich dir, ob sie richtig ist oder wo ggf. der
Fehler liegt.

von deike (Gast)


Lesenswert?

Ich weiß es nicht so genau.. Ich hab gedacht das eine Zustand reicht in 
dem man ist wenn kein reset eingegeben wird und dann der zweite in dem 
man anfängt und hingeht wenn reset eingegeben wird.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Ich hätte so gedacht:

S0: Startzustand, in dem man solange bleibt, bis man weiß, welche der
    beiden Zahlen größer ist

S1: In diesen Zustand geht man, sobald man feststellt, dass die erste
    Zahl größer ist und bleibt bis zum Reset darin. Dann wechselt man
    zurück in S0.

S2: In diesen Zustand geht man, sobald man feststellt, dass die zweite
    Zahl größer ist und bleibt bis zum Reset darin. Dann wechselt man
    zurück in S0.

Versuch mal, diese Idee etwas weiterzuspinnen :)

von deike (Gast)


Lesenswert?

Dankeschön!

Bin gerade dabei und stehe vor dem Problem wenn die beiden Bits gleich 
sind, bleibt man in dem Zustand, indem man sich gerade befindet?

von deike (Gast)


Lesenswert?

Und bei deiner Idee wechselt man also gar nicht zwischen den Zuständen 
s1 und s2 ? Also auch nicht wenn zuerst die erste Zahl größer ist und 
danach die zweite Zahl?

von Yalu X. (yalu) (Moderator)


Lesenswert?

deike schrieb:
> Und bei deiner Idee wechselt man also gar nicht zwischen den Zuständen
> s1 und s2 ? Also auch nicht wenn zuerst die erste Zahl größer ist und
> danach die zweite Zahl?

Kann das passieren, ohne dass zwischendurch ein Reset gegeben wird?

von deike (Gast)


Lesenswert?

stimmt das kann gar nicht passieren! Jetzt habe ich es verstanden!
Dankeschön!!

von deike (Gast)


Lesenswert?

Ich hab nochmal eine Frage zu einem anderen Automatengraphen. Diesmal 
soll das Vorkommen einer Teilserie 00100 untersucht werden. Es gibt die 
Eingabe x wo pro Takt eine null oder eins eingegeben werden und wenn die 
Teilfolge einmal vorgekommen ist soll eine 1 ausgegeben werden.
Ich hab es versucht und eine minimal Anzahl an Zuständen von 5 Zuständrn 
erreicht.
Z1 der Anfangszustand
Z2 es liegt eine null vor
Z3 es liegen 2 Nullen vor
Z4 es liegen 2 Nullen und eine eins vor
Z5 es liegt 0010
Und wenn dann eine weitere null kommt gibt man 1 aus und geht wieder in 
den Anfangszustand.
Geht das noch mit weniger Zuständen oder ist das schon die minimal 
Anzahl?

von Yalu X. (yalu) (Moderator)


Lesenswert?

deike schrieb:
> Geht das noch mit weniger Zuständen oder ist das schon die minimal
> Anzahl?

Das ist schon das Minimum. Um eine vorgegebene Folge von n Zeichen zu
erkennen, braucht man n Zustände.

von A. F. (chefdesigner)


Lesenswert?

hm, das sollte eigentlich logisch sein!  Was ist das denn für eine 
Aufgabe?
Nicht wieder eine Hausaufgabe für unsere kommende bachelor-Generation?

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.