| // Copyright lowRISC contributors. |
| // Licensed under the Apache License, Version 2.0, see LICENSE for details. |
| // SPDX-License-Identifier: Apache-2.0 |
| { |
| project: opentitan |
| doc_server: "docs.opentitan.org" |
| results_server: "reports.opentitan.org" |
| |
| flow: sim |
| flow_makefile: "{proj_root}/hw/dv/data/sim.mk" |
| |
| import_cfgs: ["{proj_root}/hw/dv/data/common_modes.hjson", |
| "{proj_root}/hw/dv/data/fusesoc.hjson", |
| "{proj_root}/hw/dv/data/gen_ral_pkg.hjson", |
| "{proj_root}/hw/dv/data/{simulator}/{simulator}.hjson"] |
| |
| // Default directory structure for the output |
| scratch_path: "{scratch_root}/{branch}.{dut}.{flow}.{simulator}" |
| build_dir: "{scratch_path}/{build_mode}" |
| run_dir_name: "{index}.{test}" |
| run_dir: "{scratch_path}/{run_dir_name}/out" |
| sw_build_dir: "{run_dir}/sw_build" |
| |
| // pass and fail patterns |
| pass_patterns: ["^TEST PASSED (UVM_)?CHECKS$"] |
| fail_patterns: ["^UVM_ERROR\\s[^:].*$", |
| "^Assert failed: ", |
| "^\\s*Offending '.*'", |
| "^TEST FAILED (UVM_)?CHECKS$"] |
| |
| // Default TileLink widths |
| tl_aw: 32 |
| tl_dw: 32 |
| tl_dbw: 4 |
| |
| // Default UVM verbosity settings |
| n: UVM_NONE |
| l: UVM_LOW |
| m: UVM_MEDIUM |
| h: UVM_HIGH |
| d: UVM_DEBUG |
| |
| // Default waves dump settings |
| dump_file: waves.{dump} |
| |
| // Top level simulation entities. |
| sim_tops: ["-top {tb}"] |
| |
| // Default build and run opts |
| build_opts: [// List multiple tops for the simulation |
| "{sim_tops}", |
| // Standard UVM defines |
| "+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}"] |
| |
| run_opts: ["+UVM_NO_RELNOTES", |
| "+UVM_VERBOSITY={verbosity}"] |
| |
| // Default list of things to export to shell |
| exports: [ |
| DUMP_FILE: {dump_file} |
| WAVES: {waves} |
| DUT_TOP: {dut} |
| TB_TOP: {tb} |
| ] |
| |
| // Build modes are collection of build_opts and run_opts |
| // A test can enable a specific build mode by setting 'use_build_mode' key |
| build_modes: [ |
| { |
| name: foo |
| build_opts: ["+define+bx", |
| "+define+by", |
| "+define+bz"] |
| run_opts: ["+rx=1", |
| "+ry=2", |
| "+rz=3"] |
| } |
| { |
| name: bar |
| build_opts: ["+define+bbaru1", |
| "+define+bbaru2", |
| "+define+bbaru3"] |
| run_opts: ["+rbar1u=1", |
| "+rbar2u=2", |
| "+rbar3u=3"] |
| } |
| ] |
| |
| // 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". |
| // Test sets 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: sanity |
| tests: ["{name}_sanity"] |
| } |
| |
| { |
| name: all |
| tests: [] |
| } |
| |
| { |
| name: all_once |
| reseed: 1 |
| tests: [] |
| } |
| |
| { |
| name: nightly |
| tests: [] |
| en_sim_modes: ["cov"] |
| } |
| ] |
| |
| // Project defaults for VCS |
| vcs_cov_hier: "-cm_hier {proj_root}/hw/dv/tools/vcs/cover.cfg" |
| vcs_cov_excl_files: ["{proj_root}/hw/dv/tools/vcs/common_cov_excl.el"] |
| } |