Package: ghdl
Version: 0.29+gcc4.3.4+dfsg-1
Severity: normal

--- Please enter the report below this line. ---

I have the following vhdl code :

--------------------------------------------------------------------------------

library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity tb_test is end;

architecture arch_tb of tb_test is
   signal reset_s, clk_s : std_logic;
   signal i_s : integer;
   signal u_s : unsigned(7 downto 0);
begin

   reset : reset_s <= '0',
                      '1' after 20 ns,
                      '0' after 400 ns;

   clock : process begin
      clk_s <= '0';
      wait for 100 ns;
      clk_s <= '1';
      wait for 100 ns;
   end process clock;

   process (reset_s, clk_s) begin
      if reset_s = '1' then
         report integer'image(i_s); -- Will report -2147483648
         i_s <= 0;
      elsif rising_edge(clk_s) then
         i_s <= 3;
      end if;
   end process;

   u_s <= to_unsigned(i_s, 8); -- Will give a bound check failure

end architecture arch_tb;

--------------------------------------------------------------------------------

When simulating this code, the signal i_s is at first uninitialized and
has the value -2147483648.

Then, as shown below, a bound check failure is raised because it is
trying to convert a negativ value to an unsigned at the line "u_s <=
to_unsigned(i_s, 8)".

./tb_test:error: bound check failed (#11)
./tb_test:error: simulation failed
ghdl: compilation error

It is possible to avoid that by initialising i_s when it is declared,
but signals are usually initialised during a reset and that's what is
trying to make this code but it doesn't have time to do it before the
failure.

I think the best would be to put a warning instead an error and leave
the signal u_s to its uninitialised value ("UUUUUUUU").

Bye
Jonas


--- System information. ---
Architecture: i386
Kernel:       Linux 2.6.32-5-686

Debian Release: squeeze/sid
  700 testing         ftp.ch.debian.org 
  600 unstable        ftp.ch.debian.org 
    1 experimental    ftp.ch.debian.org 

--- Package information. ---
Depends             (Version) | Installed
=============================-+-=============
libc6                (>= 2.7) | 2.11.1-3
libgcc1          (>= 1:4.1.1) | 1:4.4.4-4
libgmp3c2                     | 2:4.3.2+dfsg-1
libgnat-4.4      (>= 4.4.3-1) | 4.4.4-4
libmpfr1ldbl                  | 2.4.2-3
gnat-4.4                      | 4.4.4-4
zlib1g-dev                    | 1:1.2.3.4.dfsg-3


Recommends      (Version) | Installed
=========================-+-===========
gtkwave                   | 3.3.6-1


Package's Suggests field is empty.





--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to