Forum: FPGA, VHDL & Co. FSM generelle Verständnisfrage


von Kody R. (kody_r)


Lesenswert?

Hallo,

ich habe Verständnisschwierigkeiten bei endlichen Automaten. Vor allem: 
was sagen mir die Bit-Angaben in Klammern [x:0]?

Soweit ich verstehe, ich das folgende ein Mealy-Automat, weil der 
Ausgang out1 vom Input b und vom Zustand S1 abhängt. Aber was passiert 
denn mit dem Output, wenn diese Bedingung eintrifft? Ändert er sich dann 
einfach auf '1'?

Inputs: a, b, c[7:0], d:[31:0]
Outputs: out1 = (S1 & b)
Transistion 1_2 = (a & b & c[30] | d[11])

Und was sagt mir die Transition? Also vor allem: was sagt mir d[11], und 
wann trifft d[11] zu?

Bedeutet ein Input ohne Klammerangabe, dass der Wert nur 0 oder 1 sein 
kann?

Dank vielmals

von DietRichie (Gast)


Lesenswert?

Kody R. schrieb:

>
> Inputs: a, b, c[7:0], d:[31:0]
> Outputs: out1 = (S1 & b)
> Transistion 1_2 = (a & b & c[30] | d[11])

Hast du das auf irgendner Bahnhofstoilette an der Klotür gesehen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Kody R. schrieb:
> ich habe Verständnisschwierigkeiten bei endlichen Automaten.
> Vor allem: was sagen mir die Bit-Angaben in Klammern [x:0]?
Damit wird gesagt, dass du es mit einem x+1 Bit breiten Vektor zu tun 
hast. Wenn x=15, dann hast du einen Vektor von 15...0, also 16 Bit 
Breite.

> Und was sagt mir die Transition?
> 1_2 = (a & b & c[30] | d[11])
Ich rate mal: der Übergang vom Zustand 1 in den Zustand 2 erfolgt, wenn 
entweder a=1 und b=1 und c[30]=1, oder aber, wenn d[11]=1 ist...

> Also vor allem: was sagt mir d[11], und wann trifft d[11] zu?
Ich tippe mal, d[11] ist einer der 32 Eingänge von d...
Und d[11] "trifft zu", wenn d[11] high ist.

> out1 = (S1 & b)
> Aber was passiert denn mit dem Output, wenn diese Bedingung eintrifft?
out1 ist 1, wenn du gerade im Zustand S1 bist, und gleichzeitig b=1 ist.

Du solltest in der Schule ein wenig besser aufpassen. Diese 
Syntaxelemente sind elementarste Grundlagen....   :-o

von Kody R. (kody_r)


Lesenswert?

OK verstehe, das heißt meine Zustände können immer nur low 0 oder high 1 
sein. Egal ob am Eingang oder Ausgang.

Wie muss ich mir denn so ein 8-Bit Eingangsvektor vorstellen? 
Repräsentiert das quasi verschiedene Zustände von diesem Eingang? Bei 1 
Bit Eingängen ist ja nur 0 oder 1 möglich, und bei 2Bit dann zB 00 01 10 
11 also 4 Zustände?

Oder bedeutet es vielmehr, dass ich einen Eingang nochmal in 
Sub-Eingänge unterteilt habe, die jeweils wiederum nur 0 oder 1 sein 
können?
Also zB für d[1:0] gäbe es dann d[1] und d[2], die jeweils = 0 oder 1 
sind.

Danke

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Kody R. schrieb:
> Oder bedeutet es vielmehr, dass ich einen Eingang nochmal in
> Sub-Eingänge unterteilt habe, die jeweils wiederum nur 0 oder 1 sein
> können?
Ja.
> Also zB für d[1:0] gäbe es dann d[1] und d[2], ...
Nein.
Wie d[1:0] schon nahe legt: lies einfach mal "d eins bis null", dann 
gäbe es also d[1] und d[0].
Und c[15:0] liest sich so: "c fünfzehn bis null", das gibt dann also die 
sechzehn Bits d[15], d[14], d[13], ...., d[2], d[1], d[0].
> die jeweils = 0 oder 1 sind.
Ja.

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.