RE: [sv-bc] DataTypes: Revised BNF changes

From: Steven Sharp <sharp@cadence.com>
Date: Wed Nov 10 2004 - 15:59:54 PST

Here is a revised version of the BNF changes for tomorrow.

Steven Sharp
sharp@cadence.com

Changes to BNF to allow data types on nets:

Commentary:

The proposed BNF syntactically allows a lot of data types that we won't
necessarily allow for nets. They will be eliminated by a semantic rule
about what types are supported for nets. Such a semantic rule will be
needed anyway, since a typedef is syntactically legal but could represent
a type not supported for nets. Trying to define a separate net_data_type
production for a syntactic restriction would be a lot messier. Brad
Pierce has said he agrees with this general approach.

Brad also suggested the approach in the port BNF of using simpler grammar
with a footnote. In the LRM, it would be a numbered footnote, like the
existing footnotes. Brad also suggested changing the name of port_type
to net_port_type, which can be done as a separate change.

LRM Changes:

In Annex A.2.1.3, CHANGE

 "net_declaration ::=
     net_type_or_trireg [drive_strength|charge_strength] [vectored|scalared]
       [signing] {packed_dimensions} [delay3] list_of_net_decl_assignments;"

TO

 "net_declaration ::=
     net_type_or_trireg [drive_strength|charge_strength] [vectored|scalared]
       data_type_or_implicit [delay3] list_of_net_decl_assignments;"

Also add the preceding BNF excerpt to the appropriate syntax box in the
appropriate section.

In Syntax 18-4 and Annex A.2.2.1, CHANGE

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

TO

 "port_type* ::= [net_type_or_trireg] [signing] {packed_dimension} |
                 [net_type_or_trireg] data_type

  *When a port_type contains a data_type, it shall only be legal to omit
   the explicit net_type_or_trireg when declaring an inout port."
Received on Wed Nov 10 15:59:59 2004

This archive was generated by hypermail 2.1.8 : Wed Nov 10 2004 - 16:00:03 PST