You said:
If you write [...] a concurrent signal assignment
it acts as a process on its own, and therefore
executes just once at time 0.
why will it act once? wouldn't that a concurrent statement? so I guess
it should keep happening as long as other processes are running so
this statement (out of process) will be executed more than once.
No, you're not completely wrong; but I was right too.
I forgot to mention one important detail....
Any VHDL concurrent assignment is simply shorthand for a
process, sensitive to every signal that appears on the
process's right-hand-side expression. For example:
architecture blah of foo is
...
begin
A <= B or C;
...
is shorthand for...
process (B, C)
begin
A <= B or C;
end process;
As I'm sure you know, this process...
- executes at time 0 from top to bottom
- then waits for a change (event) on any signal in
its sensitivity list
- then loops around to the top and executes again
- and so on, for ever.
In fact, the process with its sensitivity list is
itself a shorthand for this version...
process -- no sensitivity
begin
A <= B or C;
wait on B, C; -- wait for change on sensitivity list
end process;
The "executes once at time zero" thing happens simply
because the sensitivity "wait on" is at the BOTTOM of
the process, not at the beginning.
This is fine, BUT what happens if there are NO signals
in the right-hand side expression?
D <= '1', '0' after 10 ns;
This translates into
process -- no sensitivity
begin
D <= '1', '0' after 10 ns;
wait; -- No sensitivity to wait on!!!!
end process;
So, as I said, such a concurrent assignment will
execute just once at time zero. It then freezes
forever at the implicit "wait" statement.
Hope that clarifies things.
--
Jonathan Bromley, Consultant
DOULOS - Developing Design Know-how
VHDL * Verilog * SystemC * e * Perl * Tcl/Tk * Project Services
Doulos Ltd., 22 Market Place, Ringwood, BH24 1AW, UK
(e-mail address removed)://
www.MYCOMPANY.com
The contents of this message may contain personal views which
are not the views of Doulos Ltd., unless specifically stated.