blob: 0f1c3b4fb01833d1fae4447a8c37c9b1f1183e1b [file] [log] [blame]
// 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: chip
// Top level dut name (sv module).
dut: top_earlgrey
// Top level testbench name (sv module).
tb: tb
// Default simulator used to sign off.
tool: vcs
// Fusesoc core file used for building the file list.
fusesoc_core: lowrisc:dv:chip_sim:0.1
// Testplan hjson file.
testplan: "{proj_root}/hw/top_earlgrey/data/chip_testplan.hjson"
// RAL spec - used to generate the RAL model.
ral_spec: "{proj_root}/hw/top_earlgrey/data/top_earlgrey.hjson"
// Add additional tops for simulation.
sim_tops: ["-top xbar_main_bind",
"-top xbar_peri_bind"]
// Import additional common sim cfg files.
import_cfgs: [// Project wide common sim cfg file
"{proj_root}/hw/dv/data/common_sim_cfg.hjson",
// Common CIP test lists
"{proj_root}/hw/dv/data/tests/mem_tests.hjson",
"{proj_root}/hw/dv/data/tests/tl_access_tests.hjson"]
// Default iterations for all tests - each test entry can override this.
reseed: 1
// Default UVM test and seq class name.
uvm_test: chip_base_test
uvm_test_seq: chip_base_vseq
sw_build_device: sim_dv
// Add default build_opts.
build_opts: [// Use generic implementations of prim modules.
"+define+PRIM_DEFAULT_IMPL=prim_pkg::ImplGeneric"]
// Add default run opts.
run_opts: [// TODO: temp fix for C based tests.
"+disable_assert_final_checks"]
// Add build modes.
build_modes: [
{
name: en_ibex_tracer
build_opts: ["+define+RVFI=1"]
}
]
// Add run modes.
run_modes: [
{
name: stub_cpu
run_opts: ["+stub_cpu=1"]
}
{
// Append stub cpu mode to mem_tests_mode
name: mem_tests_mode
en_run_modes: ["stub_cpu"]
}
]
// List of test specifications.
tests: [
{
name: chip_sanity
uvm_test_seq: chip_sw_test_base_vseq
sw_name: hello_world
sw_dir: examples/hello_world
}
{
name: chip_flash_test
uvm_test_seq: chip_sw_test_base_vseq
sw_name: flash_test
sw_dir: tests/flash_ctrl
run_opts: ["+sw_test_timeout_ns=15000000"]
}
{
name: chip_sha256_test
uvm_test_seq: chip_sw_test_base_vseq
sw_name: sha256_test
sw_dir: tests/hmac
run_opts: ["+sw_test_timeout_ns=4000000"]
}
{
name: chip_rv_timer_test
uvm_test_seq: chip_sw_test_base_vseq
sw_name: rv_timer_test
sw_dir: tests/rv_timer
run_opts: ["+sw_test_timeout_ns=40000000"]
}
{
name: coremark
uvm_test_seq: chip_sw_test_base_vseq
sw_name: coremark
sw_dir: benchmarks/coremark
run_opts: ["+sw_test_timeout_ns=20000000"]
}
// TODO: CSR suite of tests. Rather than reuse the common one, we are
// replicating here since we dont want CSR tests added to the sanity just yet.
{
name: chip_csr_hw_reset
uvm_test_seq: chip_common_vseq
run_opts: ["+en_scb=0", "+csr_hw_reset"]
en_run_modes: ["stub_cpu"]
}
{
name: chip_csr_rw
uvm_test_seq: chip_common_vseq
run_opts: ["+en_scb=0", "+csr_rw"]
en_run_modes: ["stub_cpu"]
}
{
name: chip_csr_bit_bash
uvm_test_seq: chip_common_vseq
run_opts: ["+en_scb=0", "+csr_bit_bash"]
en_run_modes: ["stub_cpu"]
}
{
name: chip_csr_aliasing
uvm_test_seq: chip_common_vseq
run_opts: ["+en_scb=0", "+csr_aliasing"]
en_run_modes: ["stub_cpu"]
}
{
name: "chip_same_csr_outstanding"
uvm_test_seq: chip_common_vseq
run_opts: ["+en_scb=0", "+run_same_csr_outstanding"]
en_run_modes: ["stub_cpu"]
}
{
name: chip_tl_errors
uvm_test_seq: chip_common_vseq
run_opts: ["+run_tl_errors"]
en_run_modes: ["stub_cpu"]
}
]
// List of regressions.
regressions: [
{
name: sanity
tests: ["chip_sanity"]
}
{
name: sw_access
tests: ["chip_csr_hw_reset",
"chip_csr_rw",
"chip_csr_bit_bash",
"chip_csr_aliasing"]
}
]
}