Hardware Reference
In-Depth Information
in SVA provide a solution to many problems when designing a checker library. Let
us recall the main new SVA features that help checker library development and
deployment [
26
]:
checker
encapsulation is versatile for assertion libraries.
- Argument specification is similar to that of properties.
-
checker
can be instantiated in procedural code.
- Inference of clocking event, disable condition on the ports of the checker is
possible.
-Inan
always
and
initial
procedure, evaluation is triggered by control
reaching the checker instance.
Inference functions
$inferred_clock
and
$inferred_disable
can be used as
default values on formal ports of checker, sequence and property declarations.
global clocking
and
default disable iff
declarations are possible.
Free variables
Modeling code in checker
let
construct allows for making abstractions from expressions.
Checking of configuration parameters at elaboration time.
24.1
Weaknesses of Existing Checker Libraries
To explain the current weaknesses, let us consider a simple checker
assert_handshake
inspired by its equivalent in the OVL library [
10
]. The checker
is reduced to include only its important excerpts. Details of included files are
omitted. The user may wish to consult the OVL library for further details if
necessary. First, let us consider the checker interface.
Example 24.1.
module
-based
assert_handshake
checker interface
// Accellera Standard V2.8.1 Open Verification Library (OVL).
// Accellera Copyright (c) 2005--2014. All rights reserved.
'module ovl_handshake (
clock, reset, enable, req, ack, fire);
parameter
severity_level = 'OVL_SEVERITY_DEFAULT;
parameter
min_ack_cycle = 0;
parameter
max_ack_cycle = 0;
parameter
req_drop = 0;
parameter
deassert_count = 0;
parameter
max_ack_length = 0;
parameter
property_type = 'OVL_PROPERTY_DEFAULT;
parameter
msg ='OVL_MSG_DEFAULT;
parameter
coverage_level= 'OVL_COVER_DEFAULT;
parameter
clock_edge = 'OVL_CLOCK_EDGE_DEFAULT;
parameter
reset_polarity =' OVL_RESET_POLARITY_DEFAULT;
parameter
gating_type = 'OVL_GATING_TYPE_DEFAULT;
Search WWH ::
Custom Search