RE: [sv-bc] .name and .*

From: Bresticker, Shalom <shalom.bresticker_at_.....>
Date: Tue Oct 31 2006 - 00:58:38 PST
I see that Cliff's proposal in
http://www.eda-stds.org/vlog-pp/hm/att-0317/02-ImplicitPorts_20020315.PD
F said,

"If a port on a .* or a .name implicitly instantiated sub-block is
unconnected in the upper-level module, the port shall be explicitly
listed as a named port with empty parentheses, showing there is no
connection to the port."

Shalom

> -----Original Message-----
> From: owner-sv-bc@server.eda.org [mailto:owner-sv-bc@server.eda.org]
On
> Behalf Of Bresticker, Shalom
> Sent: Tuesday, October 31, 2006 10:23 AM
> To: stuart@sutherland-hdl.com; sv-bc@server.eda.org
> Subject: RE: [sv-bc] .name and .*
> 
> Stu,
> 
> See inside.
> 
> 
> > The .name and .* do have different rules for unconnected ports.
> >
> > The .name connection follows the same rules for unconnected ports as
> the
> > explicit named connections.  If a port is not named, it is
implicitly
> > not
> > connected.
> 
> [SB] I'm not sure you understood me. I don't refer to a port which is
> not named. I refer to the following cases:
> 
> Case1:
> 
> module p();
> p1 p1 (.name);
> endmodule
> 
> module p1(name);
> output name;
> endmodule
> 
> 
> Case2:
> 
> module p();
> p1 p1 (.*);
> endmodule
> 
> module p1(name);
> output name;
> endmodule
> 
> Note that the signal 'name' does not exist in the instantiating module
> p.
> 
> The LRM says that '.name' is the same as '.name(name)', with the
> exception that it does not create an implicit wire declaration. That
> leaves us with a reference to 'name' in the instantiating module where
p
> does not exist. On the face of it, that should cause an error.
> 
> The example shows an unconnected port connection described as
'.zero()'.
> 
> The LRM also says that
> "An implicit .* port connection is semantically equivalent to a
default
> .name port connection for every port declared in the instantiated
module
> with the exception that .* does not create a sufficient reference for
a
> wildcard import of a name from a package. A named port connection can
be
> mixed with a .* connection to override a port connection to a
different
> expression or to leave a port unconnected."
> 
> That explicitly says that the same rules apply to .name and .*.
> The named port connection referred to is of the type '.zero()', as in
> the example. That is how the term 'named port connection' is used. It
> does not mean '.zero', which would be an 'implicit .name port
> connection'.
> 
> As I said, I tested 3 implementations.
> These were the results:
> 
> Case1
> =====
> Impl. 1: No error or warning
> Impl. 2: Error
> Impl. 3: Error
> 
> Case 2
> ======
> Impl. 1: Error
> Impl. 2: Error
> Impl. 3: Warning - not connected
> 
> I don't know what the desired behavior was, but the LRM is not clear.
> 
> Regards,
> Shalom
> 
> >
> > The .* adds a rule, "A named port connection can be mixed with a .*
> > connection to override a port connection to a different expression,
or
> > to
> > leave a port unconnected." (Section 19.11.4)
> >
> > I agree that for .name, the rule should be explicitly stated, rather
> > than
> > inferred by not saying anything.  I thought there was an explicit
> rule,
> > but
> > I either imagined it, or the rule was only in an early draft or
> > proposal.
> > The feature was something we added in SV 3.0.
> >
> > Stu
> > ~~~~~~~~~~~~~~~~~~~~~~~~~
> > Stuart Sutherland
> > stuart@sutherland-hdl.com
> > +1-503-692-0898
> >
> >
> > > -----Original Message-----
> > > From: owner-sv-bc@server.eda.org
> > > [mailto:owner-sv-bc@server.eda.org] On Behalf Of Bresticker,
Shalom
> > > Sent: Monday, October 30, 2006 7:18 AM
> > > To: sv-bc@server.eda.org
> > > Subject: [sv-bc] .name and .*
> > >
> > >
> > >
> > > If .name or .* is used, and a signal with the same name does
> > > not exist in the instantiating module, should that be an
> > > error or should the port be left unconnected?
> > >
> > > The LRM is not explicit, which is a problem, but hints that
> > > in order to leave the port unconnected, you have to
> > > explicitly use a named empty port connection.
> > >
> > > In any case, I would expect the behavior to be the same for
> > > both of them.
> > >
> > > However, I tested 3 implementations, and found that only one
> > > of them gave errors in both cases, and two of them behaved
> > > differently in the two cases.
> > >
> > > Since we see that implementations have differed, this means
> > > we need to be explicit.
> > >
> > > Thanks,
> > >
> > > Shalom
> > >
> > >
> > >
> > > Shalom Bresticker
> > >
> > > Intel Jerusalem LAD DA
> > >
> > > +972 2 589-6852
> > >
> > > +972 54 721-1033
> > >
> > > I don't represent Intel
> > >
> > >
> > >
> > >
Received on Tue Oct 31 00:59:19 2006

This archive was generated by hypermail 2.1.8 : Tue Oct 31 2006 - 00:59:42 PST