Doug, But, Dave's question is still valid. If a package is (by some unspecified tool dependent mechanism) included in a design but no element from the package is imported either via an import statement or using the package-qualified name then should the simulator even allocate and execute the declaration initializers (which may contain functions with additional side effects)? And, if no data from a package is ever used and no function from the package is ever called, should the simulator even call the corresponding final block (assuming we allow that). So is this behavior just an optimization, or something that the LRM should address. Arturo -----Original Message----- From: owner-sv-ec@eda.org [mailto:owner-sv-ec@eda.org] On Behalf Of Warmke, Doug Sent: Thursday, February 23, 2006 4:30 PM To: Rich, Dave; sv-bc@eda.org; sv-ec@eda.org Subject: RE: [sv-ec] RE: [sv-bc] Can a function contain a fork/join/any/none? Dave, I would like the answer to your question to be "yes". And I think this should be specified in the LRM. That way folks could count on using VDA's in packages as a way of getting singleton initialization code to run. SV currently lacks a way to run singleton destruction code based in packages. See http://www.eda.org/svdb/bug_view_page.php?bug_id=0000878, which expresses the possibility of allowing final blocks to be declared in packages for this purpose. I also thought of Francoise's refinement points, but she beat me to the punch on those. Regards, Doug > -----Original Message----- > From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On > Behalf Of Rich, Dave > Sent: Thursday, February 23, 2006 3:14 PM > To: Steven Sharp; sv-ec@eda.org; sv-bc@eda.org; > Arturo.Salz@synopsys.com > Subject: RE: [sv-ec] RE: [sv-bc] Can a function contain a > fork/join/any/none? > > This raises the question "Does a package exist if no one imports it?" > Having static space allocated by an unused package is not usually an > issue, but if it creates threads, I can see that as being a problem. I > vaguely remember this as the reason that modules and continuous > assignments were not allowed in packages. > > > -----Original Message----- > > From: owner-sv-bc@eda.org [mailto:owner-sv-bc@eda.org] On Behalf Of > Steven > > Sharp > > Sent: Thursday, February 23, 2006 12:24 PM > > To: sharp@cadence.com; sv-ec@eda.org; sv-bc@eda.org; > > Arturo.Salz@synopsys.com > > Subject: RE: [sv-ec] RE: [sv-bc] Can a function contain a > > fork/join/any/none? > > > > > > >[Arturo] > > >My point is that all of these issues exist in other > contexts and the > > >tools must be able to deal with them. By extension, these do not > > >represent any fundamental or implementation problem. > > > > But Dave has pointed out that this allows some things that are not > > possible with functions triggering other processes, or with tasks. > > In particular, it allows creating a thread whose parent is a > > variable initialization. This in turn means it has allowed root > > threads to be created in a package, which could not happen before. > > > > I don't know what specific problems Dave is concerned this > will cause. > > > > Steven Sharp > > sharp@cadence.com > > >Received on Fri Feb 24 01:19:27 2006
This archive was generated by hypermail 2.1.8 : Fri Feb 24 2006 - 01:21:26 PST