ISSUE 209

Number 209
Category errata
Synopsis 12.4, A.9.3: simple, escaped hierarchical_identifiers difference
State lrmdraft
Class errata-discuss
Arrival-DateNov 26 2002
Originator Shalom.Bresticker@motorola.com
Release 2001b: 12.4 (Syntax 12-7), A.9.3, A.9.4
Environment
Description
There is an incorrect difference between
simple_hierarchical_identifier and
escaped_hierarchical_identifier.

simple_hierarchical_identifier may end with an
escaped_identifier,
but that is an identifier without a range index.

escaped_hierarchical_identifier may end with an
escaped_hierarchical_branch,
which allows a range index.

(By the way, this is one place where real numbers and
even based numbers are explicitly excluded.)

hierarchical_identifier ::=
simple_hierarchical_identifier
| escaped_hierarchical_identifier

simple_hierarchical_identifier ::=
simple_hierarchical_branch [ .escaped_identifier ]

escaped_hierarchical_identifier ::=
escaped_hierarchical_branch
{ .simple_hierarchical_branch |
.escaped_hierarchical_branch }

simple_hierarchical_branch ::=
simple_identifier [ [ unsigned_number ] ]
[ { .simple_identifier [ [ unsigned_number ] ] } ]

escaped_hierarchical_branch ::=
escaped_identifier [ [ unsigned_number ] ]
[ { .escaped_identifier [ [ unsigned_number ] ] } ]

simple_identifier ::= [ a-zA-Z_ ] { [ a-zA-Z0-9_$ ] }

escaped_identifier ::=
\ {Any_ASCII_character_except_white_space} white_space
Fix
The original issue is resolved by going back to basic
elements and redefining hierarchical_identifier more simply.

DELETE:

simple_hierarchical_identifier AND
escaped_hierarchical_identifier in Syntax 12-7 and A.9.3

simple_hierarchical_branch AND
escaped_hierarchical_branch in Syntax 12-7 and A.9.4


REPLACE hierarchical_identifier in Syntax 12-7 and A.9.3 with the following:

hierarchical_identifier ::=
{ identifier [ "[" constant_expression "]" ] "." } identifier

That is, a hierarchical_identifier is composed of an identifier optionally
preceded by a sequence of zero or more of the following: an identifier, one
optional constant (integer) index, and a period.

Each identifier part of an hierarchical_identifier can be either a
simple_identifier or an escaped_identifier, and there is no need to
distinguish between simple and escaped hierarchical_identifiers or
simple and escaped hierarchical_branches.

This proposal also assumes the changes proposed in issue #257
and also supercedes the proposal in issue #208.

Audit-Trail
From: Shalom.Bresticker@motorola.com
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/209: hierarchical_identifier
Date: Tue, 28 Oct 2003 12:28:21 +0200 (IST)

Hi,

With respect to the disable_statement form in A.6.5 as

"disable" hierarchical_block_identifier ";"

I wrote in the attached mail below that

"in the disable statement, we would write hierarchical_block_identifier
with an optional index (only one,not multi-dimensional, and with
a constant value)."

But now I think we do not need to allow indexing of the block identifier
in the disable statement.

My reasoning is that we cannot create an array of named blocks.
The closest thing to that is an array of scopes created by a generate-loop.
But such scopes are not named parallel or sequential blocks.
Such scopes can themselves contain named blocks, but that would be
a hierarchical level below that of the generated scope array.

Comments?

Thanks,
Shalom


On Sun, 2 Feb 2003, Shalom Bresticker wrote:

> Date: Sun, 02 Feb 2003 14:51:59 +0200
> From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
> To: Dennis Marsa <drm@xilinx.com>
> Cc: etf@boyd.com
> Subject: Re: hierarchical_identifier
>
> Dennis Marsa wrote:
>
> > > > > {identifier ["["unsigned_number"]"] .} identifier
> >
> > For the purposes of the BNF, I think this is OK.
> >
> > However, looking at this again, this definition requires that a
> > hierarchical_identifier end with an identifier. That is, it cannot
> > end with an index operation: a.b[1].
> >
> > The current set of rules for hierarchical_identifier seem to allow it
> > to end with an index operation.
>
> You are correct about this.
>
> However, my analysis of the BNF shows that the only use of hierarchical_identifier as a scope
> and not as a net/variable/event is for hierarchical_block_identifier, which itself is only
> used in one place, in the disable statement.
>
> So what I want to do is define hierarchical_identifier like all other identifiers in the
> BNF (after we approved #200),
> that is, to end with an identifier name, without indexes. Then, where we need to add optional
> indexes, we do so according to the need. So in the disable statement, we would write
> hierarchical_block_identifier with an optional index (only one,not multi-dimensional, and with
> a constant value).
>
> I think this makes the BNF much more consistent and unambiguous.

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


Fix replaced by Shalom.Bresticker@motorola.com on Wed Oct 29 01:07:04 2003
The original issue is resolved by going back to basic
elements and redefining hierarchical_identifier more simply.

DELETE:

simple_hierarchical_identifier AND
escaped_hierarchical_identifier in Syntax 12-7 and A.9.3

simple_hierarchical_branch AND
escaped_hierarchical_branch in Syntax 12-7 and A.9.4


REPLACE hierarchical_identifier in Syntax 12-7 and A.9.3 with the following:

hierarchical_identifier ::=
{ identifier [ "[" constant_expression "]" ] "." } identifier

That is, a hierarchical_identifier is composed of an identifier optionally
preceded by a sequence of zero or more of the following: an identifier, one
optional constant (integer) index, and a period.

Each identifier part of an hierarchical_identifier can be either a
simple_identifier or an escaped_identifier, and there is no need to
distinguish between simple and escaped hierarchical_identifiers or
simple and escaped hierarchical_branches.

This proposal also assumes the changes proposed in issue #257
and also supercedes the proposal in issue #208.



Unformatted


Hosted by Boyd Technology