Subject: [sv-bc] Proposal for SV-BC-35
From: Jacobi, Dan (dan.jacobi@intel.com)
Date: Sun Feb 09 2003 - 10:00:14 PST
I was requested to send a proposal for an issue you pointed out regarding
the TF (task/function) ports.
following is the proposal.
*** SV-BC issue ****
This proposal deals with the issue labeled as SV-BC-35 (posted by Shalom).
See more details under http://www.eda.org/vlog-pp/sv-bc/hm/0155.html
*** Motivation ***
1. In System-Verilog functions may have outputs and inout arguments.
However Arguments to tasks and functions may only be type that can be
procedurally assigned.
2. Align the System Verilog BNF with the Verilog 2001 (IEEE 1364-2001) BNF.
*** Suggested change ***
Under A.2.6
-----------------
REPLACE :
function_item_declaration ::=
block_item_declaration
| { attribute_instance } input_declaration ';'
| { attribute_instance } output_declaration ';'
| { attribute_instance } inout_declaration ';'
function_port_item ::=
{ attribute_instance } input_declaration
| { attribute_instance } output_declaration
| { attribute_instance } inout_declaration
WITH :
function_item_declaration ::=
block_item_declaration
| { attribute_instance } tf_input_declaration ';'
| { attribute_instance } tf_output_declaration ';'
| { attribute_instance } tf_inout_declaration ';'
function_port_item ::=
{ attribute_instance } tf_input_declaration
| { attribute_instance } tf_output_declaration
| { attribute_instance } tf_inout_declaration
Under A.2.7
-----------------
REPLACE :
task_item_declaration ::=
block_item_declaration
| { attribute_instance } input_declaration ';'
| { attribute_instance } output_declaration ';'
| { attribute_instance } inout_declaration ';'
task_port_list ::= task_port_item { ',' task_port_item }
| list_of_port_identifiers { ',' task_port_item }
task_port_item ::=
{ attribute_instance } input_declaration
| { attribute_instance } output_declaration
| { attribute_instance } inout_declaration
| { attribute_instance } port_type list_of_port_identifiers
WITH:
task_item_declaration ::=
block_item_declaration
| { attribute_instance } tf_input_declaration ';'
| { attribute_instance } tf_output_declaration ';'
| { attribute_instance } tf_inout_declaration ';'
task_port_list ::= task_port_item { ',' task_port_item }
| list_of_port_identifiers { ',' task_port_item }
task_port_item ::=
{ attribute_instance } tf_input_declaration
| { attribute_instance } tf_output_declaration
| { attribute_instance } tf_inout_declaration
| { attribute_instance } port_type list_of_port_identifiers
ADD :
tf_input_declaration ::=
'input' data_type list_of_port_identifiers
tf_output_declaration ::=
'output' data_type list_of_port_identifiers
tf_inout_declaration ::=
'inout' data_type list_of_port_identifiers
****
Dan Jacobi
Phone : (972)-4-8655855
Dan Jacobi
Phone : (972)-4-8655855
This archive was generated by hypermail 2b28 : Sun Feb 09 2003 - 10:01:03 PST