On Sun, 2005-10-30 at 12:17 +0100, Tristan Gingold wrote:

I've just tried SVN revision 19, but now I get the following (on i386):

******************** GHDL Bug occured ****************************
Please report this bug on http://gna.org/projects/ghdl
GHDL version: GHDL 0.21dev (20051016) [Sokcho edition]
Compiled with GNAT Version: 4.0.1 20050727 (Red Hat 4.0.1-5)
In
directory: 
/var/tmp/ghdl-0.21dev-1-root/usr/lib/gcc/i686-pc-linux-gnu/4.0.2/vhdl/lib/v93/ieee/
Command line:
/usr/src/redhat/BUILD/gcc-4.0.2/obj/gcc/vhdl/../ghdl1 --std=93 -P../std
--work=ieee -P../std/
-P/usr/lib/gcc/i686-pc-linux-gnu/4.0.2/vhdl/lib/v93/std/ -quiet -o
std_logic_1164_body.s ../../../src/ieee/std_logic_1164_body.v93
Exception CONSTRAINT_ERROR raised
Exception information:
Exception name: CONSTRAINT_ERROR
Message: translation.adb:3148 access check failed
Call stack traceback locations:
0x80af198 0x80d0865 0x80d0a28 0x80d0b35 0x80ee47d 0x80ef273 0x80f2402
0x80f3ec7 0x80f66e3 0x80551fb 0x804d7d8
******************************************************************

Execution terminated by unhandled exception
Exception name: CONSTRAINT_ERROR
Message: translation.adb:3148 access check failed
Call stack traceback locations:
0x80af198 0x80d0865 0x80d0a28 0x80d0b35 0x80ee47d 0x80ef273 0x80f2402
0x80f3ec7 0x80f66e3 0x80551fb 0x804d7d8
/usr/src/redhat/BUILD/gcc-4.0.2/obj/gcc/vhdl/../ghdl: compilation error
make[3]: *** [ieee.v93] Error 1
make[3]: Leaving directory
`/var/tmp/ghdl-0.21dev-1-root/usr/lib/gcc/i686-pc-linux-gnu/4.0.2/vhdl'
make[2]: *** [install-ghdllib] Error 2


Now for something completely different. I've been trying to find out why
ghdl is slower than modelsim. I first suspected that while ghdl seems to
treat std_logic_1164 and friends just like any other vhdl code, modelsim
seems to special case 1164 at least to some point. To check this
assumption, I compiled your 1164 sources with modelsim to work and then
used it to simulate with modelsim. I also tried the switch -no1164,
which is documented to switch off some special casing. But that
hypothesis is obviously wrong:

work.std_logic_1164,-no1164   3:38
work.std_logic_1164           3:32
normal                        2:50
ghdl 0.20                    21:19

Then I was trying to find out whether something obvious is taking too
much time in ghdl. So I ran the ghdl created executable using callgrind:
callgrind --dump-instr=yes --trace-jump=yes ./tbench --stop-time=1ms

Unfortunately, there is nothing obvious.
Virtually all time is spent in grt__processes__simulation_cycle and its
callees, of which grt__processes__run_processes takes ~80%.
work__numeric_std__OPPIO2 ("+"(signed,signed)) ~21%.
work__modem__ARCH__rtl__P15__PROC takes ~19%. This is the process that
contains the "+" with the longest vectors. ~14% is consumed by
work__numeric_std__add_signed.

Unfortunately, my build apparently doesn't have debug symbols in the grt
library, is my build defective?

Thanks,
Tom



Reply via email to