Forum: FPGA, VHDL & Co. Automatengraphen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von deike (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


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

von deike (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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 Andreas F. (chefdesigner)


Bewertung
-1 lesenswert
nicht 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?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.