H
hssig
Hi,
I have the following record assignments which do not behave correctly
in simulation (getting undefined record elements):
type tr is record
a: std_logic;
b: std_logic;
c: std_logic;
end record;
signal rec : tr;
signal sig_a, sig_b, sig_c : std_logic;
BR: block
begin
rec.a <= sig_a;
rec.b <= sig_b;
rec.c <= sig_c;
end block;
The solution seems to be the usage of a process:
pBR: process(sig_a, sig_b, sig_c)
begin
rec.a <= sig_a;
rec.b <= sig_b;
rec.c <= sig_c;
end process;
Why is the first approach erroneous for simulation ? Does VHDL-2008
allow the correct use of record assignments in blocks ?
When using big records the handling of the process sensitivity list
becomes
unclear.
Cheers,
hssig
I have the following record assignments which do not behave correctly
in simulation (getting undefined record elements):
type tr is record
a: std_logic;
b: std_logic;
c: std_logic;
end record;
signal rec : tr;
signal sig_a, sig_b, sig_c : std_logic;
BR: block
begin
rec.a <= sig_a;
rec.b <= sig_b;
rec.c <= sig_c;
end block;
The solution seems to be the usage of a process:
pBR: process(sig_a, sig_b, sig_c)
begin
rec.a <= sig_a;
rec.b <= sig_b;
rec.c <= sig_c;
end process;
Why is the first approach erroneous for simulation ? Does VHDL-2008
allow the correct use of record assignments in blocks ?
When using big records the handling of the process sensitivity list
becomes
unclear.
Cheers,
hssig