af_ovl — OVL Checkers for Open-Source Simulators¶
af_ovl brings the Accellera Open Verification Library (OVL) 2.8.1 checkers to open-source simulators, starting with Icarus Verilog. It is developed by AsFigo Technologies.
All 55 checkers elaborate on Icarus Verilog 14.0 (development build). AsFigo
adds plain-Verilog logic for checkers that upstream OVL only implemented in
SVA, and a pass/fail test suite in af_tests/.
Note
af_ovl is not affiliated with or endorsed by Accellera.
Compiling a checker¶
iverilog -g2012 -DOVL_VERILOG -DOVL_ASSERT_ON \
-I std_ovl -I af_ovl \
std_ovl/ovl_bits.v my_tb.sv -o sim.vvp
vvp sim.vvp
Running a checker’s tests¶
Each checker under af_tests/ has a Makefile with a pass and a fail
testbench. The pass test must produce no checker errors; the fail test must
produce the expected errors.
cd af_tests/ovl_bits
make check
Repository layout¶
Directory |
Contents |
|---|---|
|
Upstream OVL 2.8.1 checker wrappers and headers (some modified). |
|
Upstream plain-Verilog checker logic. |
|
Upstream SVA checker logic ( |
|
AsFigo plain-Verilog logic for checkers that had only SVA logic upstream. |
|
AsFigo pass/fail testbenches, one directory per checker. |
Reference
- Shared Parameters and Ports
- AsFigo-Enhanced Checkers
- Checker Reference
- ovl_always
- ovl_always_on_edge
- ovl_arbiter
- ovl_bits
- ovl_change
- ovl_code_distance
- ovl_coverage
- ovl_crc
- ovl_cycle_sequence
- ovl_decrement
- ovl_delta
- ovl_even_parity
- ovl_fifo
- ovl_fifo_index
- ovl_frame
- ovl_handshake
- ovl_hold_value
- ovl_implication
- ovl_increment
- ovl_memory_async
- ovl_memory_sync
- ovl_multiport_fifo
- ovl_mutex
- ovl_never
- ovl_never_unknown
- ovl_never_unknown_async
- ovl_next
- ovl_next_state
- ovl_no_contention
- ovl_no_overflow
- ovl_no_transition
- ovl_no_underflow
- ovl_odd_parity
- ovl_one_cold
- ovl_one_hot
- ovl_proposition
- ovl_quiescent_state
- ovl_range
- ovl_reg_loaded
- ovl_req_ack_unique
- ovl_req_requires
- ovl_stack
- ovl_time
- ovl_transition
- ovl_unchange
- ovl_valid_id
- ovl_value
- ovl_value_coverage
- ovl_width
- ovl_win_change
- ovl_win_unchange
- ovl_window
- ovl_xproduct_bit_coverage
- ovl_xproduct_value_coverage
- ovl_zero_one_hot