Guest
I'm learning the diff between variables and signals,
and I've found this site:
http://esd.cs.ucr.edu/labs/tutorial/sig_var.vhd
with a corresponding picture here:
http://esd.cs.ucr.edu/labs/tutorial/sig_var.jpg
I've changed the source file to this
library ieee;
use ieee.std_logic_1164.all;
entity sig_var is port (
d1, d2, d3 : in std_logic;
res1, res2, res3 : out std_logic);
end sig_var;
architecture behv of sig_var is
signal sig_s1: std_logic;
signal sig_s2: std_logic;
begin
proc1: process(d1,d2,d3)
variable var_s1: std_logic;
begin
var_s1 := d1 and d2;
res1 <= var_s1 xor d3;
end process;
proc2: process (d1,d2,d3)
begin
sig_s1 <= d1 and d2;
res2 <= sig_s1 xor d3;
end process;
sig_s2 <= d1 and d2;
res3 <= sig_s2 xor d3;
end behv;
and this are the simulation results:
http://img521.imageshack.us/img521/346/simulations.gif
As you can see, behavioral and post-route don't match.
Is there something wrong with the VHD source,
or I just don't get the idea behind behavioral simulation?
Post route works as I have expected.
(I've started this thread as a variable/signal issue,
but it turned into behavioral/post-route simulation.)
and I've found this site:
http://esd.cs.ucr.edu/labs/tutorial/sig_var.vhd
with a corresponding picture here:
http://esd.cs.ucr.edu/labs/tutorial/sig_var.jpg
I've changed the source file to this
library ieee;
use ieee.std_logic_1164.all;
entity sig_var is port (
d1, d2, d3 : in std_logic;
res1, res2, res3 : out std_logic);
end sig_var;
architecture behv of sig_var is
signal sig_s1: std_logic;
signal sig_s2: std_logic;
begin
proc1: process(d1,d2,d3)
variable var_s1: std_logic;
begin
var_s1 := d1 and d2;
res1 <= var_s1 xor d3;
end process;
proc2: process (d1,d2,d3)
begin
sig_s1 <= d1 and d2;
res2 <= sig_s1 xor d3;
end process;
sig_s2 <= d1 and d2;
res3 <= sig_s2 xor d3;
end behv;
and this are the simulation results:
http://img521.imageshack.us/img521/346/simulations.gif
As you can see, behavioral and post-route don't match.
Is there something wrong with the VHD source,
or I just don't get the idea behind behavioral simulation?
Post route works as I have expected.
(I've started this thread as a variable/signal issue,
but it turned into behavioral/post-route simulation.)