Re: [sv-bc] 'force' strength

From: Gordon Vreugdenhil <gordonv@model.com>
Date: Wed Jan 20 2010 - 07:26:26 PST

A "force" value is really not a strength in the sense
of the normal signal resolution rules. A "force" is
an override on a (simulated/collapsed) net. In 1800-2009
10.6.2 that is clear:
    A force procedural statement on a net shall override
    all drivers of the net...
So there is no "resolution" in play when a force is
active -- the (latest) force on the net wins because
the drivers are ignored, not because the force has
some "super strength" that applies during normal resolution.

Here is a trivial example (involving a tran):

   module top;
     wire w1,w2;
     assign w1 = 1;
     assign w2 = 0;
     tran c1(w1, w2);
     initial begin
        #1 $display("%b %b", w1,w2);
        #1 force w1 = 1;
        #1 $display("%b %b", w1,w2);
     end
   endmodule

This should display:
    x x
    1 x

The reason is that the force *overrides* the contribution
from all drivers but only on the "w1" net. It
is not valid to collapse w1 and w2 so their actual
nets are distinct. The contribution from *all* drives
on w1 are ignored when the force is active but that value
only contributes a normal value to w2. That contributed
value then resolves with w2's active drive in a normal manner.

Note that the 23.3.3.7 (1800-2009) comment that "It is
**permissible** to merge the dominating and dominated
nets into a single net..." interacts with net forces.
A force is defined to override the drivers on a net. That
has always (traditionally? normally? correctly?) been
applied to the collapsed (or "simulated") net. As a result,
implementations could get different results when forcing
across port boundaries if they didn't actually collapse
nets in module port connections (or otherwise manipulate
forcing to imitate such a collapsed simulated net).

Gord.

Bresticker, Shalom wrote:
> What is the strength of a forced signal?
>
> It matters when you have to do value resolution between signals of
> different values.
>
> For examples, what if you have two signals connected to a tran switch,
> one is forced and the other is driven. Does the forced value propagate
> to the other side or not?
>
> Thanks,
> Shalom
>
> Shalom Bresticker
> Intel LAD DA, Jerusalem, Israel
> +972 2 589 6582 (office)
> +972 54 721 1033 (cell)
> _http://www.linkedin.com/in/shalombresticker_
>
>
>
> ---------------------------------------------------------------------
> Intel Israel (74) Limited
>
> This e-mail and any attachments may contain confidential material for
> the sole use of the intended recipient(s). Any review or distribution
> by others is strictly prohibited. If you are not the intended
> recipient, please contact the sender and delete all copies.
>
>
> --
> This message has been scanned for viruses and
> dangerous content by *MailScanner* <http://www.mailscanner.info/>, and is
> believed to be clean.

-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Jan 20 07:27:43 2010

This archive was generated by hypermail 2.1.8 : Wed Jan 20 2010 - 07:28:01 PST