Section A.2.1.1, A.2.1.3, A.2.2.1, A.2.6, A.2.7, A.3.1, A.4.1, A.4.4.1, A.5.4, Syntax 3-1, Syntax 3-3, Syntax 3-4, Syntax 10-1, Syntax 18-3
Ranges, dimensions and data types

In A.2.1.1 and Syntax 20-1, local_parameter_declaration and parameter_declaration, REPLACE

{ packed_dimension } [ range ]

WITH

{ packed_dimension }

and in specparam_declaration, REPLACE

            [ range ]

WITH

            [ packed_dimension ]

 

In A.2.2.1 and Syntax 3-1, ADD data_type_common_item

            data_type_common_item ::=

                        integer_vector_type [ signing ] { packed_dimension }

            |            integer_atom_type [ signing ]

            |            type_declaration_identifier { packed_dimension }

            |             non_integer_type

            |            [ struct | union ] [ packed [ signing ] ]

 { struct_union_member { struct_union_member } } { packed_dimension }

            |            enum [ integer_type [ signing ]  { packed_dimension } ]

                                    { enum_identifier [ = constant_expression ]  { ,

                                                { , enum_identifier [ = constant_expression ] } }

            |            string

            |            chandle

and ADD the following footnote

                        When a packed dimension is used with the struct or union keyword, the packed keyword shall also be used.

 

In Syntax 3-3, REPLACE

            data_type

WITH

            data_type_common_item

 

In Syntax 3-4, REPLACE the data_type excerpt with

            data_type_common_item ::=

                       

|            [ struct | union ] [ packed [ signing ] ]

{ struct_union_member { struct_union_member } } { packed_dimension }

 

including the footnote added above in A.2.2.1.

 

In A.2.2.1 and Syntax 3-1, REPLACE data_type with

            data_type ::=

                        data_type_common_item

            |            event

            |            class_scope_type_identifier

 

In A.2.6, REPLACE function_data_type with

            function_data_type ::=

                        data_type_common_item

            |            void

and PREPEND the following sentence to its footnote

            The signed and unsigned keywords shall not be used within a function data type.

 

In A.2.2.1, ADD

            net_type_or_trireg ::= net_type | trireg

 

In A.2.1.3, REPLACE net_declaration with

   net_declaration ::=

            net_type_or_trireg [ drive_strength | charge_strength ] [ vectored | scalared ]

[ signing ] { packed_dimension } [ delay3 ] list_of_net_decl_assignments ;

and ADD the following footnote –

            A charge strength shall only be used with the trireg keyword.  When the vectored or scalared keyword is used, there shall be at least one packed dimension.

 

In A.2.2.1, REPLACE port_type with

            port_type ::=

                        data_type

            |            net_type_or_trireg { packed_dimension }

            |            [ signing ] packed_dimension { packed_dimension }

 

In A.2.6, REPLACE range_or_type with

            type_or_dimensions

                        packed_dimension { packed_dimension }

            |            function_data_type

and in function_body_declaration REPLACE both occurrences of

            range_or_type

WITH

            type_or_dimensions

 

In A.2.7 and Syntax 10-1, REMOVE tf_data_type and REPLACE each occurrence of  tf_data_type with data_type ; specifically in

            tf_port_item

            tf_input_declaration

            tf_output_declaration

            tf_inout_declaration

            tf_ref_declaration

           

In A.4.1, RENUMBER A.4.4.1 to A.4.1.3.

 

In A.3.1, name_of_gate_instance,

in A.4.4.1 and Syntax 18-3, name_of_instance,

in A.4.1.3, program_instance,

and in A.5.4, name_of_udp_instance, REPLACE

            { range }

WITH

            { unpacked_dimension }

 

In A.5.4, udp_instance REMOVE

            { range }