ISSUE 76

Number 76
Category errata
Synopsis 4.1.14: unclear examples of illegal concatenations
State lrmdraft
Class errata-simple
Arrival-DateJul 22 2002
Originator Shalom.Bresticker@motorola.com
Release 2001b: 4.1.14
Environment
Description

Section 4.1.14 contains the following:

Another form of concatenation is the replication operation.
The first expression shall be a non-zero, non-X and non-Z
constant expression, the second expression follows the rules
for concatenations. This example replicates "w" 4 times.

{4{w}} // This is equivalent to {w, w, w, w}
a[31:0] = {1`b1, {0{1`b0}} }; //illegal. RHS becomes {1`b1,;
a[31:0] = {1`b1, {1`bz{1`b0}} }; //illegal. RHS becomes {1`b1,;
a[31:0] = {1`b1, {1`bx{1`b0}} }; //illegal. RHS becomes {1`b1,;

The comments on the three examples of illegal concatenations
look strange.
"RHS becomes {1 b1,;" looks cut off.

I propose to just leave them as "illegal". Anyone who reads
the preceding paragraph will immediately understand the
reason. The existing comments are just confusing.

I also propose to change "non-zero" to "positive".

I propose the following wording:

Another form of concatenation is the replication operation.
The first expression shall be a positive, non-X and non-Z
constant expression, the second expression follows the rules
for concatenations.

The following example replicates "w" 4 times.

{4{w}} // This is equivalent to {w, w, w, w}

The following examples show illegal concatenations.

a[31:0] = {1`b1, { 0{1`b0}} }; //illegal
a[31:0] = {1`b1, {1`bz{1`b0}} }; //illegal
a[31:0] = {1`b1, {1`bx{1`b0}} }; //illegal
Fix
In 4.1.14,

CHANGE FROM:

Another form of concatenation is the replication operation.
The first expression shall be a non-zero, non-X and non-Z
constant expression, the second expression follows the rules
for concatenations. This example replicates "w" 4 times.

{4{w}} // This is equivalent to {w, w, w, w}
a[31:0] = {1'b1, {0{1'b0}} }; //illegal. RHS becomes {1'b1,;
a[31:0] = {1'b1, {1'bz{1'b0}} }; //illegal. RHS becomes {1'b1,;
a[31:0] = {1'b1, {1'bx{1'b0}} }; //illegal. RHS becomes {1'b1,;


TO:


Another form of concatenation is the replication operation.
The first expression shall be a positive, non-X and non-Z
constant expression, the second expression follows the rules
for concatenations.

The following example replicates "w" 4 times.

{4{w}} // This is equivalent to {w, w, w, w} 


The following examples show illegal concatenations.

{   0{1'b0}}  //illegal 
{1'bz{1'b0}}  //illegal 
{1'bx{1'b0}}  //illegal 

Audit-Trail

From: Shalom Bresticker <Shalom.Bresticker@motorola.com>
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/76: PROPOSAL - 4.1.14: unclear examples of illegal
concatenations
Date: Mon, 31 Mar 2003 10:51:31 +0300

In fixing #76, I wrote

"The following examples show illegal replications."

instead of

"The following examples show illegal concatenations."


Unformatted


Hosted by Boyd Technology