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