[sv-bc] DataTypes: BNF changes

From: Steven Sharp (sharp@cadence.com)
Date: Wed Nov 03 2004 - 14:10:18 PST

  • Next message: Steven Sharp: "[sv-bc] DataTypes: Changes for Section 18 "Hierarchy""

    Kathy suggested sending out the proposed LRM changes for datatypes on nets
    in sections, to make it easier to discuss in separate email threads.

    Here are the proposed changes for the BNF.

    Steven Sharp
    sharp@cadence.com

    Changes to BNF to allow data types on nets:

    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;"

    Add this excerpt to the appropriate syntax box in the appropriate section.

    Note that this 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. We can't write the
    semantic rule until we determine what types will be allowed on nets.

    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"

    Note that this requires explicitly specifying a net_type_or_trireg to get a
    net port with a data type. We are also planning to propose the possibility
    of inout port declarations defaulting to be nets even without a
    net_type_or_trireg in the declaration. The same might apply to input ports
    also. The BNF would need further change for this, given the apparent desire
    to use different productions for variable and net ports to imply different
    semantics.



    This archive was generated by hypermail 2.1.4 : Wed Nov 03 2004 - 13:59:00 PST and
    sponsored by Boyd Technology, Inc.