Closed m-kru closed 7 months ago
The --dump-arrays
option should do that:
--dump-arrays
Include memories and nested arrays in the waveform data. This is
disabled by default as it can have significant performance, mem‐
ory, and disk space overhead.
It indeed works. However, I observe some weird behavior.
type data_array_t is array (natural range <>) of std_logic_vector(31 downto 0);
type mock_completer_t is record
-- Configuration elements
prefix : string; -- Optional prefix used in report messages.
-- Internal elements
memory : data_array_t;
-- Statistics elements
read_count : natural; -- Number of read transfers.
write_count : natural; -- Number of write transfers.
end record;
function init (memory_size: natural; prefix: string := "apb: mock completer: ") return mock_completer_t is
variable mc : mock_completer_t(prefix(0 to prefix'length-1), memory(0 to memory_size - 1));
begin
mc.prefix := prefix;
return mc;
end function;
signal mc : mock_completer_t := init(memory_size => 8);
I would expect the mc.memory
array to have 8 elements. However, the gtkwave shows 256 elements.
I would expect the
mc.memory
array to have 8 elements. However, the gtkwave shows 256 elements.
Yes this is a bug.
I have some testbench with following declarative part:
The
data_arary_t
is defined in a separate package astype data_array_t is array (natural range <>) of std_logic_vector(31 downto 0);
. In the output .fst file I cannot findADDR
,DATA
, andwritten_data
.ADDR
andDATA
are constants so their absence is not a big deal. However, thewritten_data
is a signal and it would be really nice to have a possibility to display it on a waveform.