diff --git a/testbench/coverage/test_fencei_coverage.svh b/testbench/coverage/test_fencei_coverage.svh new file mode 100644 index 000000000..bb492b1cb --- /dev/null +++ b/testbench/coverage/test_fencei_coverage.svh @@ -0,0 +1,25 @@ +typedef RISCV_instruction #(ILEN, XLEN, FLEN, VLEN, NHART, RETIRE) test_ins_rv64i_t; + +covergroup test_fencei_cg with function sample(test_ins_rv64i_t ins); + option.per_instance = 1; + option.comment = "Fence.I"; + + cp_asm_count : coverpoint ins.ins_str == "fence.i" iff (ins.trap == 0 ) { + option.comment = "Number of times instruction is executed"; + bins count[] = {1}; + } +endgroup + +function void test_fencei_sample(int hart, int issue); + test_ins_rv64i_t ins; + + case (traceDataQ[hart][issue][0].inst_name) + "fenci" : begin + ins = new(hart, issue, traceDataQ); + test_fencei_cg.sample(ins); + end + endcase + +endfunction + + diff --git a/testbench/coverage/test_fencei_coverage_init.svh b/testbench/coverage/test_fencei_coverage_init.svh new file mode 100644 index 000000000..c07507d43 --- /dev/null +++ b/testbench/coverage/test_fencei_coverage_init.svh @@ -0,0 +1,4 @@ +test_fencei_cg = new(); test_fencei_cg.set_inst_name("obj_fencei"); + +// test_fencei_cg = new(); +//test_fencei_cg.set_inst_name("obj_fencei");