Re: [sv-bc] RE: [sv-ec] Inconsistencies in virtual interfaces and modports

From: Greg Jaxon <Greg.Jaxon_at_.....>
Date: Mon Jul 23 2007 - 10:38:04 PDT
Jonathan Bromley wrote:
>> [Stu] would like to add support for Jonathan's suggestion
> 
> I don't think I really *suggested* anything.
> 
>  [I]f we enforce that a modport output has the same 
> semantics as a module output, then we must forbid 
> writing to modport output variables via a virtual 
> interface (or permit continuous assign via a virtual
> interface, which seems fraught with difficulty).

I would also like to observe, without yet suggesting anything,
that we have two extremes of interfaces:
	- absolutely static ones, where every reference to
	  or through the interface can be fully resolved
	 (inlined) during design elaboration;
	- totally dynamic virtual interfaces with little
	  or no type-matching as references reach
	  actual destinations.

These clearly serve different purposes - one is suitable
for synthesis, the other is a very powerful simulation
and testbench facility.  I think the committee should
continue serving those separate masters as these features
are refined.  I have a hunch that there is still
an unplowed middle ground, though.  I am thinking about
a dynamically-selectable, homogeneous, aggregate of interface
instances, where the identity of individual instances in the
collection is blurred for the purposes of type-compatibility.
This might be a useful and synthesizable, mid point
between these extremes that would allow the expression
of switching network designs in high level synthesizable RTL.

> Personally I would prefer it if modport output was a
> synonym for "ref", and modport input a synonym for
> "const ref".  If you want the single-source behaviour
> you can easily get it by making a continuous assign
> to the modport output, instead of a procedural write;
> this works correctly today in two out of three 
> simulators I tried, whereas none enforces single-
> source if you make procedural assignment to a modport
> output.

This is a very frequently mentioned stumbling block
when interface designs are migrated from simulation to
synthesis.  Considering that all "ref" ports have to be
removed by the end of (separate compilation) synthesis,
making ref be the only behavior for "output" direction
leaves the feature specifying a simulation/synthesis
mismatch condition.  This does not advance the committee's
goal to improve tool correlation.

> But I sense that the consensus goes against my 
> preference; that's OK too, but we MUST then fix the 
> problem with virtual interfaces - and I have three 
> tool bugs to report :-)

It sounds like a virtual interface reference needs to
be burdened with a dynamic type-checking hook.

Just my humble opinions, as always
Greg Jaxon


-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Jul 23 10:38:26 2007

This archive was generated by hypermail 2.1.8 : Mon Jul 23 2007 - 10:38:46 PDT