RE: FW: New Mantis Issue #667 for V-1364

From: Shalom.Bresticker@freescale.com
Date: Sat Apr 16 2005 - 12:47:25 PDT

  • Next message: Steven Sharp: "Proposal for ETF erratum 350"

    Steven,

    I did not follow this, partly due to lack of time now.
    In any case, I again think it is better to be explicit.
    Here, even more than in the case of port connections, it is an involved
    chain of reasoning.

    You wrote,
    > Actually there is, and in a way that could affect this. A continuous
    > assignment can directly reference a constant. A gate can at most have
    > a constant connected to an input port (technically a terminal, which is
    > almost the same).

    But you did not explain why that makes a difference.

    By the way, if you do not explicitly require evaluation, what happens if
    the entity or process or whatever you want to call it starts becoming
    sensitive to input events only after these time 0 events have occurred?

    Regards,
    Shalom

    On Fri, 15 Apr 2005, Steven Sharp wrote:

    >
    > Shalom wrote:
    > >> There is no essential difference between a gate and a continuous
    > >> assignment (except for strength reduction).
    >
    > Actually there is, and in a way that could affect this. A continuous
    > assignment can directly reference a constant. A gate can at most have
    > a constant connected to an input port (technically a terminal, which is
    > almost the same).
    >
    > Dave Rich wrote:
    > >However, I now believe that all primitives (all UDPs and built-ins)
    > >need to be evaluated at least once at time 0. The sequential UDPs need
    > >to be evaluated for level sensitive behavior.
    >
    > That is a good point, though there would be a problem for a sequential
    > UDP with an initial value and no level-sensitive inputs. However, I
    > now believe that there is no need to specify evaluation of primitives
    > at time 0.
    >
    > As noted previously, a constant can only be connected to a primitive
    > via a port. Since that constant is not a net, there must be an implicit
    > continuous assignment of the constant to a net that is actually attached
    > to the primitive. Since that implicit continuous assignment would be
    > required to evaluate at time 0, that should take care of creating an event
    > that will cause the primitive to evaluate. Note that an implementation
    > might not choose to implement the connection exactly this way, but it
    > still has to provide equivalent behavior to what the LRM specifies.
    >
    > So for example, if you have a buffer with 1'b0 attached to the input,
    > there is (at least conceptually) an implicit continuous assignment of
    > the 1'b0 to a net that is the input of the buffer. That net starts out
    > at X. When the implicit continuous assignment is required to evaluate
    > at time 0, the net will transition to a value of 0. That event will
    > require the evaluation of the buffer, so the value will propagate to
    > the output of the buffer.
    >
    > For now at least, 2-state bits connected to a primitive input are covered
    > this way also. A 2-state object must currently be a variable. This means
    > that there is an implicit continuous assignment when it is attached to a
    > primitive terminal. If we assume that all primitive input terminals are
    > wires, the input starts out at X and will transition to the initial 0 of
    > the 2-state variable when the implicit continuous assignment is evaluated
    > at time 0.
    >
    > So there is no need to require evaluation of primitives at time 0 to get
    > constants or 2-state values to propagate. All that is needed is to
    > require continuous assignments (including implicit ones for port
    > connections) to be evaluated at time 0. Then the primitives will take
    > care of themselves.
    >
    > Steven Sharp
    > sharp@cadence.com
    >

    -- 
    Shalom.Bresticker @freescale.com                     Tel: +972 9  9522268
    Freescale Semiconductor Israel, Ltd.                 Fax: +972 9  9522890
    POB 2208, Herzlia 46120, ISRAEL                     Cell: +972 50 5441478
      
    [ ]Freescale Internal Use Only      [ ]Freescale Confidential Proprietary
    


    This archive was generated by hypermail 2.1.4 : Sat Apr 16 2005 - 12:24:35 PDT and
    sponsored by Boyd Technology, Inc.