[sv-bc] inconsistency between module ports and task arguments

From: Steven Sharp <sharp_at_.....>
Date: Fri Jan 27 2006 - 13:01:48 PST
In 19.8, the LRM says for a module port list like

  module m (int i, j);
  
that j will inherit its type from the previous declaration and be an int.

However, I just discovered that it says in 12.2 and 12.3 that for a task or
function argument list like

  function f (int i, j);
  
that j will be the default type, and that is logic.  Perhaps this was
intended to say that the default type is logic for the first argument
and that it is the previous type for other arguments, but that is not
what it says.  I remember we did a lot of rewording of the module port
section to get it right.  Perhaps this similar section just got missed.

Is there anyone who knows what the intent was?  And does anyone think
that having these behave differently is sane?

There is another possibly related issue for properties, based on an
example in 17.11.4 that reads:

  property p1(int i, j);
  
and says that the second property is untyped.  However, there seems to
be a special meaning of untyped for properties that might require this
difference.  I don't know much about them.

Steven Sharp
sharp@cadence.com
Received on Fri Jan 27 13:02:01 2006

This archive was generated by hypermail 2.1.8 : Fri Jan 27 2006 - 13:03:40 PST