[sv-ac] New version of 2476 ($countbits, etc) posted

From: Seligman, Erik <erik.seligman@intel.com>
Date: Thu Aug 11 2011 - 08:47:59 PDT

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