ISSUE 227

Add Proposal  Add Analysis  Edit Class, Environment, or Release
Number 227
Category errata
Synopsis task/function port lists and internal block item declarations
State open
Class errata-discuss
Arrival-DateDec 23 2002
Originator "Brad Pierce" <Brad.Pierce@synopsys.com>
Release 2001b
Environment
204,227,233,234,292,332,345,452
Description
If a task port is declared in a task_port_list, is it legal
to also declare it in a block item declaration within the body
of the task?

In 12.3.4, in the context of lists of module port declarations,
the LRM says --

"Each declared port provides the complete information about
the port. The port s direction, width, net, or variable type,
and whether the port is signed or unsigned is completely
described."

so it should be an illegal redeclaration of such a port to declare
it again in a block item declaration. (Is that a correct interpretation?)

Does that also apply to lists of function ports and task ports?
If so, where is that stated in the standard? If not, what is
the motivation for the difference?

-- Brad
Fix
DELETED PROPOSAL AS NOT SOLVING THE ORIGINAL ISSUE

Issue should move back to Open state.
Audit-Trail
From: "James A. Markevitch" <jam@magic.com>
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/227: task/function port lists and internal block item declarations
Date: Sun, 30 Nov 2003 17:10:50 -0800 (PST)

The comments below are intended to discuss legal syntax. Once that has
been generally agreed upon, I will write the proposed changes to the text.

> If a task port is declared in a task_port_list, is it legal
> to also declare it in a block item declaration within the body
> of the task?

It is illegal.

> In 12.3.4, in the context of lists of module port declarations,
> the LRM says --
>
> "Each declared port provides the complete information about
> the port. The port s direction, width, net, or variable type,
> and whether the port is signed or unsigned is completely
> described."
>
> so it should be an illegal redeclaration of such a port to declare
> it again in a block item declaration. (Is that a correct interpretation?)

Correct.

> Does that also apply to lists of function ports and task ports?
> If so, where is that stated in the standard? If not, what is
> the motivation for the difference?

Yes, task/function port declarations should have the same rules applied
to them as module port declarations. In particular, they can either
be ANSI C-like, or they can be the old type. If ANSI C-like, then they
cannot be redeclared in a block item declaration.

> -- Brad

James Markevitch
From: Stefen Boyd <stefen@boyd.com>
To: etf-bugs@boyd.com
Cc:
Subject: Re: errata/227: task/function port lists and internal block
item declarations
Date: Mon, 01 Dec 2003 11:49:59 -0800

forwarded from "Jayaram Bhasker" <JBhasker@eSilicon.com>:

>Just a suggestion:
>
> >> be ANSI C-like, or they can be the old type. If ANSI C-like, then they
>
>There should be a better name than "ANSI C-like" since it is not. How about
>"port inline declaration style"? The "old type" can be called "port list
>style".
>
>- bhasker
>
>------
>J. Bhasker, eSilicon Corp
>1605 N. Cedar Crest Blvd, Ste 615, Allentown, PA 18104
>jbhasker@esilicon.com, 610.439.6831, 610.770.9634(fax)
>
>
>
>-----Original Message-----
>From: James A. Markevitch [mailto:jam@magic.com]
>Sent: Sunday, November 30, 2003 8:10 PM
>To: etf-bugs@boyd.com
>Subject: errata/227: Re: errata/227: task/function port lists and
>internal block item declarations
>
>
>The following reply was made to PR errata/227; it has been noted by GNATS.
>
>From: "James A. Markevitch" <jam@magic.com>
>To: etf-bugs@boyd.com
>Cc:
>Subject: Re: errata/227: task/function port lists and internal block item
>declarations
>Date: Sun, 30 Nov 2003 17:10:50 -0800 (PST)
>
> The comments below are intended to discuss legal syntax. Once that has
> been generally agreed upon, I will write the proposed changes to the text.
>
> > If a task port is declared in a task_port_list, is it legal
> > to also declare it in a block item declaration within the body
> > of the task?
>
> It is illegal.
>
> > In 12.3.4, in the context of lists of module port declarations,
> > the LRM says --
> >
> > "Each declared port provides the complete information about
> > the port. The port s direction, width, net, or variable type,
> > and whether the port is signed or unsigned is completely
> > described."
> >
> > so it should be an illegal redeclaration of such a port to declare
> > it again in a block item declaration. (Is that a correct interpretation?)
>
> Correct.
>
> > Does that also apply to lists of function ports and task ports?
> > If so, where is that stated in the standard? If not, what is
> > the motivation for the difference?
>
> Yes, task/function port declarations should have the same rules applied
> to them as module port declarations. In particular, they can either
> be ANSI C-like, or they can be the old type. If ANSI C-like, then they
> cannot be redeclared in a block item declaration.
>
> > -- Brad
>
> James Markevitch

--------------------
Stefen Boyd Boyd Technology, Inc.
stefen@BoydTechInc.com (360)666-6957
www.BoydTechInc.com


Fix replaced by brad.pierce@synopsys.com on Sun Nov 14 12:31:06 2004
In 10.2.1, at the end of the paragraph

The second syntax shall begin with the keyword task, followed by a name for the task and a parenthesis enclosed task_port_list. The task_port_list shall consist of zero or more comma separated task_port_items. There shall be a semicolon after the close parenthesis. The task body shall follow and then the keyword endtask.

ADD the following sentence

If the second syntax is used, it shall be illegal for a port declaration to occur in the task body.


In 10.3.1, at the end of the paragraph

The second method shall have the name of the function, followed by an open parenthesis, and one or more input declarations, separated by commas. After all the input declarations, there shall be a close parenthesis, and a semicolon. After the semicolon, there shall be zero or more block item declarations, followed by a behavioral statement, and then the endfunction keyword.

ADD the following sentence

If the second method is used, it shall be illegal for a port declaration to occur after the semicolon.






Fix replaced by Shalom.Bresticker@freescale.com on Tue Nov 16 02:05:14 2004

DELETED PROPOSAL AS NOT SOLVING THE ORIGINAL ISSUE

Issue should move back to Open state.

Unformatted

Hosted by Boyd Technology