State-Machine in AHDL/VHDL: mehrere IF-Anweisungen

OP #968801
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren