Section 10.2

LRM-292

Change in Syntax 10-1 (changes in red and blue):

task_declaration ::= task [ lifetime ] task_body_declaration

 

task_body_declaration ::=

  [ interface_identifier . | class_scope ] task_identifier ;

  { tf_item_declaration }

  { statement_or_null }

  endtask [ : task_identifier ]

| [ interface_identifier . | class_scope ] task_identifier ( [ tf_port_list ] ) ;

  { block_item_declaration }

  { statement_or_null }

  endtask [ : task_identifier ]

 

task_declaration ::= task [ lifetime ] task_body_declaration

LRM-292

Change in Syntax 10-1 (changes in red and blue):

tf_port_item ::=

  { attribute_instance } tf_input_declaration

| { attribute_instance } tf_output_declaration

| { attribute_instance } tf_inout_declaration

| { attribute_instance } tf_ref_declaration

| { attribute_instance } [ signing ] { packed_dimension } list_of_tf_variable_identifiers

| { attribute_instance } data_type list_of_tf_variable_identifiers

Section 10.3

LRM-292

Change in Syntax 10-2 (changes in red and blue):

function_data_type6 ::= data_type | void                                         // from Annex A.2.6

 

function_data_type_or_implicit ::=

  function_data_type

| [ signing ] { packed_dimension }

 

function_declaration ::=

function [ lifetime ] function_body_declaration

 

function_body_declaration ::=

  [ signing ] [ type_or_dimensions ] function_data_type_or_implicit

  [ interface_identifier . | class_scope ] function_identifier ;

  { tf_item_declaration }

  { function_statement_or_null }

  endfunction [ : function_identifier ]

| [ signing ] [ type_or_dimensions ] function_data_type_or_implicit

  [ interface_identifier . | class_scope ] function_identifier ( [ tf_port_list ] ) ;

  { block_item_declaration }

  { function_statement_or_null }

  endfunction [ : function_identifier ]

 

function_declaration ::=

function [ lifetime ] function_body_declaration

LRM-292

Change in Syntax 10-2 (changes in red and blue):

type_or_dimensions ::=

  packed_dimension { packed_dimension }

| function_data_type

Section 10.3.1

LRM-291

Change (fix indentation) (changes in red and blue):

function [15:0] myfunc2 (input [7:0] x,y);

return x * y - 1; //return value is specified using return

statement

endfunction

Section 10.3.3

LRM-292

Remove Section 10.3.3 completely.

Section 10.5

LRM-292

Change in Syntax 10-3 (changes in red and blue):

dpi_function_proto9,10 ::= function named_function_proto function_prototype