Hi Mike,
It is a great pleasure for me to ask you a great question which is dear to your hear.
I also ask other expert on Digital design and verification.
Luca and Alain from Mentor Graphic wrote me following:
##########################
1.
If you use assertions to implement your checkers, then they cannot reside within the SV class hierarchy of OVM.
I would have them in the SV interface that connects to the HDL signals being observed.
For industry standard busses, I would use the existing library of assertion checkers such as QVL
("OK, it's the Mentor Graphics Questa Verification Library (QVL) one assertion checker library for assertion-based verification (ABV)").
2.
If these checkers are implemented as procedural code, then they can form part of the monitor and / or scoreboard within an OVM environment.
Typically, a monitor works between the RTL and TLM abstraction level so would be used for checking cycle accuracy or phasing related issues in a bus/interface protocol for instance.
Scoreboards on the other hand typically work at the transaction level so would have high level code that checks for correct functionality.
An example could be a C/C++ reference model.
##########################
I put this information in the discussion also in the hope to help you at your work in progress "the taxonomy of checkers".
For me it makes sense, but I am relative new at the SystemVerilog base class library verification methodology area (wow really many words),
like Open Verification Methodology (OVM) or Universal Verification Methodology (UVM).
What's your opinion?
I try to collect the information and wrote a very basic taxonomy of checkers in the table (below).
-------------------------------------------------------------------------
component methodology for example / used for
-------------------------------------------------------------------------
-------------------------------------------------------------------------
interface assertion-based - a signal or signals (bus)
verification (ABV) went to X or Z
during a specific
phase
signal spikes (to short signals)
-------------------------------------------------------------------------
monitor transaction - extend beyond a
timing checks simple transaction
- checking cycle accuracy
- phasing related issues
in a bus/interface protocol
for instance
-------------------------------------------------------------------------
scoreboard transaction - high level code that checks
level checks for correct functionality
-------------------------------------------------------------------------
external for really complex - exception handling
checker models/checkings - interrupt service
(to flux a monitor routine handling
or scoreboard) - checking the specified
tolerances for n different
long term signals
-------------------------------------------------------------------------
Feel free to annotate my statements.
I'm very grateful to hear your arguments.
Take Care,
Stephan