Skip to content

Issue with waveform of two-dimensional array of unsigned #1071

@yikkrubz

Description

@yikkrubz

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:
F_nvc

Questa:
f_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;

nvc 1.15-devel (1.14.0.r123.gd7523ec9) (Using LLVM 19.1.3)
macos 14.7.1 (intel)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions