RE: net_resolution


Subject: RE: net_resolution
From: Jonathan Sanders (jons@cadence.com)
Date: Mon Feb 26 2001 - 08:19:26 PST


Ian,

Some more clarification on this one.

At 03:54 PM 2/23/01, Ian Wilson wrote:

> >
> > from what i remember of past discussions, the input/output/inout
> > qualifiers
> > were fairly irrelevant in verilog - if that is the case, can we
> make the
> > distinction between inout and input/output qualifiers for the
> > driver-receiver
> > segragation?
>
>The key here is whether the net has multiple digital drivers. My note puts
>undue emphasis on the port declaration - I'll fix that. I am of the opinion
>that a connect module candidate should only match if the port declaration
>is correct (thus inout would be required in this case).

It seems that you are implying that the only time driver receiver segregation
occurs is if the user provides a rule that uses a bidir connect module. Thus
the only cases where this can happen are:

1) A true digital inout port exists on the net
2) Coercion is used and the net is declared digital, thus the CM goes across
         the analog port that is inout

The additional clarification is that you are now forcing the CM to use a
inout port
rather than allowing any CM to support driver-receiver seg.

Is there a reason why analog effects on the digital receivers should be
limited
to such conditions? Should not the digital drivers always be influenced by
analog before the digital drivers are driven?

If I understand what you are proposing then the only time analog will
effect digital
drivers is in the case that a bidirectional port is involved and thus this
behavior is
now limited to accurately modeling of analog effects on digital for
bidirection connection.

In fact, what happens if I have the following:

  output (logic) inout (logic)
--------O----------------------------O------------------------
                      | NetA
                      | inout (electrical)
                      ------------------O-----------------------

If NetA is logic then the CM is connected across the electrical
port. Driver receiver
segregation is done an effects both digital ports (one inout, one output),
correct?

If NetA is electrical then I have two cases:

a) Merged: Since these are likely to be covered by different connect rules
this should
give you the same results as Split.

b) Split: In this case you get two CM's, one across each digital port. Is
driver-receiver
segregation still done on NetA? Since I have two CM's writing to the
electrical net both
are considered drivers while one is also a receiver sometimes. What
happens if another
digital block is added that only has an input port? What happens in the
case of merged.

If I understand correctly the above stuff why would changing my inout
digital port to an
input port change the behavioral of driver-receiver segregation?

Without a doubt this is the most complex part of the language to understand
and teach.
I myself would favor consistency over most simplification. If we want to
make it easier
for the users I say we make the default mode (user / modeler needs to do
nothing) to
pass the digital values directly to the receivers. Then we provide the
mechanisms for
users / modeler to do more accurate modeling if they please. This seems to
line up
more with other features in the language that we have done.



This archive was generated by hypermail 2b28 : Mon Feb 26 2001 - 09:02:04 PST