mirror of
https://github.com/openhwgroup/cve2.git
synced 2025-04-23 05:27:30 -04:00
[dv] Manually update dvsim config files
Signed-off-by: Udi <udij@google.com>
This commit is contained in:
parent
7710947fe6
commit
b72d263eac
6 changed files with 90 additions and 29 deletions
|
@ -16,7 +16,6 @@
|
|||
results_server_prefix: "gs://"
|
||||
results_server_url_prefix: "https://"
|
||||
results_server_cmd: "CLOUDSDK_PYTHON=/usr/bin/python2.7 /usr/bin/gsutil"
|
||||
results_server_css_path: "{results_server_url_prefix}{results_server}/css/style.css"
|
||||
|
||||
results_server_path: "{results_server_prefix}{results_server}/{rel_path}"
|
||||
results_server_dir: "{results_server_path}/latest"
|
||||
|
|
|
@ -23,10 +23,11 @@
|
|||
|
||||
// pass and fail patterns
|
||||
build_pass_patterns: []
|
||||
build_fail_patterns: []
|
||||
build_fail_patterns: ["^ERROR:.*$"] // fusesoc build error
|
||||
run_pass_patterns: ["^TEST PASSED (UVM_)?CHECKS$"]
|
||||
run_fail_patterns: ["^UVM_ERROR\\s[^:].*$",
|
||||
"^UVM_FATAL\\s[^:].*$",
|
||||
"^UVM_WARNING\\s[^:].*$",
|
||||
"^Assert failed: ",
|
||||
"^\\s*Offending '.*'",
|
||||
"^TEST FAILED (UVM_)?CHECKS$"]
|
||||
|
@ -43,6 +44,11 @@
|
|||
h: UVM_HIGH
|
||||
d: UVM_DEBUG
|
||||
|
||||
// Path to the dut instance (this is used in a couple of places such as coverage cfg
|
||||
// file, xprop cfg file etc. If this is different for your block, then override it with
|
||||
// the 'overrides' directive.
|
||||
dut_instance: "{tb}.dut"
|
||||
|
||||
// Default waves dump settings
|
||||
dump_base: waves
|
||||
|
||||
|
@ -69,6 +75,7 @@
|
|||
WAVES: {waves}
|
||||
DUT_TOP: {dut}
|
||||
TB_TOP: {tb}
|
||||
dut_instance: {dut_instance}
|
||||
]
|
||||
|
||||
// Regressions are tests that can be grouped together and run in one shot
|
||||
|
|
|
@ -5,7 +5,9 @@
|
|||
sv_flist_gen_cmd: fusesoc
|
||||
fusesoc_core_: "{eval_cmd} echo \"{fusesoc_core}\" | tr ':' '_'"
|
||||
sv_flist_gen_opts: ["--cores-root {proj_root}",
|
||||
"run --target=sim --build-root={build_dir}",
|
||||
"run",
|
||||
"--target=sim",
|
||||
"--build-root={build_dir}",
|
||||
"--setup {fusesoc_core}"]
|
||||
sv_flist_gen_dir: "{build_dir}/sim-vcs"
|
||||
sv_flist: "{sv_flist_gen_dir}/{fusesoc_core_}.scr"
|
||||
|
|
|
@ -11,13 +11,16 @@ all: build run
|
|||
###############################
|
||||
build: compile_result
|
||||
|
||||
pre_compile:
|
||||
@echo "[make]: pre_compile"
|
||||
mkdir -p ${build_dir} && env | sort > ${build_dir}/env_vars
|
||||
prep_tool_srcs:
|
||||
@echo "[make]: prep_tool_srcs"
|
||||
mkdir -p ${tool_srcs_dir}
|
||||
cp -Ru ${tool_srcs} ${tool_srcs_dir}/.
|
||||
|
||||
gen_sv_flist: pre_compile
|
||||
pre_compile:
|
||||
@echo "[make]: pre_compile"
|
||||
mkdir -p ${build_dir}
|
||||
|
||||
gen_sv_flist: pre_compile prep_tool_srcs
|
||||
@echo "[make]: gen_sv_flist"
|
||||
cd ${build_dir} && ${sv_flist_gen_cmd} ${sv_flist_gen_opts}
|
||||
|
||||
|
@ -35,7 +38,7 @@ run: run_result
|
|||
|
||||
pre_run:
|
||||
@echo "[make]: pre_run"
|
||||
mkdir -p ${run_dir} && env | sort > ${run_dir}/env_vars
|
||||
mkdir -p ${run_dir}
|
||||
|
||||
simulate:
|
||||
@echo "[make]: simulate"
|
||||
|
@ -58,14 +61,17 @@ debug_waves:
|
|||
############################
|
||||
# Merge coverage if there are multiple builds.
|
||||
cov_merge:
|
||||
@echo "[make]: cov_merge"
|
||||
${cov_merge_cmd} ${cov_merge_opts}
|
||||
|
||||
# Open coverage tool to review and create report or exclusion file.
|
||||
cov_analyze:
|
||||
cov_analyze: prep_tool_srcs
|
||||
@echo "[make]: cov_analyze"
|
||||
${cov_analyze_cmd} ${cov_analyze_opts}
|
||||
|
||||
# Generate coverage reports.
|
||||
cov_report:
|
||||
@echo "[make]: cov_report"
|
||||
${cov_report_cmd} ${cov_report_opts}
|
||||
|
||||
clean:
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
"+UVM_TEST_SEQ={uvm_test_seq}"]
|
||||
|
||||
// Coverage related.
|
||||
cov_db_dir: "{build_dir}/cov.vdb"
|
||||
cov_db_dir: "{scratch_path}/coverage/{build_mode}.vdb"
|
||||
|
||||
// Individual test specific coverage data - this will be deleted if the test fails
|
||||
// so that coverage from failiing tests is not included in the final report.
|
||||
|
@ -74,8 +74,10 @@
|
|||
"-group instcov_for_score",
|
||||
"-line nocasedef",
|
||||
"-format both",
|
||||
"-elfile {vcs_cov_excl_files}",
|
||||
"-report {cov_report_dir}"]
|
||||
cov_report_dashboard: "{cov_report_dir}/dashboard.txt"
|
||||
cov_report_txt: "{cov_report_dir}/dashboard.txt"
|
||||
cov_report_page: "cov_report/dashboard.html"
|
||||
|
||||
// Analyzing coverage - this is done by invoking --cov-analyze switch. It opens up the
|
||||
// GUI for visual analysis.
|
||||
|
@ -133,7 +135,7 @@
|
|||
run_opts: [// Enable the required cov metrics
|
||||
"-cm {cov_metrics}",
|
||||
// Same directory as build
|
||||
"-cm_dir {build_dir}/cov.vdb",
|
||||
"-cm_dir {cov_db_dir}",
|
||||
// Don't output cm.log which can be quite large
|
||||
"-cm_log /dev/null",
|
||||
// Provide a name to the coverage collected for this test
|
||||
|
|
|
@ -9,7 +9,10 @@
|
|||
// {tool_srcs_dir} before running the simulation.
|
||||
tool_srcs: ["{proj_root}/dv/uvm/data/xcelium/*"]
|
||||
|
||||
build_opts: [" -elaborate -64bit -access +r -sv",
|
||||
build_opts: ["-elaborate -64bit -access +r -sv",
|
||||
"-licqueue",
|
||||
// TODO: duplicate primitives between OT and Ibex #1231
|
||||
"-ALLOWREDEFINITION",
|
||||
"-messages -errormax 50",
|
||||
"-timescale 1ns/1ps",
|
||||
"-f {sv_flist}",
|
||||
|
@ -17,39 +20,70 @@
|
|||
"-xmlibdirname {build_dir}/xcelium.d"]
|
||||
|
||||
run_opts: ["-input {tool_srcs_dir}/xcelium_{dump}.tcl",
|
||||
"-licqueue",
|
||||
"-64bit -xmlibdirname {build_dir}/xcelium.d -R",
|
||||
"+SVSEED={seed}",
|
||||
"+UVM_TESTNAME={uvm_test}",
|
||||
"+UVM_TEST_SEQ={uvm_test_seq}"]
|
||||
|
||||
// Vars that need to exported to the env.
|
||||
exports: [
|
||||
// Poll for an available license in all servers.
|
||||
CDS_LIC_QUEUE_POLL: 1
|
||||
// Poll for an available license every 1 min.
|
||||
CDS_LIC_QUEUE_POLL_INT: 60
|
||||
|
||||
// Export the cov_report path so that the tcl file can read these as env vars.
|
||||
cov_merge_db_dir: "{cov_merge_db_dir}"
|
||||
cov_report_dir: "{cov_report_dir}"
|
||||
]
|
||||
|
||||
// Coverage related.
|
||||
// TODO: These options have to be filled in.
|
||||
cov_db_dir: ""
|
||||
// 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.
|
||||
// Note that this needs to be set as -load_refinement <file>.
|
||||
xcelium_cov_refine_file: ""
|
||||
|
||||
// Set the coverage directories.
|
||||
cov_work_dir: "{scratch_path}/coverage"
|
||||
cov_db_dir: "{cov_work_dir}/{build_mode}"
|
||||
|
||||
// Individual test specific coverage data - this will be deleted if the test fails
|
||||
// so that coverage from failiing tests is not included in the final report.
|
||||
cov_db_test_dir_name: "{run_dir_name}.{seed}"
|
||||
cov_db_test_dir: ""
|
||||
cov_db_test_dir: "{cov_db_dir}/{cov_db_test_dir_name}"
|
||||
|
||||
// Merging coverage.
|
||||
// "cov_db_dirs" is a special variable that appends all build directories in use.
|
||||
// It is constructed by the tool itself.
|
||||
cov_merge_dir: "{scratch_base_path}/cov_merge"
|
||||
cov_merge_db_dir: ""
|
||||
cov_merge_cmd: ""
|
||||
cov_merge_opts: []
|
||||
cov_merge_db_dir: "{cov_merge_dir}/merged"
|
||||
cov_merge_cmd: "{job_prefix} imc"
|
||||
cov_merge_opts: ["-64bit",
|
||||
"-licqueue",
|
||||
"-exec {tool_srcs_dir}/cov_merge.tcl"]
|
||||
|
||||
// Generate covreage reports in text as well as html.
|
||||
cov_report_dir: "{scratch_base_path}/cov_report"
|
||||
cov_report_cmd: ""
|
||||
cov_report_opts: []
|
||||
cov_report_dashboard: ""
|
||||
cov_report_dir: "{scratch_base_path}/cov_report"
|
||||
cov_report_cmd: "{job_prefix} imc"
|
||||
cov_report_opts: ["-64bit",
|
||||
"-licqueue",
|
||||
"-exec {tool_srcs_dir}/cov_report.tcl"]
|
||||
cov_report_txt: "{cov_report_dir}/cov_report.txt"
|
||||
cov_report_page: "cov_report/index.html"
|
||||
|
||||
// Analyzing coverage - this is done by invoking --cov-analyze switch. It opens up the
|
||||
// GUI for visual analysis.
|
||||
cov_analyze_dir: "{scratch_base_path}/cov_analyze"
|
||||
cov_analyze_cmd: ""
|
||||
cov_analyze_opts: []
|
||||
cov_analyze_cmd: "{job_prefix} imc"
|
||||
cov_analyze_opts: ["-gui",
|
||||
"-64bit",
|
||||
"-licqueue",
|
||||
"-load {cov_merge_db_dir}",
|
||||
"{xcelium_cov_refine_file}"]
|
||||
|
||||
// pass and fail patterns
|
||||
build_fail_patterns: ["\\*E.*$"]
|
||||
|
@ -60,12 +94,23 @@
|
|||
name: xcelium_waves
|
||||
is_sim_mode: 1
|
||||
}
|
||||
// TODO support coverage for xcelium
|
||||
{
|
||||
name: xcelium_cov
|
||||
is_sim_mode: 1
|
||||
build_opts: []
|
||||
run_opts: []
|
||||
build_opts: [// Enable the required cov metrics.
|
||||
"-coverage {cov_metrics}",
|
||||
// Limit the scope of coverage collection to the DUT.
|
||||
"-covdut {dut}",
|
||||
// Set the coverage configuration file.
|
||||
"{xcelium_cov_cfg_file}"]
|
||||
run_opts: [// Coverage database output location.
|
||||
"-covworkdir {cov_work_dir}",
|
||||
// Set the scope to the build mode name.
|
||||
"-covscope {build_mode}",
|
||||
// Test coverage dir name to create under cov_db_dir.
|
||||
"-covtest {cov_db_test_dir_name}",
|
||||
// Overwrite the coverage data of a specific test/seed if it already exists.
|
||||
"-covoverwrite"]
|
||||
}
|
||||
// TODO support profile for xcelium
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue