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