ISSUE 12

Number 12
Category errata
Synopsis hierarchical parameter identifier
State lrmdraft
Class errata-discuss
Arrival-DateAug 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
;

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--

Unformatted


Hosted by Boyd Technology