[sv-ac] P1800-2009: checker formal arguments may not be connected to interfaces // WHY?

From: ben cohen <hdlcohen_at_.....>
Date: Mon May 25 2009 - 09:17:00 PDT
pg 415 "Unlike modules, interfaces, and programs, checker formal arguments
may not be connected to interfaces."[Ben] Why this restriction?  The
interface is one of the beauty of SystemVerilog.  Are we saying that the
following is illegal?
interface fifo_if(..);  modport fslave_if_mp (..); .. endinterface : fifo_if
checker fifo_chker (logic clk, fifo_if.fslave_if_mp f_if, ...);
   property p_t1_full;  @ (posedge clk)
      property p_push_error;
       @ (posedge clk)
         not (f_if.push && f_if.full && f_if.pop);
      endproperty : p_push_error
     ap_push_error : assert property (p_push_error);
endchecker
If the rationale is that interfaces can have outputs, then we can restrict
the usage in that in checkers, we cannot assign to a port, which is the case
anyways.
Without the access to interfaces in formal arguments, we lose a lot.  That
would mean that every element of the interface would have to be added to the
port list, unless we want to use hierarchical references. Thus, if an
interface with 100 signals, instead of passing that interface as a name, one
would have to enter 100 elements in the formal arguments of the checker!
 That defeats the use of interfaces!!!!
Before I put that in a Mantis, I would like to hear some feedback on this
issue.  Why the restriction? wouldn't it be better to include the interface
in formal arguments of a checker?
Thanks,
Ben Cohen

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Mon May 25 09:18:24 2009

This archive was generated by hypermail 2.1.8 : Mon May 25 2009 - 09:19:31 PDT