From: Steven Sharp (sharp@cadence.com)
Date: Wed Aug 25 1999 - 12:51:48 PDT
I wasn't actually talking about a simulator slowing down from its present
performance due to implementing an enhancement. However, I will add some
comments on that subject.
I don't see any changes that would slow down simulation significantly if the
additional features are not actually used. Some of them could slow down
elaboration because the elaboration algorithm has to be made more complex
just in case the feature did get used. Nobody is going to maintain two
different elaboration algorithms; they would use the more general one in all
cases. The features in this category are the ones whose interactions with
defparams during elaboration are still not specified. However these
interactions are resolved, it is likely to complicate the elaboration
process. The features in this category include generates and constant
functions.
There are other features which would have some impact on simulation speed if
they were actually used. Re-entrant tasks would have some minor extra cost.
Multi-dimensional arrays would have some extra cost, but it should be less
than the cost of faking them with another mechanism. Variable offset part
selects would have some cost, but still less than the cost of using an
equivalent for-loop containing bit selects. They could be made more efficient
by changing the behavior when the select was partially out of range. It
would be more efficient to be able to treat the entire select as out of range
if any part of it is out of range than having to deal with an arbitrary part
of it being in range.
Generates are likely to encourage coding styles that are very inefficient.
For example, someone may define a one-bit wide latch and then use generates
to build arbitrarily wide registers out of them, instead of defining a
single multi-bit wide register using a vector reg. This could easily result
in order of magnitude slower simulation. Generates make it easier to
design more complex things at a structural level, which will simulate slower
and require more memory than a higher-level design.
This archive was generated by hypermail 2.1.4
: Mon Jul 08 2002 - 12:53:29 PDT
and
sponsored by Boyd Technology, Inc.