blob: 1c4403ba6f6f2c02f58268dea9825707be91a393 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
flow: sim
// Where to find DV code
dv_root: "{proj_root}/hw/dv"
flow_makefile: "{dv_root}/tools/dvsim/sim.mk"
import_cfgs: ["{proj_root}/hw/data/common_project_cfg.hjson",
"{dv_root}/tools/dvsim/common_modes.hjson",
"{dv_root}/tools/dvsim/fusesoc.hjson",
"{dv_root}/tools/dvsim/bazel.hjson",
"{dv_root}/tools/dvsim/{tool}.hjson"]
// Default directory structure for the output
build_dir: "{scratch_path}/{build_mode}"
run_dir_name: "{index}.{test}"
run_dir: "{scratch_path}/{run_dir_name}/latest"
sw_root_dir: "{proj_root}/sw"
// Default file to store build_seed value
build_seed_file_path: "{build_dir}/build_seed.log"
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$",
"^Error:.*$"] // ISS errors
// Default TileLink widths
tl_aw: 32
tl_dw: 32
tl_dbw: 4
// Default UVM verbosity settings
expand_uvm_verbosity_n: UVM_NONE
expand_uvm_verbosity_l: UVM_LOW
expand_uvm_verbosity_m: UVM_MEDIUM
expand_uvm_verbosity_h: UVM_HIGH
expand_uvm_verbosity_f: UVM_FULL
expand_uvm_verbosity_d: UVM_DEBUG
// Default simulation verbosity (l => UVM_LOW). Can be overridden by
// the --verbosity command-line argument.
verbosity: l
// 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"
timescale: "1ns/1ps"
// Top level simulation entities.
sim_tops: ["{tb}"]
// Default build and run opts
build_opts: [// Standard UVM defines
"+define+UVM",
"+define+UVM_NO_DEPRECATED",
"+define+UVM_REGEX_NO_DPI",
"+define+UVM_REG_ADDR_WIDTH={tl_aw}",
"+define+UVM_REG_DATA_WIDTH={tl_dw}",
"+define+UVM_REG_BYTENABLE_WIDTH={tl_dbw}",
"+define+SIMULATION",
"+define+DUT_HIER={dut_instance}"]
run_opts: ["+UVM_NO_RELNOTES",
"+UVM_VERBOSITY={expand_uvm_verbosity_{verbosity}}"]
// Default list of things to export to shell
exports: [
{ dv_root: "{dv_root}" },
{ SIMULATOR: "{tool}" },
{ GUI: "{gui}"},
{ WAVES: "{waves}" },
{ DUT_TOP: "{dut}" },
{ TB_TOP: "{tb}" },
{ dut_instance: "{dut_instance}" }
]
// Build modes are collection of build_opts and run_opts
//
// To define a build mode that overrides these flags, add something
// like the following to the IP block's configuration:
//
// build_modes: [
// {
// name: foo
// build_opts: ["+define+bx",
// "+define+by",
// "+define+bz"]
// run_opts: ["+rx=1",
// "+ry=2",
// "+rz=3"]
// }
// ]
//
// To use a build mode for a specific test, set the 'use_build_mode' key.
//
build_modes: []
// Regressions are tests that can be grouped together and run in one shot
// By default, two regressions are made available - "all" and "nightly". Both
// run all available tests for the DUT. "nightly" enables coverage as well.
// The 'tests' key is set to an empty list, which indicates "run everything".
// Regressions can enable sim modes, which are a set of build_opts and run_opts
// that are grouped together. These are appended to the build modes used by the
// tests.
regressions: [
{
name: smoke
tests: []
reseed: 1
run_opts: [// Knob used to configure an existing test / vseq to have a shorter runtime.
"+smoke_test=1"
]
}
{
name: all
}
{
name: all_once
reseed: 1
}
{
name: nightly
en_sim_modes: ["cov"]
}
]
// Project defaults for VCS
vcs_cov_cfg_file: "{{build_mode}_vcs_cov_cfg_file}"
vcs_unr_cfg_file: "{dv_root}/tools/vcs/unr.cfg"
vcs_xprop_cfg_file: "{dv_root}/tools/vcs/xprop.cfg"
vcs_fsm_reset_cov_cfg_file: "{dv_root}/tools/vcs/fsm_reset_cov.cfg"
vcs_cov_excl_files: []
// Build-specific coverage cfg files for VCS.
default_vcs_cov_cfg_file: "-cm_hier {dv_root}/tools/vcs/cover.cfg+{dv_root}/tools/vcs/common_cov_excl.cfg"
cover_reg_top_vcs_cov_cfg_file: "-cm_hier {dv_root}/tools/vcs/cover_reg_top.cfg+{dv_root}/tools/vcs/common_cov_excl.cfg"
// Project defaults for Xcelium
xcelium_cov_cfg_file: "{{build_mode}_xcelium_cov_cfg_file}"
xcelium_unr_cfg_file: "{dv_root}/tools/xcelium/unr.cfg"
xcelium_cov_excl_script: "{dv_root}/tools/xcelium/common_cov_excl.tcl"
xcelium_cov_refine_files: []
// Build-specific coverage cfg files for Xcelium.
default_xcelium_cov_cfg_file: "{dv_root}/tools/xcelium/cover.ccf"
cover_reg_top_xcelium_cov_cfg_file: "{dv_root}/tools/xcelium/cover_reg_top.ccf"
}