blob: 2f4965d610fae3d7fe9afd16f6df14052e16691b [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 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 := gpio
export TB_TOP := tb
FUSESOC_CORE := lowrisc:dv:gpio_sim:0.1
COMPILE_KEY ?= default
COV_DUT_EXCL ?= ${DV_DIR}/cov/gpio_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 ?= gpio_sanity
UVM_TEST ?= gpio_base_test
UVM_TEST_SEQ ?= gpio_base_vseq
# common tests/seqs
include ${DV_DIR}/../../../dv/tools/common_tests.mk
ifeq (${TEST_NAME},gpio_sanity)
UVM_TEST_SEQ = gpio_sanity_vseq
endif
ifeq (${TEST_NAME},gpio_sanity_no_pullup_pulldown)
UVM_TEST_SEQ = gpio_sanity_vseq
RUN_OPTS += +no_pullup_pulldown=1
endif
ifeq ($(TEST_NAME),gpio_random_dout_din)
UVM_TEST_SEQ = gpio_random_dout_din_vseq
endif
ifeq ($(TEST_NAME),gpio_random_dout_din_no_pullup_pulldown)
UVM_TEST_SEQ = gpio_random_dout_din_vseq
RUN_OPTS += +no_pullup_pulldown=1
endif
ifeq ($(TEST_NAME),gpio_dout_din_regs_random_rw)
UVM_TEST_SEQ = gpio_dout_din_regs_random_rw_vseq
endif
ifeq ($(TEST_NAME),gpio_intr_rand_pgm)
UVM_TEST_SEQ = gpio_intr_rand_pgm_vseq
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq ($(TEST_NAME),gpio_rand_intr_trigger)
UVM_TEST_SEQ = gpio_rand_intr_trigger_vseq
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq ($(TEST_NAME),gpio_intr_with_filter_rand_intr_event)
UVM_TEST_SEQ = gpio_intr_with_filter_rand_intr_event_vseq
RUN_OPTS += +en_scb=0
RUN_OPTS += +zero_delays=1
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq ($(TEST_NAME),gpio_filter_stress)
UVM_TEST_SEQ = gpio_filter_stress_vseq
RUN_OPTS += +en_scb=0
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq ($(TEST_NAME),gpio_random_long_reg_writes_reg_reads)
UVM_TEST_SEQ = gpio_random_long_reg_writes_reg_reads_vseq
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq ($(TEST_NAME),gpio_full_random)
UVM_TEST_SEQ = gpio_full_random_vseq
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq ($(TEST_NAME),gpio_stress_all)
UVM_TEST_SEQ = gpio_stress_all_vseq
RUN_OPTS += +do_clear_all_interrupts=0
endif
# gpio interrupt is sticky. Don't do clear interrupt and check at the end of 2 csr seq
ifeq (${TEST_NAME},gpio_csr_rw)
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq (${TEST_NAME},gpio_csr_aliasing)
RUN_OPTS += +do_clear_all_interrupts=0
endif
ifeq (${TEST_NAME},gpio_same_csr_outstanding)
RUN_OPTS += +do_clear_all_interrupts=0
endif
####################################
# Include the tool Makefile below #
# Dont add anything else below it! #
####################################
include ${DV_DIR}/../../../dv/tools/Makefile