The bug shows up with the llvm version of ghdl-0.33 as well.

The cause(found by commenting out concurrent statements) is this assignment in 
process extension_pipe:

     w <= w(14 downto 0) & std_logic_vector(unsigned(w(15)) + unsigned(s0) + 
unsigned(w(6)) + unsigned(s1));

The first thing to note is that "&" and "+" are the same preference and would 
be executed in left to right order, it isn't possible to add unsigned(s0),... 
to reordered w.

Simply adding parentheses didn't fix it:

     w <= w(14 downto 0) & ( 
          std_logic_vector ( 
                unsigned(w(15)) + unsigned(s0) + unsigned(w(6)) + unsigned(s1)
             ) 
          );

While adding an intermediary variable:

extension_pipe: 
    process(clock)
        variable x: std_logic_vector (31 downto 0);
    begin

and 

         elsif intenable = '1' then
             x := std_logic_vector ( unsigned(w(15)) + unsigned(s0) 
                                   + unsigned(w(6)) + unsigned(s1) );
             w <= w(14 downto 0) & x;

     -- w <= w(14 downto 0) & std_logic_vector(unsigned(w(15)) + unsigned(s0) + 
unsigned(w(6)) + unsigned(s1));
         end if;

did work.

Nothing else I tried worked (the right hand side as an aggregate, specifically 
stating the type as wt).

This appears to be an expression stack problem. I'd suspect of wt were an array 
of unsigned (31 downto 0) you might not have this problem, it may relate to the 
type conversions and multiple additions.


> On 24/04/2016, at 6:39 am, Simon Thijs de Feber <st.de.fe...@gmail.com> wrote:
> 
> Hello All,
> 
> I am using GHDL version
> GHDL 0.33 (20150921) [Dunoon edition]
>  Compiled with GNAT Version: 5.2.0
>  GCC back-end code generator
> 
> 
> I got this exception for an unknown reason while compiling a sha256 core from 
> opencores.
> 
> ghdl -a --ieee=synopsys -fexplicit -v 
> ../../securehash256bits_org/trunk/sha256.vhd
> /usr/local/libexec/gcc/i686-slackware-linux/4.9.3/ghdl1 -fexplicit 
> -P/usr/local/lib/gcc/i686-slackware-linux/4.9.3/vhdl//v93/std/ 
> -P/usr/local/lib/gcc/i686-slackware-linux/4.9.3/vhdl//v93/synopsys/ -quiet -o 
> sha256.s ../../securehash256bits_org/trunk/sha256.vhd
> 
> ******************** GHDL Bug occured ****************************
> Please report this bug on http://gna.org/projects/ghdl 
> <http://gna.org/projects/ghdl>
> GHDL release: GHDL 0.33 (20150921) [Dunoon edition]
> Compiled with GNAT Version: 5.2.0
> In directory: /home/stdefeber/projects/sandbox/ax_hmac/ghdl/
> Command line:
> /usr/local/libexec/gcc/i686-slackware-linux/4.9.3/ghdl1 -fexplicit 
> -P/usr/local/lib/gcc/i686-slackware-linux/4.9.3/vhdl//v93/std/ 
> -P/usr/local/lib/gcc/i686-slackware-linux/4.9.3/vhdl//v93/synopsys/ -quiet -o 
> sha256.s ../../securehash256bits_org/trunk/sha256.vhd
> Exception TYPES.INTERNAL_ERROR raised
> Exception information:
> Exception name: TYPES.INTERNAL_ERROR
> Message: trans.adb:1516
> Call stack traceback locations:
> 0x82282f5 0x8250165 0x8250733 0x8251e1a 0x8251f5f 0x825264f 0x8213459 
> 0x8208e70 0x8212a5c 0x8214580 0x82115ee 0x8240cff 0x823dcf5 0x823dd42 
> 0x823dd8c 0x823f02a 0x823dcf5 0x823dd42 0x823f02a 0x823dcf5 0x8233879 
> 0x825acc0 0x822a895 0x825ca13 0x81abd4c 0x81864b3 0x856b180 0x856cdfd 
> 0x81abdba 0x8183dba 0xb75ad29e 0x8184268
> ******************************************************************
> 
> Execution terminated by unhandled exception
> Exception name: TYPES.INTERNAL_ERROR
> Message: trans.adb:1516
> Call stack traceback locations:
> 0x82282f5 0x8250165 0x8250733 0x8251e1a 0x8251f5f 0x825264f 0x8213459 
> 0x8208e70 0x8212a5c 0x8214580 0x82115ee 0x8240cff 0x823dcf5 0x823dd42 
> 0x823dd8c 0x823f02a 0x823dcf5 0x823dd42 0x823f02a 0x823dcf5 0x8233879 
> 0x825acc0 0x822a895 0x825ca13 0x81abd4c 0x81864b3 0x856b180 0x856cdfd 
> 0x81abdba 0x8183dba 0xb75ad29e 0x8184268
> ghdl: compilation error
> 
> VHDL code is attached.
> I changed the code from using std_logic unsigned to numeric_std.
> Both version exhibit same error.
> 
> best regards
> 
> Simon
> 
> 
> 
> 
> 
> 
> <sha256.vhd>_______________________________________________
> Ghdl-discuss mailing list
> Ghdl-discuss@gna.org
> https://mail.gna.org/listinfo/ghdl-discuss

_______________________________________________
Ghdl-discuss mailing list
Ghdl-discuss@gna.org
https://mail.gna.org/listinfo/ghdl-discuss

Reply via email to