[email protected] wrote:
> Why disappears the transaction marked with (*) in the simulation? I
> have got '0' (0-20ns) after running this.
> ----------------------------
> library ieee;
> use ieee.std_logic_1164.all;
>
> entity test2_tb is
> end test2_tb;
>
> architecture TB_ARCHITECTURE of test2_tb is
> signal a : std_logic;
> signal b : std_logic;
> signal c : std_logic;
> begin
> STIMULUS: process
> begin
> a <= '0';
> wait for 0 ns;
>
> a <= '1' after 2 ns; -- (*)
> a <= '0' after 4 ns;
> wait for 20 ns;
>
> wait;
> end process;
> end TB_ARCHITECTURE;
Go read up on assignment scheduling.
After the "wait for 0 ns," you assign a twice. The problem is that you
don't allow the first assignment to occur before overwriting it with
the second.
-a