From: Brad Pierce (Brad.Pierce@synopsys.com)
Date: Fri Apr 04 2003 - 19:38:45 PST
Precedence: bulk
>Number: 321
>Category: errata
>Originator: "Brad Pierce" <Brad.Pierce@synopsys.com>
>Environment:
>Description:
According to Note 3 of 2.5.1, "The number of bits that make up an unsized
number (which is a simple decimal number or a number without the size
specification) shall be at least 32."
According to Table 29, an unsized constant number is a self-determined
expression with the same bit length as an integer.
According to a Note in 3.9, "Implementations may limit the maximum size
of an 'integer' variable, but they shall be at least 32 bits." This seems
to suggest that there is not conceptually any maximum size and that a bignum
implementation would match the semantics as well as or better than an
implementation with C-style ints. This would be consistent with another
paragraph of 3.9, which says "An 'integer' is a general-purpose variable
used for manipulating quantities that are not regarded as hardware
registers."
In what sense are unsized numbers self-determined expressions? Could one
think of unsized numbers and integers as having an effectively infinite
bit length? For example, if 'sb1 were assigned to a register, no matter
how long the register, it would be filled with 1 bits? Is there any
difference between 'sb1 and 1?
What does it mean then to say that the number of bits "shall be at
least 32"? I guess this is to allow integers to be implemented as
C-style ints instead of as bignums, but I don't see the relevance to
'b0, 'b1, 'sb1 and 'sb0.
According to 4.1.14, "Unsized constant numbers shall not be allowed in
concatenations. This is because the size of each operand in the
concatentation is needed to calculate the complete size of the
concatenation."
I take this to mean that not only would {'b0, 'b1} and {2{'b0}} be
disallowed, so also would be { ~'b0 , ~'b1 } and {2{~('b0')}}.
Likewise, not only { 1, -1} and {2{-1}} would be disallowed, but so
also would be { 1'b1 + 1 } and {2{1'b1+1}}. Is that interpretation
correct?
-- Brad
This archive was generated by hypermail 2.1.4
: Fri Apr 04 2003 - 19:44:46 PST
and
sponsored by Boyd Technology, Inc.