KJ said:
Do you have any reference designs that demonstrate this?
No, I've just noticed that testbench elaboration
and run times increase with the number of signal bits
in the DUT.
I wrote one
for a simple counter a while back using signals and then variables and
I think I remembered measuring about a 10% improvement using variables.
That sounds about right if the output register
is the only register. However, a complex design entity
has many more internal registers than output registers.
I write a command (do) file that lights up the processes I am working
on, and just run that when I need to look at waves.
You are correct that this is something I wouldn't
have to do if everything I needed to look at were a signal.
But then, writing the command file is a simple task
and typing "do mywaves.do" isn't much harder
than typing "add waves * "
At the time I didn't feel that 10% was worth the risk of having to
restart sim just to see history on variables that are in the logic path
towards the root problem
Certainly not worth modifying working code,
but something to consider for next time.
I am certain that the speedup is better
than 10% for processes with hundreds
or thousands of internal register bits.
but I also didn't think a counter was
necessarily representative of the extensive use that you make with
variables either.
I agree. A better speed battle might be a single
variable array of 1000 prescale counters vs
a generate loop or instances of the same counters.
I realize that the entity boundaries will be signals that can be waved
to backtrack through during debug, but I know I also tend to wave
internal signals within the architecture during that debug time.
I find that looking at the output
waves is often enough to debug a problem
using code inspection or by tracing code
and variables. These debugging
techniques much less useful for a
multiprocess design.
Agreed, depending on what is being test, it may be fast enough to
restart. But even so, the time lost doing so would need to be deducted
from the 10% speedup (or whatever that number that you see).
My best argument is above.
I don't really ever have to restart to see waves.
-- Mike Treseler