Re: [sv-ac] New mantis item #1769 - elaboration-time assert and error message tasks

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Mon Apr 16 2007 - 22:42:23 PDT
Stu,

The for(genvar I; ...) syntax is the topic of

   http://www.eda-stds.org/svdb/bug_view_page.php?bug_id=0000898

-- Brad
   

-----Original Message-----
From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On Behalf Of
Eduard Cerny
Sent: Monday, April 16, 2007 6:29 PM
To: stuart@sutherland-hdl.com; Eduard Cerny; Lisa Piper;
sv-ac@eda-stds.org
Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time assert and
error message tasks

Hello Stu,

please see my comments below.

ed
 

> -----Original Message-----
> From: Stuart Sutherland [mailto:stuart@sutherland-hdl.com]
> Sent: Monday, April 16, 2007 8:48 PM
> To: 'Eduard Cerny'; 'Lisa Piper'; sv-ac@eda-stds.org
> Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time assert 
> and error message tasks
> 
> Ed,
> 
> I like this feature.  Some minor comments:
> 
> 1) The first code example has a typo, the "m%" should be "%m".:
> 
>    else $error("Parameter N = %0d is out of valid range in module 
> instance m%", N);
> 
> Also the code wraps in an awkward place.  Can we shorten the message 
> to fit on one line?

I will change that.

> 
> 2) In the second example with generate, you have:
> 
>    for (genvar i = 0; i < $bits(vect); i++) begin : Loop
> 
> I don't have time to research this at the moment, but please double 
> check that genvar can be declared as part of the for-loop.  The 
> declaration within the loop is an automatic variable, and I believe 
> genvars need to be static.

I believe that this is correct. See, e.g., page 537 of the merged LRM.

> 
> 3) In the third paragraph, you have:
> 
>   "If either of the elaboration-action blocks is omitted the compiler 
> may issue a default message..."
> 
> The "may" means issuing a message is completely optional, and left up 
> to the implementation.  Is this what you intended?  Personally, I 
> would expect that a tool "shall" issue a default message.

I thought it could be optional, but I can change it to "shall exectute
$error with a default message."

