// 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} xrun"
  run_cmd:    "{job_prefix} xrun"

  // Indicate the tool specific helper sources - these are copied over to the
  // {tool_srcs_dir} before running the simulation.
  tool_srcs:  ["{proj_root}/dv/uvm/data/xcelium/*"]

  build_opts: [" -elaborate -64bit -access +r -sv",
               "-messages -errormax 50",
               "-timescale 1ns/1ps",
               "-f {sv_flist}",
               "-uvmhome {UVM_HOME}",
               "-xmlibdirname {build_dir}/xcelium.d"]

  run_opts:   ["-input {tool_srcs_dir}/xcelium_{dump}.tcl",
               "-64bit -xmlibdirname {build_dir}/xcelium.d -R",
               "+SVSEED={seed}",
               "+UVM_TESTNAME={uvm_test}",
               "+UVM_TEST_SEQ={uvm_test_seq}"]

  // 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_base_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_base_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_base_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: xcelium_waves
      is_sim_mode: 1
    }
    // TODO support coverage for xcelium
    {
      name: xcelium_cov
      is_sim_mode: 1
      build_opts: []
      run_opts:   []
    }
    // TODO support profile for xcelium
    {
      name: xcelium_profile
      is_sim_mode: 1
      build_opts: []
      run_opts:   []
    }
    {
      name: xcelium_xprop
      is_sim_mode: 1
      # -xverbose  << add to see which modules does not have xprop enabled
      build_opts: ["-xprop F"]
    }
  ]
}
