RE: [sv-bc] Deadline for detailed feedback on Data Types on Nets Proposal

From: Surrendra Dudani <Surrendra.Dudani@synopsys.com>
Date: Wed Nov 17 2004 - 13:32:25 PST
My feedback is provided below:

(1)
A data type is a set of values and a set of operations that can be performed
on those values.

data_type in the BNF broadly includes interface, covergroup, chandle, event etc. Data type defined here is restrictive and does not match the BNF.

(2)
"A data object is a
named construct that has a data value associated with it, such as a parameter, a variable,
or a net."

The use of word "construct" is confusing. Perhaps, "entity" can be used instead of "construct"

(3)
The data type specification adds one more item to the list of items that can be specified with a net declaration, especially with anonymous data type specification. For example,

trireg (large) vectored signed struct packed { logic ecc; logic [7:0] data; } #(0,0,0) [7:0] memsig;
 
To remember the order and places where an item is allowed can be challenging, besides trying to read unreadable code.

(4)

1. A four-state integral type
2. An unpacked array or unpacked struct, where each element has a valid data type
for a net

Item 2 should explicitly say "packed or unpacked" instead of just unpacked

(5)
A lexical restriction applies to the use of the reg keyword in a net or port declaration. A
Verilog net type keyword shall not be followed directly by the reg keyword. Thus, the
following declarations are in error:
tri reg r;
inout wire reg p;
The reg keyword can be used in a net or port declaration if there are lexical elements
between the net type keyword and the reg keyword.

This is arbitrary and confusing restriction

(6) Section 18.12
SystemVerilog extends Verilog port connections by making values of all data types on
variables and nets
available to pass through ports.

It should say (to be consistent with previous language) all "allowed data types" instead of "all data types".

(7) Glossary
Data object - A data object is a named construct that has a data value associated with it,
such as a parameter, a variable, or a net. A data object has a data type that determines
which values the data object can have.

A suggested wording:
"A data object is a named entity that has a data value associated with it. Examples of data objects are nets, variables and parameters. A data object A data object has a data type that determines which values the data object can have."

(8) Are there any restrictions on the strengths that can be specified? Can a strength be specified, whether it is a single wire or a data structure with multiple wires?

(9) The limitation of 4-state on wires, and not allowing 2-state makes the usage of structures of wires minimal. It would be better to complete the proposal with 2-state resolution, otherwise users will get confused.

Surrendra


**********************************************
Surrendra A. Dudani
Synopsys, Inc.
377 Simarano Drive, Suite 300
Marlboro, MA 01752

Tel:   508-263-8072
Fax:   508-263-8123
email: Surrendra.Dudani@synopsys.com 
********************************************** Received on Wed Nov 17 13:31:49 2004

This archive was generated by hypermail 2.1.8 : Wed Nov 17 2004 - 13:31:54 PST