blob: 794fd904578e1004a97bc5fdcb64d1118b29e65a [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
build_cmd: "{job_prefix} {QUESTA_HOME}/questasim/linux_x86_64/qrun -optimize"
run_cmd: "{job_prefix} {QUESTA_HOME}/questasim/linux_x86_64/qrun -simulate"
build_opts: [ "-timescale 1ns/1ps",
"-outdir {build_dir}/qrun.out",
"-uvm -uvmhome {QUESTA_HOME}/questasim/verilog_src/uvm-1.2",
"-mfcu",
"-f {sv_flist}",
// List multiple tops for the simulation. Prepend each top level with `-top`.
"{eval_cmd} echo {sim_tops} | sed -E 's/(\\S+)/-top \\1/g'",
"-voptargs=\"+acc=nr\""
]
run_opts: [ "-outdir {build_dir}/qrun.out",
"-sv_seed {seed}",
// dv_macros.svh has a macro printing null using %0d
// format specifier, Questa throws an error on this
// we demote this error in Questa
"-suppress vsim-8323",
// Questa forces all declared virtual interfaces to be allocated,
// even in classes that are not even created at runtime. The switch
// below demotes the associated error thrown.
"-permit_unmatched_virtual_intf",
"+UVM_TESTNAME={uvm_test}",
"+UVM_TEST_SEQ={uvm_test_seq}",
"-do {run_script}"
]
// Supported wave dumping formats (in order of preference).
supported_wave_formats: []
// Default tcl script used when running the sim. Override if needed.
run_script: "{dv_root}/tools/questa/sim.tcl"
// Coverage related.
cov_db_dir: "{scratch_path}/coverage/{build_mode}.ucdb"
// 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_dir}/snps/coverage/db/testdata/{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_path}/cov_report"
cov_merge_db_dir: ""
cov_merge_cmd: ""
cov_merge_opts: []
// Generate covreage reports in text as well as html.
cov_report_dir: "{scratch_path}/cov_report"
cov_report_cmd: ""
cov_report_opts: []
cov_report_txt: "{cov_report_dir}/dashboard.txt"
// Analyzing coverage - this is done by invoking --cov-analyze switch. It opens up the
// GUI for visual analysis.
cov_analyze_dir: "{scratch_path}/cov_analyze"
cov_analyze_cmd: ""
cov_analyze_opts: []
// By default, collect all coverage metrics.
cov_metrics: "bcestf"
// pass and fail patterns
build_fail_patterns: ["^## \\*\\* Error.*$"
"^\\*\\* Error.*$"]
run_fail_patterns: ["^\\*\\* Error.*$"]
build_modes: [
{
name: questa_gui
is_sim_mode: 1
build_opts: []
run_opts: ["-gui"]
}
{
name: questa_waves
is_sim_mode: 1
}
// TODO Questa coverage only currently supported in the GUI with no merging
{
name: questa_cov
is_sim_mode: 1
build_opts: ["+cover={cov_metrics}"]
run_opts: ["-coverage", "-gui"]
}
// TODO support profiling for questa
{
name: questa_profile
is_sim_mode: 1
build_opts: []
run_opts: []
}
{
name: questa_xprop
is_sim_mode: 1
build_opts: []
}
{
// TODO: Add build and run options to enable zero delay loop detection.
name: questa_loopdetect
is_sim_mode: 1
build_opts: []
run_opts: []
}
]
}