Skip to content

RISCVDV bringup - Coverage Collection on RISCVISACOV

Eclipse Webmaster requested to merge github/fork/quswarabid/riscvdv_bringup into main

Created by: quswarabid

The purpose of this PR is to collect and merge coverage on a test regression (tests generated from RISCVDV while coverpoints from RISCVISACOV)

After updating your local .bashrc file*, and updating to this branch. Run $time** make collect_riscvdv_regression_coverage and expect output similar to below:

*See README.md **optional: time

$ time make collect_riscvdv_regression_coverage
rm sim/riscv.ucdb regression.log covhtmlreport/ regression_logs/ regression_ucdbs/ -rf
mkdir -p regression_logs
mkdir -p regression_ucdbs
cd regression_logs && rm -rf *
cd regression_ucdbs && rm -rf *
make rvdv test_name=riscv_arithmetic_basic_test                         >> regression.log 2>&1
make rvdv test_name=riscv_amo_test                                                      >> regression.log 2>&1
make rvdv test_name=riscv_ebreak_debug_mode_test                        >> regression.log 2>&1
make rvdv test_name=riscv_ebreak_test                                           >> regression.log 2>&1
make rvdv test_name=riscv_floating_point_arithmetic_test        >> regression.log 2>&1
make rvdv test_name=riscv_floating_point_mmu_stress_test        >> regression.log 2>&1
make rvdv test_name=riscv_floating_point_rand_test                      >> regression.log 2>&1
make rvdv test_name=riscv_full_interrupt_test                           >> regression.log 2>&1
make rvdv test_name=riscv_hint_instr_test                                       >> regression.log 2>&1
make rvdv test_name=riscv_illegal_instr_test                            >> regression.log 2>&1
make rvdv test_name=riscv_invalid_csr_test                                      >> regression.log 2>&1
make rvdv test_name=riscv_jump_stress_test                                      >> regression.log 2>&1
make rvdv test_name=riscv_loop_test                                                     >> regression.log 2>&1
make rvdv test_name=riscv_machine_mode_rand_test                        >> regression.log 2>&1
make rvdv test_name=riscv_mmu_stress_test                                       >> regression.log 2>&1
make rvdv test_name=riscv_no_fence_test                                         >> regression.log 2>&1
make rvdv test_name=riscv_non_compressed_instr_test                     >> regression.log 2>&1
make rvdv test_name=riscv_pmp_test                                                      >> regression.log 2>&1
make rvdv test_name=riscv_privileged_mode_rand_test                     >> regression.log 2>&1
make rvdv test_name=riscv_rand_instr_test                                       >> regression.log 2>&1
make rvdv test_name=riscv_rand_jump_test                                        >> regression.log 2>&1
make rvdv test_name=riscv_sfence_exception_test                         >> regression.log 2>&1
make rvdv test_name=riscv_unaligned_load_store_test                     >> regression.log 2>&1
mkdir -p regcov
cd regcov && rm -rf *
vcover merge regcov/regcov.ucdb  regression_ucdbs/* -suppress 6854 -64
QuestaSim-64 vcover 2023.4 Coverage Utility 2023.10 Oct  9 2023
Start time: 16:50:01 on Apr 23,2024
vcover merge regcov/regcov.ucdb regression_ucdbs/riscv_amo_test.ucdb regression_ucdbs/riscv_arithmetic_basic_test.ucdb regression_ucdbs/riscv_ebreak_debug_mode_test.ucdb regression_ucdbs/riscv_ebreak_test.ucdb regression_ucdbs/riscv_floating_point_arithmetic_test.ucdb regression_ucdbs/riscv_floating_point_mmu_stress_test.ucdb regression_ucdbs/riscv_floating_point_rand_test.ucdb regression_ucdbs/riscv_full_interrupt_test.ucdb regression_ucdbs/riscv_hint_instr_test.ucdb regression_ucdbs/riscv_illegal_instr_test.ucdb regression_ucdbs/riscv_invalid_csr_test.ucdb regression_ucdbs/riscv_jump_stress_test.ucdb regression_ucdbs/riscv_loop_test.ucdb regression_ucdbs/riscv_machine_mode_rand_test.ucdb regression_ucdbs/riscv_mmu_stress_test.ucdb regression_ucdbs/riscv_no_fence_test.ucdb regression_ucdbs/riscv_non_compressed_instr_test.ucdb regression_ucdbs/riscv_pmp_test.ucdb regression_ucdbs/riscv_privileged_mode_rand_test.ucdb regression_ucdbs/riscv_rand_instr_test.ucdb regression_ucdbs/riscv_rand_jump_test.ucdb regression_ucdbs/riscv_sfence_exception_test.ucdb regression_ucdbs/riscv_unaligned_load_store_test.ucdb -suppress 6854 -64 
QuestaSim-64 vcover 2023.4 Coverage Utility 2023.10 Oct  9 2023
Merging file regression_ucdbs/riscv_amo_test.ucdb
Merging file regression_ucdbs/riscv_arithmetic_basic_test.ucdb
Merging file regression_ucdbs/riscv_ebreak_debug_mode_test.ucdb
Merging file regression_ucdbs/riscv_ebreak_test.ucdb
Merging file regression_ucdbs/riscv_floating_point_arithmetic_test.ucdb
Merging file regression_ucdbs/riscv_floating_point_mmu_stress_test.ucdb
Merging file regression_ucdbs/riscv_floating_point_rand_test.ucdb
Merging file regression_ucdbs/riscv_full_interrupt_test.ucdb
Merging file regression_ucdbs/riscv_hint_instr_test.ucdb
Merging file regression_ucdbs/riscv_illegal_instr_test.ucdb
Merging file regression_ucdbs/riscv_invalid_csr_test.ucdb
Merging file regression_ucdbs/riscv_jump_stress_test.ucdb
Merging file regression_ucdbs/riscv_loop_test.ucdb
Merging file regression_ucdbs/riscv_machine_mode_rand_test.ucdb
Merging file regression_ucdbs/riscv_mmu_stress_test.ucdb
Merging file regression_ucdbs/riscv_no_fence_test.ucdb
Merging file regression_ucdbs/riscv_non_compressed_instr_test.ucdb
Merging file regression_ucdbs/riscv_pmp_test.ucdb
Merging file regression_ucdbs/riscv_privileged_mode_rand_test.ucdb
Merging file regression_ucdbs/riscv_rand_instr_test.ucdb
Merging file regression_ucdbs/riscv_rand_jump_test.ucdb
Merging file regression_ucdbs/riscv_sfence_exception_test.ucdb
Merging file regression_ucdbs/riscv_unaligned_load_store_test.ucdb
Writing merged result to regcov/regcov.ucdb

End time: 16:50:01 on Apr 23,2024, Elapsed time: 0:00:00
Errors: 0, Warnings: 0
vcover report -details -html regcov/regcov.ucdb
QuestaSim-64 vcover 2023.4 Coverage Utility 2023.10 Oct  9 2023
Start time: 16:50:01 on Apr 23,2024
vcover report -details -html regcov/regcov.ucdb 

End time: 16:50:01 on Apr 23,2024, Elapsed time: 0:00:00
Errors: 0, Warnings: 0
vcover report regcov/regcov.ucdb -details -cvg > regcov/regcov.ucdb.log
vcover report regcov/regcov.ucdb -testdetails -cvg > regcov/regcov.ucdb.testdetails.log
vcover report regcov/regcov.ucdb -details -cvg -below 100 | egrep "Coverpoint|Covergroup|Cross" | grep -v Metric > regcov/regcov.ucdb.summary.log
grep "Total Coverage By Instance" regcov/regcov.ucdb.log
Total Coverage By Instance (filtered view): 46.78%

real    5m37.079s
user    5m12.155s
sys     1m14.281s

The PR is a little too crude for what it achieves. Subsequent updates will be contributed in new PRs.

Merge request reports

Loading