| # Copyright lowRISC contributors. | |
| # Licensed under the Apache License, Version 2.0, see LICENSE for details. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # Entry point test Makefile for building and running tests. | |
| # These are generic set of option groups that apply to all testbenches. | |
| # This flow requires the following options to be set: | |
| # DV_DIR - current dv directory that contains the test Makefile | |
| # DUT_TOP - top level dut module name | |
| # TB_TOP - top level tb module name | |
| # DOTF - .f file used for compilation | |
| # COMPILE_KEY - compile option set | |
| # TEST_NAME - name of the test to run - this is supplied on the command line | |
| DV_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) | |
| export DUT_TOP := uart | |
| export TB_TOP := tb | |
| FUSESOC_CORE := lowrisc:dv:uart_sim:0.1 | |
| COMPILE_KEY ?= default | |
| COV_DUT_EXCL ?= ${DV_DIR}/cov/uart_cov_excl.el | |
| ########################################################## | |
| # A D D I N D I V I D U A L T E S T S B E L O W # | |
| ########################################################## | |
| TEST_NAME ?= uart_sanity | |
| UVM_TEST ?= uart_base_test | |
| UVM_TEST_SEQ ?= uart_base_vseq | |
| # common tests/seqs | |
| include ${DV_DIR}/../../../dv/tools/common_tests.mk | |
| ifeq (${TEST_NAME},uart_sanity) | |
| UVM_TEST_SEQ = uart_sanity_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_tx_rx) | |
| UVM_TEST_SEQ = uart_tx_rx_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_fifo_full) | |
| UVM_TEST_SEQ = uart_fifo_full_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_fifo_overflow) | |
| UVM_TEST_SEQ = uart_fifo_overflow_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_fifo_reset) | |
| UVM_TEST_SEQ = uart_fifo_reset_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_rx_oversample) | |
| UVM_TEST_SEQ = uart_rx_oversample_vseq | |
| RUN_OPTS += +zero_delays=1 | |
| endif | |
| ifeq (${TEST_NAME},uart_intr) | |
| RUN_OPTS += +test_timeout_ns=3000_000_000 | |
| UVM_TEST_SEQ = uart_intr_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_noise_filter) | |
| UVM_TEST_SEQ = uart_noise_filter_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_rx_start_bit_filter) | |
| UVM_TEST_SEQ = uart_rx_start_bit_filter_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_rx_parity_err) | |
| UVM_TEST_SEQ = uart_rx_parity_err_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_tx_ovrd) | |
| UVM_TEST_SEQ = uart_tx_ovrd_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_loopback) | |
| UVM_TEST_SEQ = uart_loopback_vseq | |
| endif | |
| ifeq (${TEST_NAME},uart_perf) | |
| UVM_TEST_SEQ = uart_perf_vseq | |
| RUN_OPTS += +zero_delays=1 | |
| endif | |
| ifeq (${TEST_NAME},uart_stress_all) | |
| RUN_OPTS += +test_timeout_ns=10_000_000_000 | |
| UVM_TEST_SEQ = uart_stress_all_vseq | |
| endif | |
| #################################### | |
| # Include the tool Makefile below # | |
| # Dont add anything else below it! # | |
| #################################### | |
| include ${DV_DIR}/../../../dv/tools/Makefile |