Guten Tag zusammen.
Ich möchte einen Procedure, die einen Endlichen Automaten realisiert, in
einem Package erstauen. Den Zustand dieses Automaten muss nur die
Procedure kennen, also wollte ich das Signal mit ins Package klatschen:
1 | package mypackage is
|
2 | type mytype is (START, ZustandA, ...);
|
3 | signal A : mytype := START;
|
4 | procedure myEA(
|
5 | variable inValue : in integer range 0 to 10;
|
6 | variable outValue : out integer range 0 to 10;
|
7 | );
|
8 | end mypackage
|
9 |
|
10 | package body mypackage is
|
11 | procedure myEA(
|
12 | variable inValue : in integer range 0 to 10;
|
13 | variable outValue : out integer range 0 to 10;
|
14 | ) is
|
15 | begin
|
16 | if A = START then
|
17 | -- verarbeite nach Zustand Start
|
18 | A <= ZustandA;
|
19 | elseif A = ZustandA then
|
20 | -- verarbeite nach Zustand A
|
21 | A <= ...
|
22 | elseif ...
|
23 | -- verarbeite nach anderen Zuständen
|
24 | ...
|
25 | endif;
|
26 | end myEA;
|
27 | end mypackage;
|
Hier bekomme ich den Fehler, dass ich signal A nicht aus der Procedure
myEA beschreiben darf. Ist das ganze überhaupt erlaubt in VHDL, wenn ja,
was mache ich falsch?
Gruß