>>>The LRM says that $root can be added to the front of a hiearchical name. Above is false LRM states that: hierarchical_identifier ::= [ $root . ] { identifier constant_bit_select . } identifier And - Braces ( { } ) enclose items that can be repeated zero or more times. From both above : hierarchical_identifier ::= [ $root . ] identifier Is allowed It would be as you said if we change the definition to: hierarchical_identifier ::= [ $root . ] identifier constant_bit_select . { identifier constant_bit_select . } identifier DANiel -----Original Message----- From: Steven Sharp [mailto:sharp@cadence.com] Sent: Tuesday, November 06, 2007 7:43 PM To: gordonv@model.com; danielm@aldec.com.pl; Mark.Hartoog@synopsys.com Cc: shalom.bresticker@intel.com; sv-ec@eda.org Subject: RE: [sv-ec] $root vs $unit >As Gord indicates $root.<typeName> is illegal in P1800. The illegality goes beyond the fact that hierarchical names are not allowed in type references. It would also be illegal to have $root.<varName>. The LRM says that $root can be added to the front of a hiearchical name. But a hierarchical name must start with a scope (which would have to be a top-level instance in this case). I don't think I have ever seen this pointed out before, but it follows from the LRM text, and neatly avoids a problem. As Shalom pointed out, $root.<identifier> could be ambiguous if the same identifier name appears in multiple $units. However, this is not a legal hierarchical name unless <identifier> is a top-level instance. Since top-level instance names must be unique, the problem is avoided. So the old meaning of $root to talk about things in the top-level scope is completely gone, replaced by $unit. Steven Sharp sharp@cadence.com -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Tue, 22 Jan 2008 17:10:24 +0100
This archive was generated by hypermail 2.1.8 : Tue Jan 22 2008 - 08:23:23 PST