From ecb444697c18fd623ece89b2da32dbc920fc5ff0 Mon Sep 17 00:00:00 2001 From: David Harris Date: Sat, 7 Sep 2024 06:14:50 -0700 Subject: [PATCH 1/4] Starting to define per-config coverage --- config/rv32gc/coverage_extensions.svh | 10 ++++++++++ sim/questa/wally.do | 6 ------ 2 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 config/rv32gc/coverage_extensions.svh diff --git a/config/rv32gc/coverage_extensions.svh b/config/rv32gc/coverage_extensions.svh new file mode 100644 index 000000000..38dff14f4 --- /dev/null +++ b/config/rv32gc/coverage_extensions.svh @@ -0,0 +1,10 @@ +// coverage_extensions.svh +// David_Harris@hmc.edu 7 September 2024 +// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 + +// This file is needed in the config subdirectory for each config supporting coverage. +// It defines which extensions are enabled for that config. + +`define COVER_BASE_RV32I + +`include "coverage/RV32I_coverage.svh" \ No newline at end of file diff --git a/sim/questa/wally.do b/sim/questa/wally.do index 53ff8d0b8..46ddbb21c 100644 --- a/sim/questa/wally.do +++ b/sim/questa/wally.do @@ -150,12 +150,6 @@ if {[lcheck lst "--fcov"]} { # Uncomment various cover statements below to control which extensions get functional coverage lappend FCdefineCOVER_EXTS "+define+COVER_RV32I" lappend FCdefineCOVER_EXTS "+define+COVER_RV32M" - #lappend FCdefineCOVER_EXTS "+define+COVER_RV64M" - #lappend FCdefineCOVER_EXTS "+define+COVER_RV64A" - #lappend FCdefineCOVER_EXTS "+define+COVER_RV64F" - #lappend FCdefineCOVER_EXTS "+define+COVER_RV64D" - #lappend FCdefineCOVER_EXTS "+define+COVER_RV64ZICSR" - #lappend FCdefineCOVER_EXTS "+define+COVER_RV64C" } # if --lockstep or --fcov found set flag and remove from list From 92c305ca3b6b71444710577313a386e6d7060e1c Mon Sep 17 00:00:00 2001 From: David Harris Date: Sat, 7 Sep 2024 06:26:54 -0700 Subject: [PATCH 2/4] Starting to define per-config coverage --- config/rv32gc/coverage_extensions.svh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/config/rv32gc/coverage_extensions.svh b/config/rv32gc/coverage_extensions.svh index 38dff14f4..d33bc91b0 100644 --- a/config/rv32gc/coverage_extensions.svh +++ b/config/rv32gc/coverage_extensions.svh @@ -6,5 +6,4 @@ // It defines which extensions are enabled for that config. `define COVER_BASE_RV32I - -`include "coverage/RV32I_coverage.svh" \ No newline at end of file +`include "coverage/RV32I_coverage.svh" From de26b7b6a792f1993a519fa76de187630d8d13af Mon Sep 17 00:00:00 2001 From: David Harris Date: Sat, 7 Sep 2024 07:00:52 -0700 Subject: [PATCH 3/4] Per config coverage initially working with RV32M in rv32gc config --- config/rv32gc/coverage_extensions.svh | 4 +++- sim/questa/wally.do | 7 +------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/config/rv32gc/coverage_extensions.svh b/config/rv32gc/coverage_extensions.svh index d33bc91b0..80f73c6f4 100644 --- a/config/rv32gc/coverage_extensions.svh +++ b/config/rv32gc/coverage_extensions.svh @@ -5,5 +5,7 @@ // This file is needed in the config subdirectory for each config supporting coverage. // It defines which extensions are enabled for that config. -`define COVER_BASE_RV32I +`define COVER_RV32I +`define COVER_RV32M `include "coverage/RV32I_coverage.svh" +`include "coverage/RV32M_coverage.svh" diff --git a/sim/questa/wally.do b/sim/questa/wally.do index 46ddbb21c..6f8c81b1b 100644 --- a/sim/questa/wally.do +++ b/sim/questa/wally.do @@ -141,15 +141,10 @@ if {[lcheck lst "--fcov"]} { set FCvlog "+define+INCLUDE_TRACE2COV \ +define+IDV_INCLUDE_TRACE2COV \ +define+COVER_BASE_RV32I \ - +define+COVER_LEVEL_DV_PR_EXT \ +incdir+$env(WALLY)/addins/riscvISACOV/source \ " -# +incdir+$env(WALLY)/addins/cvw-arch-verif/fcov/rv32 \ - set FCvopt "+TRACE2COV_ENABLE=1 +IDV_TRACE2COV=1" - # Uncomment various cover statements below to control which extensions get functional coverage - lappend FCdefineCOVER_EXTS "+define+COVER_RV32I" - lappend FCdefineCOVER_EXTS "+define+COVER_RV32M" + } # if --lockstep or --fcov found set flag and remove from list From f36eb6f73dec6c0e621e584aafd3454dfd801d4e Mon Sep 17 00:00:00 2001 From: David Harris Date: Sat, 7 Sep 2024 12:05:48 -0700 Subject: [PATCH 4/4] Added support for RV64GC coverage and fixed regression so that --fcov doesn't send --lockstep flag to wsim, which messed up wsim --- bin/regression-wally | 5 ++++- .../{coverage_extensions.svh => coverage.svh} | 4 +++- config/rv64gc/coverage.svh | 13 +++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) rename config/rv32gc/{coverage_extensions.svh => coverage.svh} (82%) create mode 100644 config/rv64gc/coverage.svh diff --git a/bin/regression-wally b/bin/regression-wally index 5baf73f0f..ccbc249f9 100755 --- a/bin/regression-wally +++ b/bin/regression-wally @@ -292,7 +292,10 @@ def addTests(tests, sim): def addLockstepTestsByDir(dir, config, sim): sim_logdir = WALLY+ "/sim/" + sim + "/logs/" - cmdPrefix="wsim --lockstep --sim " + sim + " " + coverStr + " " + config + if (coverStr != ""): # use --fcov in place of --lockstep + cmdPrefix="wsim --sim " + sim + " " + coverStr + " " + config + else: + cmdPrefix="wsim --lockstep --sim " + sim + " " + config if (os.path.isdir(dir)): for dirpath, dirnames, filenames in os.walk(os.path.abspath(dir)): for file in filenames: diff --git a/config/rv32gc/coverage_extensions.svh b/config/rv32gc/coverage.svh similarity index 82% rename from config/rv32gc/coverage_extensions.svh rename to config/rv32gc/coverage.svh index 80f73c6f4..d40d78ea2 100644 --- a/config/rv32gc/coverage_extensions.svh +++ b/config/rv32gc/coverage.svh @@ -1,4 +1,4 @@ -// coverage_extensions.svh +// coverage.svh // David_Harris@hmc.edu 7 September 2024 // SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 @@ -7,5 +7,7 @@ `define COVER_RV32I `define COVER_RV32M +`define COVER_RV32F `include "coverage/RV32I_coverage.svh" `include "coverage/RV32M_coverage.svh" +`include "coverage/RV32F_coverage.svh" diff --git a/config/rv64gc/coverage.svh b/config/rv64gc/coverage.svh new file mode 100644 index 000000000..ee811e922 --- /dev/null +++ b/config/rv64gc/coverage.svh @@ -0,0 +1,13 @@ +// coverage.svh +// David_Harris@hmc.edu 7 September 2024 +// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 + +// This file is needed in the config subdirectory for each config supporting coverage. +// It defines which extensions are enabled for that config. + +`define COVER_RV64I +`define COVER_RV64M +`define COVER_RV64F +`include "coverage/RV64I_coverage.svh" +`include "coverage/RV64M_coverage.svh" +`include "coverage/RV64F_coverage.svh"