On Tue, Nov 01, 2005 at 12:06:44PM +0100, Thomas Sailer wrote:
> 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 ****************************
[...]
> make[2]: *** [install-ghdllib] Error 2
Thank you, this is now fixed.

> 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
A factor of 10 is too large.  Did you compile the ieee library with -O ?
This is *really* important.

> 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
You can also use ./tbench --stats ...

> 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%.
This is good.  This means the kernel takes only 20%.

> 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.
This function should be optimized...
Currently I am working on improving the generated code.
If you think your design is too slow and if you are allowed, send it to me.
This is important for me to have typical designs in order to improve what
should be improved.

> Unfortunately, my build apparently doesn't have debug symbols in the grt
> library, is my build defective?
It depends on how you compiled it.  Set GRT_FLAGS="-g".

Tristan.

Reply via email to