// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  // Sim modes are collection of build_opts and run_opts
  // These are only set on the command line
  // These are different from the build modes in the sense that these collection of
  // options are appended to actual build_modes
  build_modes: [
    {
      name: waves
      is_sim_mode: 1
      en_build_modes: ["{tool}_waves"]
    }
    {
      name: cov
      is_sim_mode: 1
      en_build_modes: ["{tool}_cov"]
    }
    {
      name: profile
      is_sim_mode: 1
      en_build_modes: ["{tool}_profile"]
    }
    {
      name: xprop
      is_sim_mode: 1
      en_build_modes: ["{tool}_xprop"]
    }
  ]

  run_modes: [
    {
      name: uvm_trace
      run_opts: ["+UVM_PHASE_TRACE", "+UVM_CONFIG_DB_TRACE", "+UVM_OBJECTION_TRACE"]
    }
  ]
}
