Number | 12
|
Category | errata
|
Synopsis | hierarchical parameter identifier
|
State | lrmdraft
|
Class | errata-discuss
|
Arrival-Date | Aug 09 2001
|
Originator | Stefen Boyd <stefen@boyd.com>
|
Release | 2001b, 12.1 (Syntax 12-1), A.1.5, A.2.3, A.2.4, A.9.3
|
Environment |
|
Description |
--=====================_710413770==_.ALT Content-Type: text/plain; charset="us-ascii"; format=flowed Looks like we need a hierarchical parameter identifier. IS: param_assignment ::= parameter_identifier = constant_expression Proposed: param_assignment ::= hierarchical_parameter_identifier = constant_expression but we'll have to define hierarchical_parameter_identifier. Looks like this was also broken in 1364-1995. --=====================_710413770==_.ALT Content-Type: text/html; charset="us-ascii" Looks like we need a hierarchical parameter identifier. IS: <font face="Courier New, Courier">param_assignment ::= parameter_identifier <font face="Courier New, Courier">= <font face="Courier New, Courier">constant_expression Proposed: param_assignment ::= hierarchical_parameter_identifier = constant_expression but we'll have to define hierarchical_parameter_identifier. Looks like this was also broken in 1364-1995. --=====================_710413770==_.ALT-- |
Fix |
The BNF of a defparam statement is: parameter_override ::= defparam list_of_param_assignments ; list_of_param_assignments ::= param_assignment {, param_assignment } param_assignment ::= parameter_identifier = constant_expression The problem is that this does not allow defparam with hierarchical parameter identifiers. The proposed fix is: 1. Change parameter_override to parameter_override ::= defparam list_of_defparam_assignments ; 2. Add list_of_defparam_assignments ::= defparam_assignment { ',' defparam_assignment } defparam_assignment ::= hierarchical_parameter_identifier = constant_expression hierarchical_parameter_identifier ::= hierarchical_identifier This affects Syntax 12-1 in 12.1, A.1.5, A.2.3 (list_of_defparam_assignments will go there), A.2.4 (defparam_assignment will go there), and A.9.3 (hierarchical_parameter_identifier will go there). |
Audit-Trail |
From: Dennis Marsa <drm@xilinx.com> To: btf-bugs@boyd.com Cc: btf@boyd.com Subject: Re: errata/12: hierarchical parameter identifier Date: Thu, 09 Aug 2001 16:09:57 -0600 Stefen Boyd wrote: > Looks like we need a hierarchical parameter identifier. > > IS: > param_assignment ::= parameter_identifier = constant_expression > > Proposed: > param_assignment ::= hierarchical_parameter_identifier = constant_expression > > but we'll have to define hierarchical_parameter_identifier. > > Looks like this was also broken in 1364-1995. The above change would allow: parameter a.b.c = 1; localparam a.b.c = 1; as well as the intended: defparam a.b.c = 1; since param_assignment rule is reachable from the parameter_declaration and local_parameter_declaration rules. How about: - leave "param_assignment" as is. - add new rules: defparam_assignment ::= hierarchical_parameter_identifier = constant_expression list_of_defparam_assignments ::= defparam_assignment { , defparam_assignment } - change: parameter_override ::= "defparam" list_of_param_assignments to: parameter_override ::= "defparam" list_of_defparam_assignments Dennis Marsa Xilinx, Inc. From: Michael McNamara <mac@verisity.com> To: btf-bugs@boyd.com Cc: btf@boyd.com Subject: RE: errata/12: hierarchical parameter identifier Date: Thu, 9 Aug 2001 15:41:22 -0700 Stefen Boyd writes: > Precedence: bulk > > > > >Number: 12 > >Category: errata > >Originator: Stefen Boyd <stefen@boyd.com> > >Description: > > --=====================_710413770==_.ALT > Content-Type: text/plain; charset="us-ascii"; format=flowed > > Looks like we need a hierarchical parameter identifier. > > IS: > param_assignment ::= parameter_identifier = constant_expression > > Proposed: > param_assignment ::= hierarchical_parameter_identifier = constant_expression > > but we'll have to define hierarchical_parameter_identifier. > > Looks like this was also broken in 1364-1995. This isn't correct, as it would allow module foo () ; parameter top.foo.bar = 27; endmodule because both defparam and parameter share list_of_parameter_assignments Instead we need defparam_statement := defparam list_of_defparam_statements list_of_defparam_statements := list_of_defparam_statements, defparam_assignment defparam_assignment defparam_assignment := identifier = constant_expression -mac From: Stefen Boyd <stefen@boyd.com> To: btf-bugs@boyd.com Cc: Subject: Re: errata/12: hierarchical parameter identifier Date: Thu, 09 Aug 2001 17:25:34 -0700 At 03:20 PM 8/9/2001 -0700, Dennis Marsa wrote: > The above change would allow: > > parameter a.b.c = 1; > localparam a.b.c = 1; > > as well as the intended: > > defparam a.b.c = 1; > thanks Dennis and Mac... I overlooked that. > since param_assignment rule is reachable from the parameter_declaration and > local_parameter_declaration rules. > > How about: > > - leave "param_assignment" as is. > > - add new rules: > defparam_assignment ::= hierarchical_parameter_identifier = > constant_expression > list_of_defparam_assignments ::= defparam_assignment { , > defparam_assignment } > > - change: > parameter_override ::= "defparam" list_of_param_assignments > > to: > parameter_override ::= "defparam" list_of_defparam_assignments > This looks better... we'll still have to define hierarchical_parameter_identifier. Stefen -------------------- Stefen Boyd Boyd Technology, Inc. stefen@BoydTechInc.com (408)739-BOYD www.BoydTechInc.com (408)739-1402 (fax) From: Shalom Bresticker <Shalom.Bresticker@motorola.com> To: btf-bugs@boyd.com Cc: Subject: Re: errata/12: hierarchical parameter identifier Date: Mon, 21 Oct 2002 16:28:37 +0200 >Category: errata >Confidential: no >Originator: Shalom Bresticker <Shalom.Bresticker@motorola.com> >Release: 2001b >Class: TBD >Description: --------------43DBE8B9856C28D7D5A5B9B1 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I would like to summarize errata/12 and make a firm proposal for a fix: The BNF of a defparam statement is: parameter_override ::= defparam list_of_param_assignments ; list_of_param_assignments ::=param_assignment {,param_assignment } param_assignment ::=parameter_identifier =constant_expression The problem is that this does not allow defparam with hierarchical parameter identifiers. The proposed fix is: 1. Change parameter_override to parameter_override ::= defparam list_of_defparam_assignments ; 2. Add list_of_defparam_assignments ::= defparam_assignment { , defparam_assignment } defparam_assignment ::= hierarchical_parameter_identifier = constant_expression hierarchical_parameter_identifier ::= hierarchical_identifier This affects Syntax 12-1 in 12.1, A.1.5, A.2.3 (list_of_defparam_assignments will go there), A.2.4 (defparam_assignment will go there), and A.9.3 (hierarchical_parameter_identifier will go there). Shalom -- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 "The devil is in the details." --------------43DBE8B9856C28D7D5A5B9B1 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> I would like to summarize errata/12 and make a firm proposal for a fix: The BNF of a defparam statement is:
parameter_override ::= defparam list_of_param_assignments The problem is that this does not allow defparam with hierarchical parameter identifiers. The proposed fix is:
1. Change parameter_override to
parameter_override ::= defparam list_of_defparam_assignments 2. Add list_of_defparam_assignments ::= defparam_assignment { , This affects Syntax 12-1 in 12.1, A.1.5, A.2.3 (list_of_defparam_assignments will go there), A.2.4 (defparam_assignment will go there), and A.9.3 (hierarchical_parameter_identifier will go there). Shalom
-- Shalom Bresticker Shalom.Bresticker@motorola.com Design & Reuse Methodology Tel: +972 9 9522268 Motorola Semiconductor Israel, Ltd. Fax: +972 9 9522890 POB 2208, Herzlia 46120, ISRAEL Cell: +972 50 441478 "The devil is in the details." --------------43DBE8B9856C28D7D5A5B9B1-- |
Unformatted |
|
Hosted by Boyd Technology