[dv] Align VCS and Xcelium cov var names
Just a cosmetic change to align coverage related VCS and Xcelium variables in
the HJson to look more alike.
Also enables `prim_lfsr` to be run with coverage enabled with Xcelium.
Signed-off-by: Srikrishna Iyer <sriyer@google.com>
diff --git a/hw/dv/data/common_sim_cfg.hjson b/hw/dv/data/common_sim_cfg.hjson
index 171f622..9327abe 100644
--- a/hw/dv/data/common_sim_cfg.hjson
+++ b/hw/dv/data/common_sim_cfg.hjson
@@ -140,12 +140,12 @@
tool_srcs: ["{dv_root}/tools/waves.tcl"],
// Project defaults for VCS
- vcs_cov_hier: "{{build_mode}_vcs_cov_hier}"
+ vcs_cov_cfg_file: "{{build_mode}_vcs_cov_cfg_file}"
vcs_cov_excl_files: ["{tool_srcs_dir}/common_cov_excl.el"]
// Build-specific coverage cfg files for VCS.
- default_vcs_cov_hier: "-cm_hier {tool_srcs_dir}/cover.cfg"
- cover_reg_top_vcs_cov_hier: "-cm_hier {tool_srcs_dir}/cover_reg_top.cfg"
+ default_vcs_cov_cfg_file: "-cm_hier {tool_srcs_dir}/cover.cfg"
+ cover_reg_top_vcs_cov_cfg_file: "-cm_hier {tool_srcs_dir}/cover_reg_top.cfg"
// Project defaults for Xcelium
// xcelium_cov_cfg_file: "{{build_mode}_xcelium_cov_cfg_file}"
@@ -153,5 +153,5 @@
// Build-specific coverage cfg files for Xcelium.
// default_xcelium_cov_cfg_file: "-covfile {tool_srcs_dir}/cover.ccf"
- // default_xcelium_cov_cfg_file: "-covfile {tool_srcs_dir}/cover_reg_top.ccf"
+ // cover_reg_top_xcelium_cov_cfg_file: "-covfile {tool_srcs_dir}/cover_reg_top.ccf"
}
diff --git a/hw/dv/data/vcs/vcs.hjson b/hw/dv/data/vcs/vcs.hjson
index 3720d55..4ec6397 100644
--- a/hw/dv/data/vcs/vcs.hjson
+++ b/hw/dv/data/vcs/vcs.hjson
@@ -110,10 +110,19 @@
]
// Defaults for VCS
- cov_metrics: "line+cond+fsm+tgl+branch+assert"
- vcs_cov_hier: ""
- vcs_cov_assert_hier: ""
- vcs_cov_excl_files: []
+ // By default, collect all coverage metrics.
+ cov_metrics: "line+cond+fsm+tgl+branch+assert"
+
+ // Supply the cov configuration file.
+ // Note that this needs to be set as -cm_hier <file>.
+ vcs_cov_cfg_file: ""
+
+ // Supply the cov configuration file for assertions.
+ // Note that this needs to be set as -cm_assert_hier <file>.
+ vcs_cov_assert_cfg_file: ""
+
+ // Supply the cov exclusion files.
+ vcs_cov_excl_files: []
// pass and fail patterns
build_fail_patterns: ["^Error-.*$"]
@@ -131,9 +140,9 @@
build_opts: [// Enable the required cov metrics
"-cm {cov_metrics}",
// Set the coverage hierarchy
- "{vcs_cov_hier}",
+ "{vcs_cov_cfg_file}",
// Set the assert coverage hierarchy
- "{vcs_cov_assert_hier}",
+ "{vcs_cov_assert_cfg_file}",
// Cover all continuous assignments
"-cm_line contassign",
// Dump toggle coverage on mdas, array of structs and on ports only
diff --git a/hw/dv/data/xcelium/xcelium.hjson b/hw/dv/data/xcelium/xcelium.hjson
index 090b349..a816192 100644
--- a/hw/dv/data/xcelium/xcelium.hjson
+++ b/hw/dv/data/xcelium/xcelium.hjson
@@ -50,12 +50,14 @@
// Coverage related.
// By default, collect all coverage metrics: block:expr:fsm:toggle:functional.
cov_metrics: all
+
// Supply the cov configuration file.
// Note that this needs to be set as -covfile <file>.
xcelium_cov_cfg_file: ""
- // Supply the cov refinement file.
+
+ // Supply the cov refinement files.
// Note that this needs to be set as -load_refinement <file>.
- xcelium_cov_refine_file: ""
+ xcelium_cov_refine_files: [""]
// Set the coverage directories.
cov_work_dir: "{scratch_path}/coverage"
@@ -80,7 +82,8 @@
cov_report_cmd: "{job_prefix} imc"
cov_report_opts: ["-64bit",
"-licqueue",
- "-exec {tool_srcs_dir}/cov_report.tcl"]
+ "-exec {tool_srcs_dir}/cov_report.tcl",
+ "{xcelium_cov_refine_files}"]
cov_report_txt: "{cov_report_dir}/cov_report.txt"
cov_report_page: "index.html"
@@ -92,7 +95,7 @@
"-64bit",
"-licqueue",
"-load {cov_merge_db_dir}",
- "{xcelium_cov_refine_file}"]
+ "{xcelium_cov_refine_files}"]
// pass and fail patterns
build_fail_patterns: ["\\*E.*$"]
diff --git a/hw/ip/prim/dv/prim_lfsr/prim_lfsr_sim_cfg.hjson b/hw/ip/prim/dv/prim_lfsr/prim_lfsr_sim_cfg.hjson
index 1c64b02..65cc603 100644
--- a/hw/ip/prim/dv/prim_lfsr/prim_lfsr_sim_cfg.hjson
+++ b/hw/ip/prim/dv/prim_lfsr/prim_lfsr_sim_cfg.hjson
@@ -37,10 +37,13 @@
}
]
- // TODO: each build_mode needs to supply {build_mode}_vcs_cov_hier, else the
+ // TODO: each build_mode needs to supply {build_mode}_{tool}_cov_cfg_file, else the
// build breaks.
- prim_lfsr_dw_8_vcs_cov_hier: ""
- prim_lfsr_dw_24_vcs_cov_hier: ""
+ prim_lfsr_dw_8_vcs_cov_cfg_file: ""
+ prim_lfsr_dw_24_vcs_cov_cfg_file: ""
+
+ prim_lfsr_dw_8_xcelium_cov_cfg_file: ""
+ prim_lfsr_dw_24_xcelium_cov_cfg_file: ""
// List of test specifications.
tests: [
diff --git a/hw/top_earlgrey/dv/chip_sim_cfg.hjson b/hw/top_earlgrey/dv/chip_sim_cfg.hjson
index c0251e2..c3f42fb 100644
--- a/hw/top_earlgrey/dv/chip_sim_cfg.hjson
+++ b/hw/top_earlgrey/dv/chip_sim_cfg.hjson
@@ -52,14 +52,14 @@
// boundary of all pre-verified IPs and full coverage on non-pre-verified
// IPs. See `hw/dv/data/common_sim_cfg.hjson` for the default value.
{
- name: default_vcs_cov_hier
+ name: default_vcs_cov_cfg_file
value: "-cm_hier {tool_srcs_dir}/chip_cover.cfg"
}
// Used by 'cover_reg_top' only builds - we only cover the *_reg_top of
// the non-pre-verified modules at the chip level. See
// `hw/dv/data//common_sim_cfg.hjson` for the default value.
{
- name: cover_reg_top_vcs_cov_hier
+ name: cover_reg_top_vcs_cov_cfg_file
value: "-cm_hier {tool_srcs_dir}/chip_cover_reg_top.cfg"
}