|  | // Copyright lowRISC contributors. | 
|  | // Licensed under the Apache License, Version 2.0, see LICENSE for details. | 
|  | // SPDX-License-Identifier: Apache-2.0 | 
|  | { | 
|  | build_cmd:  "vlib work && {job_prefix} vlog" | 
|  | run_cmd:    "{job_prefix} vsim" | 
|  |  | 
|  | build_opts: ["-timescale 1ns/1ps", | 
|  | "+incdir+\"{RIVIERA_HOME}/vlib/uvm-1.2/src\"", | 
|  | "\"{RIVIERA_HOME}/vlib/uvm-1.2/src/uvm_pkg.sv\"", | 
|  | "-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'", | 
|  | ] | 
|  |  | 
|  | run_opts:   ["-sv_seed={seed}", | 
|  | "-c", | 
|  | "{tb}", | 
|  | "-lib {sv_flist_gen_dir}/work", | 
|  | "+UVM_TESTNAME={uvm_test}", | 
|  | "+UVM_TEST_SEQ={uvm_test_seq}", | 
|  | "-sv_lib \"{RIVIERA_HOME}/bin/uvm_1_2_dpi\"", | 
|  | "-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/riviera/riviera_run.do" | 
|  |  | 
|  | // Coverage related. | 
|  | // TODO: These options have to be filled in. | 
|  | cov_db_dir: "" | 
|  |  | 
|  | // 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: "" | 
|  |  | 
|  | // 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_merge" | 
|  | 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_dashboard: "" | 
|  |  | 
|  | // 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: [] | 
|  |  | 
|  | // pass and fail patterns | 
|  | build_fail_patterns: ["\\*E.*$"] | 
|  | run_fail_patterns:   ["\\*E.*$"] // Null pointer error | 
|  |  | 
|  | build_modes: [ | 
|  | { | 
|  | name: riviera_gui | 
|  | is_sim_mode: 1 | 
|  | build_opts: [] | 
|  | run_opts: [] | 
|  | } | 
|  | { | 
|  | name: riviera_waves | 
|  | is_sim_mode: 1 | 
|  | } | 
|  | { | 
|  | name: riviera_waves_off | 
|  | is_sim_mode: 1 | 
|  | build_opts: [] | 
|  | } | 
|  | // TODO support coverage for riviera | 
|  | { | 
|  | name: riviera_cov | 
|  | is_sim_mode: 1 | 
|  | build_opts: [] | 
|  | run_opts:   [] | 
|  | } | 
|  | // TODO support profiling for riviera | 
|  | { | 
|  | name: riviera_profile | 
|  | is_sim_mode: 1 | 
|  | build_opts: [] | 
|  | run_opts:   [] | 
|  | } | 
|  | { | 
|  | name: riviera_xprop | 
|  | is_sim_mode: 1 | 
|  | build_opts: [] | 
|  | } | 
|  | // TODO: Add build and run options to enable zero delay loop detection. | 
|  | { | 
|  | name: riviera_loopdetect | 
|  | is_sim_mode: 1 | 
|  | build_opts: [] | 
|  | run_opts:   [] | 
|  | } | 
|  | ] | 
|  | } |