// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  // Name of the sim cfg - typically same as the name of the DUT.
  name: prim_lfsr

  // Top level dut name (sv module).
  dut: prim_lfsr

  // Top level testbench name (sv module).
  tb: prim_lfsr_tb

  // Simulator used to sign off this block
  tool: vcs

  // Fusesoc core file used for building the file list.
  fusesoc_core: lowrisc:dv:prim_lfsr_sim:0.1

  // Import additional common sim cfg files.
  import_cfgs: ["{proj_root}/hw/dv/tools/dvsim/common_sim_cfg.hjson"]

  // Default iterations for all tests - each test entry can override this.
  reseed: 50

  // Add PRIM_LSFR specific exclusion files.
  vcs_cov_excl_files: ["{proj_root}/hw/ip/prim/dv/prim_lfsr/data/prim_lfsr_cov_excl.el"]

  build_modes: [
    {
      name: prim_lfsr_dw_8
      build_opts: ["+define+MAX_LFSR_DW=8"]
    }
    {
      name: prim_lfsr_dw_24
      build_opts: ["+define+MAX_LFSR_DW=24"]
    }
  ]

  // dw_8 is only used for "smoke" sims, so coverage collection is not needed.
  prim_lfsr_dw_8_vcs_cov_cfg_file: ""
  prim_lfsr_dw_24_vcs_cov_cfg_file: "-cm_hier {proj_root}/hw/ip/prim/dv/prim_lfsr/data/prim_lfsr_cover.cfg"

  prim_lfsr_dw_8_xcelium_cov_cfg_file: ""
  prim_lfsr_dw_24_xcelium_cov_cfg_file: ""

  // List of test specifications.
  tests: [
    {
      name: prim_lfsr_smoke
      // limit max lfsr length to reduce private CI runtime.
      build_mode: prim_lfsr_dw_8
    }
    {
      name: prim_lfsr_test
      build_mode: prim_lfsr_dw_24
    }
  ]

  // List of regressions.
  regressions: [
    {
      name: smoke
      tests: ["prim_lfsr_smoke"]
    }
    {
      name: nightly
      tests:["prim_lfsr_test"]
    }
  ]
}

