| // 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" |
| } |