| // 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: uart | |
| // Top level dut name (sv module). | |
| dut: uart | |
| // Top level testbench name (sv module). | |
| tb: tb | |
| // Simulator used to sign off this block | |
| tool: vcs | |
| // Fusesoc core file used for building the file list. | |
| fusesoc_core: lowrisc:dv:uart_sim:0.1 | |
| // Testplan hjson file. | |
| testplan: "{proj_root}/hw/ip/uart/data/uart_testplan.hjson" | |
| // RAL spec - used to generate the RAL model. | |
| ral_spec: "{proj_root}/hw/ip/uart/data/uart.hjson" | |
| // Import additional common sim cfg files. | |
| import_cfgs: [// Project wide common sim cfg file | |
| "{proj_root}/hw/dv/tools/dvsim/common_sim_cfg.hjson", | |
| // Common CIP test lists | |
| "{proj_root}/hw/dv/tools/dvsim/tests/csr_tests.hjson", | |
| "{proj_root}/hw/dv/tools/dvsim/tests/intr_test.hjson", | |
| "{proj_root}/hw/dv/tools/dvsim/tests/tl_access_tests.hjson", | |
| "{proj_root}/hw/dv/tools/dvsim/tests/stress_tests.hjson"] | |
| // Add additional tops for simulation. | |
| sim_tops: ["uart_bind", "uart_cov_bind"] | |
| // Default iterations for all tests - each test entry can override this. | |
| reseed: 50 | |
| // Default UVM test and seq class name. | |
| uvm_test: uart_base_test | |
| uvm_test_seq: uart_base_vseq | |
| // Add UART specific exclusion files. | |
| vcs_cov_excl_files: ["{proj_root}/hw/ip/uart/dv/cov/uart_cov_excl.el"] | |
| // List of test specifications. | |
| tests: [ | |
| { | |
| name: uart_smoke | |
| uvm_test_seq: uart_smoke_vseq | |
| } | |
| { | |
| name: uart_tx_rx | |
| uvm_test_seq: uart_tx_rx_vseq | |
| } | |
| { | |
| name: uart_fifo_full | |
| uvm_test_seq: uart_fifo_full_vseq | |
| } | |
| { | |
| name: uart_fifo_overflow | |
| uvm_test_seq: uart_fifo_overflow_vseq | |
| } | |
| { | |
| name: uart_fifo_reset | |
| // need more seeds to cover uart_env_cov::fifo_level_cg | |
| reseed: 300 | |
| uvm_test_seq: uart_fifo_reset_vseq | |
| } | |
| { | |
| name: uart_rx_oversample | |
| uvm_test_seq: uart_rx_oversample_vseq | |
| run_opts: ["+zero_delays=1"] | |
| } | |
| { | |
| name: uart_intr | |
| uvm_test_seq: uart_intr_vseq | |
| // 3ms | |
| run_opts: ["+test_timeout_ns=3000000000"] | |
| } | |
| { | |
| name: uart_noise_filter | |
| uvm_test_seq: uart_noise_filter_vseq | |
| } | |
| { | |
| name: uart_rx_start_bit_filter | |
| uvm_test_seq: uart_rx_start_bit_filter_vseq | |
| } | |
| { | |
| name: uart_rx_parity_err | |
| uvm_test_seq: uart_rx_parity_err_vseq | |
| } | |
| { | |
| name: uart_tx_ovrd | |
| uvm_test_seq: uart_tx_ovrd_vseq | |
| } | |
| { | |
| name: uart_loopback | |
| uvm_test_seq: uart_loopback_vseq | |
| } | |
| { | |
| name: uart_perf | |
| uvm_test_seq: uart_perf_vseq | |
| run_opts: ["+zero_delays=1"] | |
| } | |
| { | |
| name: uart_long_xfer_wo_dly | |
| uvm_test_seq: uart_long_xfer_wo_dly_vseq | |
| run_opts: ["+zero_delays=1"] | |
| } | |
| { | |
| name: uart_stress_all_with_rand_reset | |
| // need more seeds to cover uart_agent_cov::uart_reset_cg | |
| reseed: 100 | |
| } | |
| ] | |
| // List of regressions. | |
| regressions: [ | |
| { | |
| name: smoke | |
| tests: ["uart_smoke"] | |
| } | |
| ] | |
| } |