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-Date | Dec 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