# NOVAS        := /eda/tools/snps/verdi/R-2020.12/share/PLI/VCS/LINUX64
# EXTRA        := -P ${NOVAS}/novas.tab ${NOVAS}/pli.a

SIM_TOOL     := vcs
VERDI_TOOL   := verdi
SIM_OPTIONS  := -full64 -debug_acc+all  +v2k -sverilog -timescale=1ns/10ps \
                +error+500\
                +define+SVA_OFF\
                -work DEFAULT\
                +vcs+flush+all \
                +lint=TFIPC-L \
                +define+SV_ASSRT_DISABLE \
                +define+S50 \
                -kdb \

SRC_FILE ?=
SRC_FILE += ../common/rtl/utils/register.sv
SRC_FILE += ../common/rtl/clkrst/clk_int_div.sv
SRC_FILE += ../common/rtl/clkrst/counter.sv
SRC_FILE += ../common/rtl/cdc/cdc_sync.sv
SRC_FILE += ../common/rtl/utils/edge_det.sv
SRC_FILE += ../common/rtl/utils/xchecker.sv
SRC_FILE += ../common/rtl/verif/helper.sv
SRC_FILE += ../common/rtl/verif/test_base.sv
SRC_FILE += ../common/rtl/verif/apb4_master.sv
SRC_FILE += ../rtl/apb4_tmr.sv
SRC_FILE += ../tb/tmr_test.sv
SRC_FILE += ../tb/test_top.sv
SRC_FILE += ../tb/apb4_tmr_tb.sv

SIM_INC ?=
SIM_INC += +incdir+../rtl/
SIM_INC += +incdir+../common/rtl/
SIM_INC += +incdir+../common/rtl/clkrst
SIM_INC += +incdir+../common/rtl/cdc
SIM_INC += +incdir+../common/rtl/verif
SIM_INC += +incdir+../common/rtl/interface

SIM_APP  ?= apb4_tmr
SIM_TOP  := $(SIM_APP)_tb

WAVE_CFG ?= WAVE_ON
RUN_ARGS ?=
RUN_ARGS += +${WAVE_CFG}
RUN_ARGS += +WAVE_NAME=$(SIM_TOP).fsdb

comp:
	(${SIM_TOOL} ${SIM_OPTIONS} -top $(SIM_TOP) -l compile.log $(SRC_FILE) $(SIM_INC))

run: comp
	 ./simv -l run.log ${RUN_ARGS}

wave:
	${VERDI_TOOL} -ssf ./$(SIM_TOP).fsdb &

clean:
	rm -rf `ls | grep -v 'Makefile'`

.PHONY: wave clean
