Hi Tristan,
I'm investigating why one of my testbenches runs very slowly.
Now according to valgrind, about 63% of the CPU time is spent in
grt__processes__simulation_cycle. This function spends almost all the
time in the following pointer chasing loop:
El := Proc.Sensitivity;
while El /= null loop
if El.Sig.Event then
Resume_Process (Pid);
exit;
else
El := El.Next;
end if;
end loop;
(The 63% exclude the time when Resume_Process is actually called, so the
63% are just the pointer chasing).
In my case, Non_Sensitized_Process_Table.Last seems to be 481 (I'm
actually a bit surprised why there are this many nonsensitized
processes. There are about 10-20 explicitly coded nonsensitized
processes, according to grep).
Another 17% is spent in grt__stack2__allocate, 7% in
grt__signals__find_next_time, 6% in grt__processes__compute_next_time.
Actual "user" code accounts for less than 1% in total.
What can I do to make my simulation run faster?
Thanks,
Tom
_______________________________________________
Ghdl-discuss mailing list
[email protected]
https://mail.gna.org/listinfo/ghdl-discuss