ISSUE 510

Add Proposal  Add Analysis  Edit Class, Environment, or Release
Number 510
Category errata
Synopsis 12.3: Is "module m(.p(p));" legal?
State open
Class errata-discuss
Arrival-DateDec 01 2003
Originator Shalom.Bresticker@motorola.com
Release 2001b: 12.3
Description
This is another port definition question from last year.

---------- Forwarded message ----------
Date: Tue, 13 Aug 2002 16:37:23 +0300
From: Shalom Bresticker <Shalom.Bresticker@motorola.com>

1364 allows me to define a module port in the form

module qq ( .xx(yy) ) ;

where xx will be the port name,
and yy is a signal defined within the module.

In BNF terms, this is

module qq ( .port_identifier(port_reference) ) ;

This is called an "explicit port" in 12.3.2.

My question:

Is it allowed for port_identifier to use the same name as
port_reference?

I.e., module qq ( .yy(yy) ) ;

I can't find something in 1364-1995 or 2001 which forbids it, but if I
try to do it in Verilog-XL, I get

Error! Symbol (yy) previously declared as a port name [Verilog-SPDPD]
"qq.v", 1:

I am told that NC-Verilog also rejects it, but VCS accepts it.

Looks like we need to add a clarification.

---------- Forwarded message ----------
Date: Tue, 13 Aug 2002 21:31:42 -0400
From: Anders Nordstrom <asic@sympatico.ca>

Wouldn't the name space rules disallow a declaration like:
module qq ( .yy(yy) ) ;

If the port and the signal are in the same scope then you are not allowed to
have two objects with the same name.

If it is allowed then, .yy(yy) is the same as yy since the port and the
signal has the same name and you couldn't distinguish between them so it
would make sense not to allow it.

---------- Forwarded message ----------
Date: Thu, 15 Aug 2002 09:00:02 +0300 (IDT)
From: Shalom Bresticker <Shalom.Bresticker@motorola.com>

I don't see that they are in the same name space.

The signal "(yy)" is internal to the module, accessible only from within it, or
by using a hierarchial path name.

The port ".yy" is the external name of the port, accessible only in a module
instantiation using port connection by name.


Fix

Unknown
Unformatted



Hosted by Boyd Technology