blob: b320b8cb2352be5b1f3dd827bab462221f7b88fd [file] [log] [blame]
####################################################################################################
## 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 forr 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
UVM_TEST ?= uart_base_test
UVM_TEST_SEQ ?= uart_base_vseq
####################################################################################################
## 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
ifeq (${TEST_NAME},uart_sanity)
UVM_TEST_SEQ = uart_sanity_vseq
endif
ifeq (${TEST_NAME},uart_random)
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_intr_testmode)
UVM_TEST_SEQ = uart_intr_testmode_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
ifeq (${TEST_NAME},uart_csr_hw_reset)
UVM_TEST_SEQ = uart_csr_vseq
RUN_OPTS += +csr_hw_reset
RUN_OPTS += +en_scb=0
endif
ifeq (${TEST_NAME},uart_csr_rw)
UVM_TEST_SEQ = uart_csr_vseq
RUN_OPTS += +csr_rw
RUN_OPTS += +en_scb=0
endif
ifeq (${TEST_NAME},uart_csr_bit_bash)
UVM_TEST_SEQ = uart_csr_vseq
RUN_OPTS += +csr_bit_bash
RUN_OPTS += +en_scb=0
endif
ifeq (${TEST_NAME},uart_csr_aliasing)
UVM_TEST_SEQ = uart_csr_vseq
RUN_OPTS += +csr_aliasing
RUN_OPTS += +en_scb=0
endif
####################################################################################################
## Include the tool Makefile below ##
## Dont add anything else below it! ##
####################################################################################################
include ${DV_DIR}/../../../dv/tools/Makefile