RE: [sv-bc] Query regarding the usage of implicit generate block name in hierarchical reference

From: Bresticker, Shalom <shalom.bresticker@intel.com>
Date: Tue Mar 22 2011 - 04:56:51 PDT

"external interfaces" means things like VPI or a debug tool, as opposed to the SV code itself.

Regards,
Shalom

From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of Dhiraj Kumar Prasad
Sent: Tuesday, March 22, 2011 8:57 AM
To: Harpreet Singh Anand
Cc: sv-bc@eda.org; Dhiraj Kumar Prasad
Subject: Re: [sv-bc] Query regarding the usage of implicit generate block name in hierarchical reference

Hello Harpeet,

The testcase in your example is illegal.

According to LRM 1800-2009,section 23.9

"If an identifier is referenced with a hierarchical name, the path can start with a module name, interface name,
program name, checker name, instance name, task, function, named block, or named generate block."

And according to section 23.6 says

"Unnamed generate blocks are exceptions. They create branches that are visible only from within the block and
within any hierarchy instantiated by the block."

also
"Objects declared in unnamed generate blocks are also exceptions. They can be referenced by hierarchical names only from within the block and within any hierarchy instantiated by the block."

And to reference the element withing the block,no hierarchical name is required as it's directly visible.

Regards,
dhiRAj

Harpreet Singh Anand wrote:
Hi,

I have query regarding the usage of implicit generate block (created for unnamed block) in hierarchical references. The LRM, says,

"Although an unnamed generate block has no name that can be used in a hierarchical name, it needs to have a name by which external interfaces can refer to it."

My queries are:

Can we use implicit names in hierarchical references.

What does "external interfaces" mean? Is it like representing complete hierarchy and things like that

Example:

module test (input [7:0] in, input clk, output [7:0] out1);
 genvar i;
 generate
 for(i=0; i < 8; i = i+1)
 begin
                flop my_flop(in[i], clk, out1[i]);
                defparam genblk1[i].my_flop.P1 = i; // Is this usage of implicit names (genblk1) valid
 end
 endgenerate
endmodule

Thanks & Regards,
Harpreet Singh

--
This message has been scanned for viruses and
dangerous content by MailScanner<http://www.mailscanner.info/>, and is
believed to be clean.
________________________________
NOTE: This message and its attachments are intended only for the individual or
entity to which it is addressed and may contain confidential information or
forward-looking statements regarding product development.  Forward-looking
statements are subject to change at Atrenta's sole discretion and Atrenta will have
no liability for the delay or failure to deliver any product or feature mentioned in
such forward-looking statements.
--
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 Tue Mar 22 04:57:47 2011

This archive was generated by hypermail 2.1.8 : Tue Mar 22 2011 - 04:58:04 PDT