Forum: FPGA, VHDL & Co. State-Machine in AHDL/VHDL: mehrere IF-Anweisungen


von Phil R. (philipp-)


Lesenswert?

Hallo,
ich bräuchte für eine State-Machine in AHDL mehrere Verzweigungen per 
if-Anweisung.

IN AHDL sähe das so aus:
1
SUBDESIGN my_state_machine
2
3
S[2..0] : INPUT;
4
clk     : INPUT;
5
P       : OUTPUT;
6
7
VARIABLE
8
M1 : MACHINE WITH STATES (Q0,Q1, Q2, Q3);
9
10
BEGIN
11
M1.clk = clk;
12
CASE M1 IS
13
    WHEN Q0 =>
14
         P = 1;
15
        IF (S==0)
16
            THEN M1 = Q1;
17
        IF (S==1)
18
            THEN M1 = Q3;
19
        IF (S==2)
20
            THEN M1 = Q2;
21
        ELSE M1 = Q0;   % keine Zustandsänderung %
22
     WHEN Q1 =>.....
23
24
     WHEN Q2 =>.....
25
26
     WHEN Q3 =>.....
27
28
END CASE;
29
30
END;

Jetzt habe ich rausgefunden, daß AHDL mehrere IF-Anweisungen in einem 
CASE einer State-Machine nicht zulässt. Zulässig ist nur eine einzige 
IF-Anweisung und eine ELSE-Anweisung. ELSIF ist auch nicht zulässig.
Nun überlege ich, ob man eine solche State-Machine vielleicht in VHDL 
programmieren kann. Lässt VHDL mehrere IF-Anweisungen und mehrere 
Verzweigungen in einer State-Machine zu?


Vielen Dank, Philipp

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


Lesenswert?

Ja, tut es.

von Phil R. (philipp-)


Lesenswert?

Ich muß mich korrigieren:

in AHDL darf nur das erste Statement IF sein, alles danach muß ELSIF 
sein.

Kopf auf den Tisch schlag

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.