blob: fec72463aadd3653df099be8cc5e38a8097ec4ac [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 := top_earlgrey
export TB_TOP := tb
FUSESOC_CORE := lowrisc:dv:chip_sim:0.1
COMPILE_KEY ?= default
TOPS := ${TB_TOP} xbar_main_bind
# Override RAL generation here
RAL_PKG_NAME ?= chip
RAL_TOOL_OPTS += --top
# Common build options.
# Enable the RISC-V Formal Interface (RVFI) for the ibex tracer.
ifeq (${EN_IBEX_TRACE},1)
BUILD_OPTS += +define+RVFI=1
endif
# Use generic implementations of prim modules.
BUILD_OPTS += +define+PRIM_DEFAULT_IMPL=prim_pkg::ImplGeneric
##########################################################
# 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 ?= chip_sanity
UVM_TEST ?= chip_base_test
UVM_TEST_SEQ ?= chip_base_vseq
# TODO don't check TLUL completion at the end of sim, current sim may complete before TL
# transaction is completed
RUN_OPTS += +disable_assert_final_checks
ifeq (${TEST_NAME},chip_sanity)
SW_DIR = examples/hello_world
SW_NAME = hello_world
endif
ifeq (${TEST_NAME},chip_flash_test)
SW_DIR = tests/flash_ctrl
SW_NAME = flash_test
RUN_OPTS += +cpu_test_timeout_ns=15000000
endif
ifeq (${TEST_NAME},chip_sha256_test)
SW_DIR = tests/hmac
SW_NAME = sha256_test
RUN_OPTS += +cpu_test_timeout_ns=4000000
endif
ifeq (${TEST_NAME},chip_rv_timer_test)
SW_DIR = tests/rv_timer
SW_NAME = rv_timer_test
RUN_OPTS += +cpu_test_timeout_ns=4000000
endif
ifeq (${TEST_NAME},coremark)
SW_DIR = benchmarks/coremark
SW_NAME = coremark
RUN_OPTS += +cpu_test_timeout_ns=20000000
SW_OPTS += ITERATIONS=1
endif
ifeq (${TEST_NAME},chip_csr_hw_reset)
UVM_TEST_SEQ = chip_csr_vseq
RUN_OPTS += +csr_hw_reset
RUN_OPTS += +stub_cpu=1
RUN_OPTS += +en_scb=0
endif
ifeq (${TEST_NAME},chip_csr_rw)
UVM_TEST_SEQ = chip_csr_vseq
RUN_OPTS += +csr_rw
RUN_OPTS += +stub_cpu=1
RUN_OPTS += +en_scb=0
endif
ifeq (${TEST_NAME},chip_csr_bit_bash)
UVM_TEST_SEQ = chip_csr_vseq
RUN_OPTS += +csr_bit_bash
RUN_OPTS += +stub_cpu=1
RUN_OPTS += +en_scb=0
endif
ifeq (${TEST_NAME},chip_csr_aliasing)
UVM_TEST_SEQ = chip_csr_vseq
RUN_OPTS += +csr_aliasing
RUN_OPTS += +stub_cpu=1
RUN_OPTS += +en_scb=0
endif
####################################
# Include the tool Makefile below #
# Dont add anything else below it! #
####################################
include ${DV_DIR}/../../dv/tools/Makefile