Hallihallo,
habe folgende VHDL-Beschreibung
1 | process(clk)
|
2 | begin
|
3 | wait until rising_edge(clk);
|
4 |
|
5 | case s is
|
6 | when a => if iEna='1' then
|
7 | s <= b;
|
8 | end if;
|
9 |
|
10 | when b => if iEna='0' then
|
11 | s <= a;
|
12 |
|
13 | elsif if iTrig='1' then
|
14 | myEna <= '1';
|
15 | s <= c;
|
16 | end if;
|
17 |
|
18 | when c => if iEna='0' then
|
19 | s <= d;
|
20 | end if;
|
21 |
|
22 | when d => if other_ena='0' then
|
23 | s <= a;
|
24 | end if;
|
25 | end case;
|
26 | end process;
|
Nun möchte ich das vereinfachen, erster Ansatz in etwa so:
1 | process(clk)
|
2 | begin
|
3 | if rising_edge(clk) then
|
4 |
|
5 | myEna <= (myEna or iTrig) and iEna and (other_ena);
|
6 | end if;
|
7 | end process;
|
Das Problem: die Abfrage in Zustand d ist meiner Meinung nach noch nicht
richtig beschrieben in der vereinfachten Version. Kann mir jemand sagen,
wie man die "nicht generelle" Überprüfung von 'other_ena' abbilden
könnte?
GRUSS, Joe