From: Dave Rich (dave_59@yahoo.com)
Date: Wed Apr 20 2005 - 18:28:30 PDT
Steve,
Evaluating a sequential UDP with an initial statement is exactly like
variable initialization in SystemVerilog. Its output has the initial
value at the start of simulation.
I am thinking of language like:
All primitives, UDPs, implicit and explicit continuous assignment shall
be evaluated at least once before the end of simulation time 0. Before
time 0 includes during elaboration if all inputs to such constructs are
constant expressions.
Dave
--- Steven Sharp <sharp@cadence.com> wrote:
> Shalom wrote:
> >Other than sequential UDPs, when is it wrong for primitives to
> evaluate
> >at time 0? If you already mentioned this, I'm sorry, I forgot.
>
> I haven't described it before, because I didn't want to divert the
> discussion further. I know of two situations. For one of them, it
> is
> hard to define what the "correct" behavior would be, because it
> requires
> a UDP that is not a physically realizable device. However,
> evaluation
> at time zero would cause behavior different from Verilog-XL.
>
> The other is sequential UDPs with initial values for the state. But
> as
> Dave Rich pointed out, if you need to evaluate combinational UDPs at
> time
> zero, then you also need to evaluate sequential UDPs at time zero.
> Sequential UDPs can have level-sensitive inputs, which have a
> combinational
> path to the output. If you don't need to evaluate those, then you
> don't
> need to evaluate combinational UDPs either.
>
> >I agree that in most cases, terminal connections work like port
> connections,
> >but it needs to be stated. However, one exception, I think, is
> terminal
> >connections of switch-level primitives, where port collapsing on
> input
> >terminals, where possible, is required, not just optional. This is
> because
> >these primitives preserve strength information.
>
> That is a valid point, and a good way of describing it. These
> primitives
> do allow port expressions and insert implicit continuous assignments
> if
> they are not nets. However, they must not insert a continuous
> assignment
> for a 1-bit net connected to a data input, since those must preserve
> strength for the switch to function properly.
>
> Note that we are only discussing the unidirectional switches here.
> The
> bidirectional ones have inout data terminals, which can only be
> connected
> to 1-bit nets.
>
> Steven Sharp
> sharp@cadence.com
>
>
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
This archive was generated by hypermail 2.1.4
: Wed Apr 20 2005 - 18:05:19 PDT
and
sponsored by Boyd Technology, Inc.