Skip to content

Commit dd0063e

Browse files
andreaskurthctopal
authored andcommitted
[dv] Add coverage for debug requests and interrupts while executing a dummy instruction
Signed-off-by: Andreas Kurth <adk@lowrisc.org>
1 parent 550c9b2 commit dd0063e

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

doc/03_reference/coverage_plan.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,3 +382,7 @@ There must be a documented reason a particular bin is added to the illegal or ig
382382
* ``dummy_instr_config_cross`` - Dummy Instruction Type x Dummy Instruction Insertion Frequency to explore all possible configurations.
383383

384384
* ``rf_ecc_err_cross`` - ECC Error on Port A x ECC Error on Port B to explore all possible combinations of reported ECC errors.
385+
386+
* ``debug_req_dummy_instr_{if,id,wb}_stage_cross`` - The IF, ID/EX, or WB stage handles a dummy instruction while a debug request arrives.
387+
388+
* ``irq_pending_dummy_instr_{if,id,wb}_stage_cross`` - The IF, ID/EX, or WB stage handles a dummy instruction while an IRQ is pending.

dv/uvm/core_ibex/fcov/core_ibex_fcov_if.sv

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -711,11 +711,24 @@ interface core_ibex_fcov_if import ibex_pkg::*; (
711711
ignore_bins ignore = !binsof(cp_csr_write) intersect {`DEBUG_CSRS};
712712
}
713713

714+
// V2S Crosses
715+
714716
dummy_instr_config_cross: cross cp_dummy_instr_type, cp_dummy_instr_mask
715717
iff (cs_registers_i.dummy_instr_en_o);
716718

717719
rf_ecc_err_cross: cross cp_rf_a_ecc_err, cp_rf_b_ecc_err
718720
iff (id_stage_i.instr_valid_i);
721+
722+
// Each stage sees a debug request while executing a dummy instruction.
723+
debug_req_dummy_instr_if_stage_cross: cross cp_debug_req, cp_dummy_instr_if_stage;
724+
debug_req_dummy_instr_id_stage_cross: cross cp_debug_req, cp_dummy_instr_id_stage;
725+
debug_req_dummy_instr_wb_stage_cross: cross cp_debug_req, cp_dummy_instr_wb_stage;
726+
727+
// Each stage sees an interrupt request while executing a dummy instruction.
728+
irq_pending_dummy_instr_if_stage_cross: cross cp_irq_pending, cp_dummy_instr_if_stage;
729+
irq_pending_dummy_instr_id_stage_cross: cross cp_irq_pending, cp_dummy_instr_id_stage;
730+
irq_pending_dummy_instr_wb_stage_cross: cross cp_irq_pending, cp_dummy_instr_wb_stage;
731+
719732
endgroup
720733

721734
bit en_uarch_cov;

0 commit comments

Comments
 (0)