E
Eli Bendersky
Guest
Hello,
Let ARC be an architecture:
architecture ARC of MY_ENTITY is
signal foo: std_logic;
begin
end ARC;
Now, I want to write a procedure that drives this 'foo' signal, but
without having it as an out / inout port (hence I refer to it as
"external" to the procedure):
procedure drive_foo is
begin
foo <= '0';
end drive_foo;
If I place this procedure in the declarative section of the
architecture, the compiler (of Modelsim) complains that I can't drive
the signal from there. However, if I place it in the declarative
section of some process, everything is OK.
Why is this so ? What are the rules for operations allowed to an
'architecture level' procedure versus a 'process level' procedure ?
Tx
Eli
Let ARC be an architecture:
architecture ARC of MY_ENTITY is
signal foo: std_logic;
begin
end ARC;
Now, I want to write a procedure that drives this 'foo' signal, but
without having it as an out / inout port (hence I refer to it as
"external" to the procedure):
procedure drive_foo is
begin
foo <= '0';
end drive_foo;
If I place this procedure in the declarative section of the
architecture, the compiler (of Modelsim) complains that I can't drive
the signal from there. However, if I place it in the declarative
section of some process, everything is OK.
Why is this so ? What are the rules for operations allowed to an
'architecture level' procedure versus a 'process level' procedure ?
Tx
Eli