ISSUE 127

Number 127
Category errata
Synopsis 9.7.5: 4th paragraph - pp.140-141
State lrmdraft
Class errata-discuss
Arrival-DateSep 26 2002
Originator Shalom.Bresticker@motorola.com
Release 2001a,b: 9.7.5
Environment
Description
This was reported by Cliff to IEEE on Oct 10, 2001:

"(This was a requested correction that was sent to Yatin on 04/25/2001 to be
changed in Draft 6 before it was sent to the IEEE. The following replacement
provides critical clarification on how the @* implicit event_expression list
works)

REPLACE 4th paragraph:
Nets and variables which appear on the right hand side of assignments, in
function and task calls, or case and conditional expressions
shall all be included by these rules.

WITH:
Nets and variables which appear on the right hand side of assignments, in
function and task calls, in case and conditional expressions,
as an index variable on the left hand side of assignments
or as variables in case item expressions
shall all be included by these rules."


Add Examples 5 and 6 just before 9.7.6:

Example 5

always @* begin // same as @(a or en)
y = 8'hff ;
y[a] = !en ;
end


Example 6

always @* begin // same as @(state or go or ws)
next = 4'b0 ;
case (1'b1)
state[IDLE]: if (go) next[READ] = 1'b1 ;
else next[IDLE] = 1'b1 ;
state[READ]: next[DLY ] = 1'b1 ;
state[DLY ]: if (!ws) next[DONE] = 1'b1 ;
else next[READ] = 1'b1 ;
state[DONE]: next[IDLE] = 1'b1 ;
endcase
end

Fix
In 9.7.5, change the 4th paragraph from

"Nets and variables which appear on the right hand
side of assignments, in function and task calls, or
case and conditional expressions shall all be included
by these rules."

to

"Nets and variables which appear on the right-hand
side of assignments, in function and task calls,
in case and conditional expressions, as an index
variable on the left-hand side of assignments or
as variables in case item expressions shall all be
included by these rules."


And insert the following Examples 5 and 6 just
before 9.7.6, indenting as appropriate,
bolding the keywords and italicizing
"Example 5" and "Example 6":

Example 5

always @* begin // same as @(a or en)
y = 8'hff ;
y[a] = !en ;
end


Example 6

always @* begin // same as @(state or go or ws)
next = 4'b0 ;
case (1'b1)
state[IDLE]: if (go) next[READ] = 1'b1 ;
else next[IDLE] = 1'b1 ;
state[READ]: next[DLY ] = 1'b1 ;
state[DLY ]: if (!ws) next[DONE] = 1'b1 ;
else next[READ] = 1'b1 ;
state[DONE]: next[IDLE] = 1'b1 ;
endcase
end
Audit-Trail

From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/127: 9.7.5 - 4th paragraph - pp.140-141
Date: Tue, 26 Nov 2002 17:47:13 +0200

In 2001b, need to fix general indentation, and font type and bolding of "if"
keywords.

> Example 6
>
> always @* begin // same as @(state or go or ws)
> next = 4'b0 ;
> case (1'b1)
> state[IDLE]: if (go) next[READ] = 1'b1 ;
> else next[IDLE] = 1'b1 ;
> state[READ]: next[DLY ] = 1'b1 ;
> state[DLY ]: if (!ws) next[DONE] = 1'b1 ;
> else next[READ] = 1'b1 ;
> state[DONE]: next[IDLE] = 1'b1 ;
> endcase
> end

Unformatted


Hosted by Boyd Technology