Hi,
I am writing a UVM verification environment for a VHDL DUT.
The DUT has internal signal whose type is array of user defined VHDL record, e.g.:
type my_record is record
a : std_logic;
b : std_logic;
end record;
type my_array_of_records is array(0 to 3) of my_record;
I want to peek into this internal signal.
so I wrote in my interface definition:
my_record internal_VHDL_record[0 to 3];
and in the top level module I wrote:
generate
genvar ch;
for (ch = 0;ch < 4;ch++)
assign u_interface.internal_VHDL_record[ch] = top.module_a_inst.internal_signal[ch];
endgenerate
where top.module_a_inst.internal_signal is the full path to the internal array of records.
What I see is that the u_interface.internal_VHDL_record gets initial values(i.e. zero values and not āUā), but when the internal VHDL signals changes, the interface signal does not.
Can you suggest why?
Thanks