RE: [sv-ac] Re: [sv-bc] Clarification request for Mantis 3233

From: Bresticker, Shalom <shalom.bresticker@intel.com>
Date: Wed Aug 17 2011 - 04:06:56 PDT

The idea is that implicit wire declarations will occur on a checker instantiation if they would occur in the same place on a module, interface, or program instantiation. As Greg pointed out, the parser does not know at this point whether the instantiated construct is a module or a checker.

That argument does not apply to a checker instantiation in a procedural context, where module, interface, and program instantiations cannot occur. Furthermore, according to the rules of implicit wire declarations, if such an implicit declaration were to occur, there would then be a wire implicitly declared within a procedural scope. However, procedural scopes are not allowed to contain wire declarations, only variable declarations.

We think this is most consistent with the language rules.

However, I think you are correct that by allowing implicit wire declarations on non-procedural declarations, it is necessary or at least desirable to say that such declarations do not occur within checkers.

All these problems occur because checkers are hybrid constructs, similar to modules, interfaces, and programs in some respects, but different in others.

Regards,
Shalom

From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of Greg Jaxon
Sent: Wednesday, August 17, 2011 12:51 AM
To: Korchemny, Dmitry
Cc: 'sv-bc (sv-bc@eda.org)'; sv-ac@eda-stds.org
Subject: [sv-ac] Re: [sv-bc] Clarification request for Mantis 3233

It should be noted that at the point where a parser is introducing implicit wires, it cannot flawlessly
distinguish modules, interfaces, checkers, programs and other "instance-like" syntax. Furthermore,
implicit wires are created for a scope by the lexically first qualified use. So without the proposal your
first example would be legal if M1 was a module and M2 was an interface, but not if the lines were
swapped. That seems pointlessly arbitrary.

On 8/16/2011 3:41 PM, Korchemny, Dmitry wrote:
Hi SV-BC,

SV-AC was requested to review Mantis 3233: implicit wire declarations should occur in instantiations of programs/interfaces also.

To do this we need to understand the rationale of this proposal.

Our understanding is that this feature is useful to specify module connectivity, e.g.,

M1 m1(a, b);
M2 m2(b, a);

It does not look that this is that useful for checkers:

C1 c1(a, ...);
M1 m1(a, ...);

If this is done for uniformity then why procedural checker instantiation is different? E.g.,

always C1 c1(a, ...);
M1 m1(a, ...);

Note, however, that the proposed definition is not going to work in case when there when a checker is instantiated in another checker:

checker C1(...);
                C2 c2(a, ...);
                C3 c3(a, ...);
                ...
endchecker

because there are no nets in checkers.

Thanks,
Dmitry

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
---------------------------------------------------------------------
Intel Israel (74) Limited
This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Wed Aug 17 04:08:42 2011

This archive was generated by hypermail 2.1.8 : Wed Aug 17 2011 - 04:09:02 PDT