| # 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 |
| |