[sv-bc] Re: Configs Intent - was: potential command line option

From: Brad Pierce <Brad.Pierce_at_.....>
Date: Wed Apr 20 2005 - 20:58:51 PDT
In SystemVerilog these semicolons are optional.

   http://www.eda.org/sv/Changes_draft6/LRM_Changes_A_BNF.html

-- Brad

-----Original Message-----
From: owner-btf@boyd.com [mailto:owner-btf@boyd.com]On Behalf Of
Shalom.Bresticker@freescale.com
Sent: Wednesday, April 20, 2005 8:22 PM
To: Clifford E. Cummings
Cc: btf@boyd.com; etf@boyd.com; sv-bc@eda.org; sv-ec@eda.org
Subject: Re: Configs Intent - was: potential command line option


Regarding the semicolons at the end of the statements, there is already an
ETF
issue on this. In fact, I think there are two. I think there is one issue
(# 372 ?), which lists this as one of several config issues, and I think
there
is another one ( 5xx ? 501 ?) which is dedicated to this issue.

Shalom


On Wed, 20 Apr 2005, Clifford E. Cummings wrote:

> Mea culpa!
>
> (1) I wrote the Verilog-2001 BNF. The intent was to allow config files
into
> the Verilog input stream and I apparently did not get that added properly
> to the BNF (aren't you glad Brad has taken over the BNF - I am!!) -
> translation: the Verilog-2001 BNF is broke if people are interpreting that
> config files cannot be read with the Verilog input stream.
>
> (2) I rallied the users to request configuration files as part of the
top-5
> at Kurt Baty's 1996 Birds-of-Feather meeting at IHDL.
> I was tired of the gosh-awful-ugly and difficult to use `uselib directives
> that we had to add to source code to specify a different simulation
> configuration. There was no way I wanted `uselib to find itself into the
> standard.
>
> (3) Myself, Kurt Baty and I believe Mac (Mike McNamara) spent almost two
> years to come up with the original proposal of some really ugly
> +command-line switches to handle different configurations. Guys like Stu
> barfed all over that idea (although I was not appreciative at the time, I
> am now glad that Stu lost his cookies over the matter!).
>
> (4) Tom Fitzpatrick, then with Cadence, donated a Cadence proposal for
> configurations that did not involve command line switches. Tom and I
> worked-on and battled-over the proposal. I prevailed in removing "views"
> until the committee could be convinced that customers really wanted views
> (made Tom plenty mad at me back then!)
>
> (5) The proposal keywords were modified to allow Verilog-VHDL co-language
> tools to recognize "configuration" as a VHDL keyword and "config" as a
> Verilog keyword. The intent was to permit reading of configuration files
in
> the Verilog input stream to remove the need for -v  -y  +libext+.v and
most
> -f command line switch dependencies (and it does!) As a user, I did not
> want (and I still really do not want) to be required to use any additional
> command line switches to read configurations. This is hinted at in section
> 13.4.4 where it notes that the config file can be specified on the command
> line.
>
> (6) I had also hoped that vendors would automatically read a lib.map file
> from the directory where compilation was invoked, so I would not have to
> specify a command line switch for all library map files (this shows up in
> Verilog-2001 section 13.2.1, 2nd paragraph). I don't think any vendors
> allow this (darn!)
>
> I have attached a few slides from my Advanced Verilog class that show how
I
> wanted configs to work. You will notice that the example names closely
> match the example names in the standard, because I used my slides to help
> write the examples in the standard.
>
> (7) As a use-model, I fully expect to keep configs in a separate file from
> the Verilog source code, but I would like configs to be part of the input
> stream. Now that I know there is an implementation that does just that,
> that would continue to be my first choice.
>
> (8) About library mapping files calling configs, I don't think we thought
> that through very well. I could support modifications that helped add
sense
> to that capability. Remember, unlike SystemVerilog where vendors have
> donated working technology and have been implementing and finding the
warts
> before we have P1800, for Verilog-2001 vendors participated to make sure
we
> had something that would be work-able if/when they decided to implement
it.
> I think there are plenty of warts in Verilog-2001 for this reason (we did
> our best to avoid problems but until there was an implementation, we could
> and did make mistakes).
>
> (9) I had a number of typos in the configs section - these should be fixed
> no matter what we do.
> TYPOS:
> Section 13.5.2 - cfg1 example - design statement is missing a ";"
> Section 13.5.2 - cfg2 example - design statement is missing a ";"
> Section 13.5.3 - cfg3 example - design statement is missing a ";"
> Section 13.5.4 - cfg4 example - design statement is missing a ";"
> Section 13.5.5 - cfg6 example - instance statement is missing a ";"
>
>
> BNF TYPOS - the BNF does not show the requirement for the ending ";" in 5
> places. I recommend putting them in the config_rule_statement production
> (all 5 ";"'s). Then update Syntax box 13-4 in section 13.3.1 with the same
> correction.
>
> A.1.2 Configuration source text
>
> config_declaration ::=
>      config config_identifier ;
>      design_statement
>      {config_rule_statement}
> endconfig
>
> design_statement ::= design { [library_identifier.]cell_identifier } ;
>
> *** Add a semi-colon after "..._clause" (5 occurrences)
> config_rule_statement ::=
>      default_clause liblist_clause
>    | inst_clause liblist_clause
>    | inst_clause use_clause
>    | cell_clause liblist_clause
>    | cell_clause use_clause
>
> default_clause ::= default
>
> inst_clause ::= instance inst_name
>
> inst_name ::= topmodule_identifier{.instance_identifier}
>
> cell_clause ::= cell [ library_identifier.]cell_identifier
>
> liblist_clause ::= liblist { library_identifier }
>
> use_clause ::= use [library_identifier.]cell_identifier[:config]
>
> =================
>
> This is what was originally intended. Now we need to figure out what we
are
> going to do to clarify or fix configs. Sorry for the mess!
>
> Regards - Cliff
>
>
> At 10:33 AM 4/20/2005, Randy Misustin wrote:
> >Hello Steven,
> >
> >Please allow me to make this a little less hypothetical:
> >    * Mentor's ModelSim has supported Verilog configurations since
version
> > 5.8, released in November of 2003. Customers have been using this
> > facility, some heavily, since it's introduction
> >    * ModelSim's implementation of configurations allows the
> > configurations to be freely mixed in with Verilog source.
> >    * Configurations are treated as first class design elements by our
> > system. They are compiled into design libraries right beside modules and
> > primitives.
> >    * Because configurations share the same parser and scanner as the
rest
> > of the Verilog source, they also inherit and can share preprocessor
`define's.
> >Clearly, what you propose doing will cause ModelSim's implementation of
> >configurations to be illegal under the new spec.
> >
> >I've tried to go back and divine from where you derive your strong
> >assertion "syntax boxes and BNF clearly specify that they cannot appear
in
> >Verilog source files". The best I could come up with is that source_text
> >in A.1.3 and library_text in A.1.1 don't grammatically derive each other.
> >Your view must therefor be that source_text cannot share a file with
> >library_text, correct? I didn't find this restriction anywhere. In fact,
> >the inclusion of the configuration keywords in a common list of keywords
> >in Appendix B would seem to support the conclusion that both grammars can
> >share a common parse.
> >
> >I also have trouble with your comment: "Allowing configs in source files
> >could create problems for any users using any tools".  I presume you're
> >speaking to the issue of the configuration keywords (?). The keywords are
> >already part of the 2001 specification. Whether you view configurations
as
> >allowable within a source file or not doesn't create the problem. The
> >problem already exists. The keywords are part of the existing 1364-2001
> >standard. I'm quite sympathetic to your motivations of wanting to limit
> >keyword explosion, but this is a bit like trying to close the barn door
> >after the horses have already left, no?
> >
> >I'm not opposed to leaving things as is in the current spec, where the
> >issue of whether the same parser can implement both parses is left tool
> >dependant, but oppose the elimination of the configuration keywords from
> >the keyword list. In the spirit of compromise, I'd be willing to consider
> >separating the two lists if we could retain the keyword, config, in the
> >Verilog source keywords. This would at least allow us to implement a
messy
> >lexical analyzer mode change based on this keyword.
> >
> >Regards,
> >   Randy Misustin
>
> ----------------------------------------------------
> Cliff Cummings - Sunburst Design, Inc.
> 14314 SW Allen Blvd., PMB 501, Beaverton, OR 97005
> Phone: 503-641-8446 / FAX: 503-641-8486
> cliffc@sunburst-design.com / www.sunburst-design.com
> Expert Verilog, SystemVerilog, Synthesis and Verification Training
>
>

--
Shalom.Bresticker @freescale.com                     Tel: +972 9  9522268
Freescale Semiconductor Israel, Ltd.                 Fax: +972 9  9522890
POB 2208, Herzlia 46120, ISRAEL                     Cell: +972 50 5441478

[ ]Freescale Internal Use Only      [ ]Freescale Confidential Proprietary
Received on Wed Apr 20 20:58:56 2005

This archive was generated by hypermail 2.1.8 : Wed Apr 20 2005 - 20:59:20 PDT