> 
> 4) I don't understand what is meant by the fourth paragraph
> 
>    if assert is missing in front of a pass_elaboration_action it is 
> equivalent to writing
>    assert(1'b1) pass_elaboration_action;
> 
> It sounds like it is ok to leave out the "assert" keyword.  
> Is that what you
> intended?  It would help to show the actual code before show the code 
> that it is equivalent to.

Yes, this is the case. The first example has this situation. Should I
add something?



>  
> Stu
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> Stuart Sutherland
> Sutherland HDL, Inc.
> stuart@sutherland-hdl.com
> 503-692-0898
>  
> 
> > -----Original Message-----
> > From: owner-sv-ac@server.eda.org
> > [mailto:owner-sv-ac@server.eda.org] On Behalf Of Eduard Cerny
> > Sent: Monday, April 16, 2007 7:28 AM
> > To: Lisa Piper; sv-ac@server.eda-stds.org
> > Cc: Eduard Cerny
> > Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time assert

> > and error message tasks
> > 
> >  Hello,
> > 
> > I tried to take into account all the suggestions... Please see the 
> > attached proposal, also deposited on mantis.
> > 
> > Best regards,
> > 
> > ed
> > 
> > > -----Original Message-----
> > > From: Lisa Piper [mailto:piper@cadence.com]
> > > Sent: Friday, April 06, 2007 5:58 PM
> > > To: Eduard Cerny
> > > Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time 
> > > assert and error message tasks
> > > 
> > > Hi Ed,
> > > 
> > > I've talked to a few people around here and we also don't see a 
> > > problem with using the existing language.  A tool could choose to 
> > > evaluate immediate assertions that contain only constants at elab
> > time without
> > > the need for the additional constructs in the language.  
> > > 
> > > Lisa
> > > 
> > > -----Original Message-----
> > > From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com]
> > > Sent: Friday, April 06, 2007 12:02 PM
> > > To: Lisa Piper; Eduard Cerny
> > > Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time 
> > > assert and error message tasks
> > > 
> > > To be frank I did not like either of the prefixes. Dave or Brad 
> > > suggested to use the exiting names, e.g., $error, and if
> > they are left
> > > standing outside procedural cotext after elaboration then
> > execute them
> > > immediately. I contered by saying that they have more
> > restrictions on
> > > the arguments, but we could do that with a note that in this 
> > > usage, only constant_expressions can be used.
> > > 
> > > ed
> > > 
> > > > -----Original Message-----
> > > > From: Lisa Piper [mailto:piper@cadence.com]
> > > > Sent: Friday, April 06, 2007 10:42 AM
> > > > To: Eduard Cerny
> > > > Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time 
> > > > assert and error message tasks
> > > > 
> > > > How about $elab_..
> > > > 
> > > > Lisa
> > > > 
> > > > -----Original Message-----
> > > > From: Eduard Cerny [mailto:Eduard.Cerny@synopsys.com]
> > > > Sent: Friday, April 06, 2007 9:36 AM
> > > > To: Lisa Piper; Eduard Cerny
> > > > Cc: sv-ac@eda-stds.org
> > > > Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time 
> > > > assert and error message tasks
> > > > 
> > > > Hi Lisa,
> > > > 
> > > > You are right, we should not assume "let", I will
> change the text
> > > > accordingly. 
> > > > 
> > > > About the names - what do you suggest? 
> > > > 
> > > > ed
> > > > 
> > > > > -----Original Message-----
> > > > > From: Lisa Piper [mailto:piper@cadence.com]
> > > > > Sent: Friday, April 06, 2007 9:23 AM
> > > > > To: Eduard Cerny
> > > > > Cc: sv-ac@eda-stds.org
> > > > > Subject: RE: [sv-ac] New mantis item #1769 - elaboration-time 
> > > > > assert and error message tasks
> > > > > 
> > > > > Hi Ed,
> > > > > 
> > > > > In this proposal, you should not assume the let_declaration 
> > > > > exists yet.
> > > > > It appears twice in the syntax section. I also think it would 
> > > > > be good to show the example of 1620.
> > > > > 
> > > > > I see compile and elaboration as two distinct steps. This says

> > > > > it is an elaboration-time check, but the names of the system
> > tasks tend to
> > > > > suggest compile-time ($comp_...).  Why is this?
> > > > > 
> > > > > Lisa
> > > > > 
> > > > > -----Original Message-----
> > > > > From: owner-sv-ac@eda.org [mailto:owner-sv-ac@eda.org] On
> > > Behalf Of
> > > > > Eduard Cerny
> > > > > Sent: Thursday, March 29, 2007 10:10 AM
> > > > > To: sv-ac@eda-stds.org
> > > > > Subject: [sv-ac] New mantis item #1769 - elaboration-time
> > > assert and
> > > > > error message tasks
> > > > > 
> > > > > Hello,
> > > > > 
> > > > > I have created a new mantis item and deposited a proposal for 
> > > > > elaboration-time assertions and error tasks. Attached
> here too.
> > > > > 
> > > > > Best regards,
> > > > > ed
> > > > > 
> > > > > --
> > > > > This message has been scanned for viruses and dangerous 
> > > > > content by MailScanner, and is believed to be clean.
> > > > > 
> > > > > 
> > > > 
> > > 
> > 
> > --
> > This message has been scanned for viruses and dangerous content by 
> > MailScanner, and is believed to be clean.
> > 
> > 
> 
> 
> 

--
This message has been scanned for viruses and dangerous content by
MailScanner, and is believed to be clean.



-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon Apr 16 22:44:11 2007

This archive was generated by hypermail 2.1.8 : Mon Apr 16 2007 - 22:44:38 PDT