Section A.1.4, A.2.1.2, A.2.1.3, A.2.2.1, A.2.10, Syntax 3-1, Syntax 5-1, Syntax 17-4, Syntax 17-14, Syntax 18-4, Table B-1
Extending SystemVerilog data types to nets (BNF)

[ BNF proposal by Brad.Pierce@Synopsys.com, 18/November/2004. ]

 

In A.1.4, REPLACE

            net_port_header ::= [ port_direction ] port_type

variable_port_header ::= [ port_direction ] data_type

WITH

            net_port_header ::= [ port_direction ] net_port_type

variable_port_header ::= [ port_direction ] variable_portdata_type

 

In A.2.1.2 and Syntax 18-4, REPLACE

 

inout_declaration ::=

 inout port_type list_of_port_identifiers

 

input_declaration ::=

input port_type list_of_port_identifiers

|               input data_type list_of_variable_identifiers

 

output_declaration ::=

output port_type list_of_port_identifiers

|               output data_type list_of_variable_port_identifiers

 

interface_port_declaration ::=

interface_identifier list_of_interface_identifiers

|               interface_identifier . modport_identifier list_of_interface_identifiers

 

ref_declaration ::= ref data_type list_of_port_identifiers

 

WITH

 

inout_declaration ::=

 inout net_port_type list_of_port_identifiers

 

input_declaration ::=

input net_port_type list_of_port_identifiers

|               input variable_portdata_type list_of_variable_identifiers

 

output_declaration ::=

output net_port_type list_of_port_identifiers

|               output variable_portdata_type list_of_variable_port_identifiers

 

interface_port_declaration ::=

interface_identifier list_of_interface_identifiers

|               interface_identifier . modport_identifier list_of_interface_identifiers

 

ref_declaration ::= ref  variable_portdata_type list_of_port_identifiers

 

In A.2.1.3, REPLACE

 

            net_declaration14 ::=

net_type_or_trireg [ drive_strength | charge_strength ] [ vectored | scalared ]

[ signing ] { packed_dimension } [ delay3 ] list_of_net_decl_assignments ;

WITH

            net_declaration14 ::=

net_type_or_trireg [ drive_strength | charge_strength ] [ vectored | scalared ]

[ signing ] { packed_dimension }

data_type_or_implicit [ delay3 ] list_of_net_decl_assignments ;

 

In A.2.1.3 and Syntax 5-1, DELETE

 

            variable_declaration ::=

data_type list_of_variable_decl_assignments ;

 

In A.2.1.3 and Syntax 5-1, in data_declaration, REPLACE

                        [ const ] [ lifetime ] variable_declaration

 

WITH

                        [ const ] [ var ] [ lifetime ] variable_declaration data_type list_of_variable_decl_assignments ;

 

[Note to editor: the var keyword and the semicolon ; should both be red.]

 

 

In A.2.2.1, REPLACE

 

net_type ::= supply0 | supply1 | tri | triand | trior | tri0 | tri1 | wire | wand | wor

 

port_type ::= [ net_type_or_trireg ] [ signing ] { packed_dimension }

 

net_type_or_trireg ::= net_type | trireg

 

WITH

net_type ::= supply0 | supply1 | tri | triand | trior | trireg | tri0 | tri1 | wire | wand | wor

 

net_port_type* ::= [ net_type_or_trireg ] data_type_or_implicit [ signing ] { packed_dimension }

               

net_type_or_trireg ::= net_type | trireg

            *When a net_port_type contains a data_type, it shall only be legal to omit the explict net_type when declaring an inout port.

            variable_port_type ::= [ var ] data_type

[Note to editor: the var and trireg keywords should be red.]

 

In Syntax 3-1, REPLACE

 

net_type ::= supply0 | supply1 | tri | triand | trior | tri0 | tri1 | wire | wand | wor

WITH

            net_type ::= supply0 | supply1 | tri | triand | trior | trireg | tri0 | tri1 | wire | wand | wor

[Note to editor: the trireg keyword should be red.]

 

In Syntax 18-4, REPLACE

 

port_type ::= [ net_type_or_trireg ] [ signing ] { packed_dimension }

WITH

net_port_type* ::= [ net_type_or_trireg ] data_type_or_implicit [ signing ] { packed_dimension }

 

*When a net_port_type contains a data_type, it shall only be legal to omit the explict net_type when declaring an inout port.

            variable_port_type ::= [ var ] data_type

[Note to editor: the var keyword should be red.]

 

In A.2.10, Syntax 17-4, and Syntax 17-14, REPLACE

 

            assertion_variable_declaration ::=

data_type list_of_variable_identifiers ;

WITH

            assertion_variable_declaration ::=

[ var ] data_type list_of_variable_identifiers ; ;

[Note to editor: the var keyword and the semicolon ; should both be red.]

 

In Table B-1, DELETE

 

            Note: The keyword var is reserved for future extensions.