The waveform of the signal E is rendered in gtkwave as
e[0][0:1] when the file C.vhd is compiled by nvc. The signal values do not change.
The waveform computed by Questa and ghdl
shows the signal E of the form e[0][0][7:0] and e[0][1][7:0] (see waveforms).
nvc:
Questa:
F.vhd
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
use std.env.finish;
entity F is
end F;
architecture sim of F is
subtype A is unsigned(7 downto 0);
type B is array (natural range <>) of A;
signal C : B(0 to 1) := (others => (others => '0'));
type D is array (0 to 0) of B(0 to 1);
signal E : D := (others => (others => (others => '0')));
begin
E(0) <= C;
process
begin
wait for 10 ns;
for i in C'range loop
C(i) <= to_unsigned(C'length - i, A'length);
end loop;
wait for 10 ns;
finish;
end process;
end architecture;
The waveform of the signal E is rendered in gtkwave as e[0][0:1] when the file C.vhd is compiled by nvc. The signal values do not change. The waveform computed by Questa and ghdl shows the signal E of the form e[0][0][7:0] and e[0][1][7:0] (see waveforms).
nvc:
Questa:
F.vhd
nvc 1.15-devel (1.14.0.r123.gd7523ec9) (Using LLVM 19.1.3) macos 14.7.1 (intel)