Y
yaveh (Yet Another Vhdl E
Guest
Hello!
I am currently doing some testbench pre-studies involving some Mixed
Analogue Digital (MAD
components, and have tried an implementation using global signals
(signals defined in a package)
to communicate events between the different instances.
I have tried to provide the final testbench user with procedures (that
I had planned to write in the
package body) that drive these global signals with statements like
(code complexity reduced for posting):
procedure pulseA is
begin
sigA <= '1', '0' after 50 ns;
end;
only to find out that, according to LRM 93[8.4.1]:
[..]
If a given procedure is declared by a declarative item that is not
contained within a process statement, and if a signal assignment
statement appears in that procedure, then the target of the assignment
statement must be a formal parameter of the given procedure or of a
parent of that procedure, or an aggregate of such formal parameters.
[..]
NOTES
1--These rules guarantee that the driver affected by a signal
assignment statement is always statically determinable [..] In this
case, the affected driver is the one defined by the process[..]
In short words: My implementation doesn´t work.
However, I would say that if the main purpose of these particular rules
is to "guarantee that the driver affected by a signal assignment
statement is always statically determinable", the driver that the
signal assignment
statement in the package body affects is in my opinion static.
Any other opinion?
Best thanks in advance for a fruitful conversation,
yaveh (Yet Another Vhdl/Verification Engineer Hoping)
I am currently doing some testbench pre-studies involving some Mixed
Analogue Digital (MAD
components, and have tried an implementation using global signals
(signals defined in a package)
to communicate events between the different instances.
I have tried to provide the final testbench user with procedures (that
I had planned to write in the
package body) that drive these global signals with statements like
(code complexity reduced for posting):
procedure pulseA is
begin
sigA <= '1', '0' after 50 ns;
end;
only to find out that, according to LRM 93[8.4.1]:
[..]
If a given procedure is declared by a declarative item that is not
contained within a process statement, and if a signal assignment
statement appears in that procedure, then the target of the assignment
statement must be a formal parameter of the given procedure or of a
parent of that procedure, or an aggregate of such formal parameters.
[..]
NOTES
1--These rules guarantee that the driver affected by a signal
assignment statement is always statically determinable [..] In this
case, the affected driver is the one defined by the process[..]
In short words: My implementation doesn´t work.
However, I would say that if the main purpose of these particular rules
is to "guarantee that the driver affected by a signal assignment
statement is always statically determinable", the driver that the
signal assignment
statement in the package body affects is in my opinion static.
Any other opinion?
Best thanks in advance for a fruitful conversation,
yaveh (Yet Another Vhdl/Verification Engineer Hoping)