[sv-ac] Assertion technical issues.


Subject: [sv-ac] Assertion technical issues.
From: Adam Krolnik (krolnik@lsil.com)
Date: Mon Apr 07 2003 - 13:03:48 PDT


Good afternoon;

In reviewing the assertion LRM, I came upon two issues that I want to bring
up for thought.

1. Usefulness of templates.
2. Dynamic variable context.

-------------------------------

1. Usefulness of templates.

As defined, templates can only contain concurrent_assertion_statements:
   property definitions, sequence definitions, concurrent assertion statements
   and concurrent coverage statements.

This allows for instantiation of templates in any context (module, interface,
procedural.) However this does not allow for satellite logic or declarations
of additional state.

Thus the question:

    Which is more useful, to be able to instantiate templates in a procedural
    context, or to be able to incorporate satellite logic into templates.

The ASWG was considering a restriction on the context of instantiation based
on the elements within a template. This would allow both satellite logic and
prodecural instantiation to coexist.

---------------------------------------------------------------------------

2. Dynamic variable context.

As currently defined, the context of dynamic variables is the enclosing
sequence or property definition. Assertion statements may assert (or cover)
the defined properties or sequences, but they do not have any access to the
dynamic state. Consider this example:

   property reqack
     int addr;
     @(posedge clk)
     req, addr = req_addr
       ## [1:20] done;
   endproperty

   assert (reqack)
     else $error("Failed to receive response for request to address %0h.",
                 addr); // Want to show address corresponding to the failued request.

  As defined, there is no access to the dynamic state of the assertion. What should
  happen if I had written:

     $error("Failed to receive response for request to address %0h.", reqack.addr);

  I make a hierarchical reference to the dynamic variable. What value would I get?
  It would be great to get the value of the failed assertion...

     Adam Krolnik
     Verification Mgr.
     LSI Logic Corp.
     Plano TX. 75074



This archive was generated by hypermail 2b28 : Mon Apr 07 2003 - 13:09:17 PDT