[sv-bc] Hierarchical references in #(...) instantiations and $bits() constant function calls (1224 and 2856)

From: Brad Pierce <Brad.Pierce@synopsys.com>
Date: Thu Mar 24 2011 - 11:06:31 PDT

According to the comments on http://www.eda.org/svdb/view.php?id=1224 , hierarchical references are allowed in the parameter value assignments in module instantiations, hence the use of param_expression instead of constant_param_expression in A.4.1.1 .

In http://www.eda.org/svdb/view.php?id=2856 , Françoise gives an example of the dangers of allowing hierarchical references in $bits() constant function calls. I think the following is equivalent

  module top;
    child #($bits(inst.v)-1) inst();
  endmodule

  module child #(P = 32);
    bit v[P];
  endmodule

or simply

  module top;
    child #(inst.P-1) inst();
  endmodule

  module child #(P = 32);
    bit v[P];
  endmodule

If hierarchical references are legal within the #(), yet the final example is illegal, then maybe whichever rule makes it illegal could be applied to the $bits() call in Françoise's example.

-- Brad

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Thu Mar 24 11:06:55 2011

This archive was generated by hypermail 2.1.8 : Thu Mar 24 2011 - 11:07:12 PDT