I have posted an updated version of this proposal at http://www.verilog.org/mantis/view.php?id=2476 , addressing the Champion feedback. Shalom & Brad both took a look, and believe the current version addresses their issues. I think it should be ready for a vote.
The proposal was opposed by the Champions in the email vote which ended
August 5, 2011.
Opposed:
Brad -
"Each control bit shall be of type logic"
What happens if the control_bit, evaluated in a self-determined context, is
not of type logic? Is a control_bit actually cast to logic type, as if it
were evaluated in the context of an assignment to a formal function argument
of type logic? For example, in the final example, what if instead of
logic [1:0] bad_bits;
it were
bit [1:0] bad_bits;
Or for example, if a control_bit were a vector, would it be truncated and
the following assertions be equivalent?
a1: assert ($countbits(myvec,bad_bits) == 0);
a2: assert ($countbits(myvec,bad_bits[0]) == 0);
Shalom -
- Keywords used in the text should be bold. Example: in 20.9, "This function
returns an int ...". 'int' should be bold.
- 11.2.1 needs to be modified to allow the bit vector system functions as
constant system functions.
- 20.6.3 contains the following: 'Given the declaration "parameter int
i = $;" then $isunbounded(i) shall return true. Otherwise, it shall
return false. True and false are defined in 20.13.' However, true and
false are no longer defined in 20.13 after this proposal. I think the
last sentence in 20.6.3 can simply be deleted.
- I also agree with Brad's reservations.
Friendly amendments:
Dave -
Break this sentence into two separate sentence (not sure the first part is
needed anyways):
Replace
The functions $countbits, $countones, $onehot, $onehot0, and $isunknown may
be used in any context where a value of their return type is legal,
including constant expressions as specified in 11.2.1.
with
The functions $countbits, $countones, $onehot, $onehot0, and $isunknown may
be used in any context where a value of their return type is legal. These
functions may be used as constant expressions as specified in 11.2.1 as
long as all their arguments are also constant expressions.
Combine the following two sentences, as shown below:
Replace
The control bits arguments to $countbits are not required to be compile-time
constants. The following example uses variables for these values:
with
The control bits arguments to $countbits can be variables as show in the
following example :
-- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean.Received on Thu Aug 11 08:49:40 2011
This archive was generated by hypermail 2.1.8 : Thu Aug 11 2011 - 08:49:46 PDT