init
This commit is contained in:
70
code/vezba10/Makefile
Normal file
70
code/vezba10/Makefile
Normal file
@@ -0,0 +1,70 @@
|
||||
# ============================================================================
|
||||
# Terminal-only (batch) Vivado/xsim flow for the Calc1 UVM environment.
|
||||
#
|
||||
# make # compile + elaborate + run the default test (test_sanity)
|
||||
# make TEST=test_corner
|
||||
# make run TEST=test_random VERB=UVM_HIGH
|
||||
# make WAVES=1 # also dump calc.vcd
|
||||
# make clean
|
||||
#
|
||||
# Override the tool location if needed: make VIVADO=/path/to/Vivado/2022.2
|
||||
# ============================================================================
|
||||
|
||||
SHELL := /bin/bash
|
||||
VIVADO ?= /tools/Xilinx/Vivado/2022.2
|
||||
SETTINGS := $(VIVADO)/settings64.sh
|
||||
|
||||
TEST ?= test_sanity
|
||||
VERB ?= UVM_LOW
|
||||
SEED ?= random
|
||||
SNAP := calc_sim
|
||||
TOP := calc_verif_top
|
||||
|
||||
# run xsim until UVM calls $finish; the driver/monitor have response timeouts
|
||||
# so a non-responding DUT is reported, never hung on
|
||||
RUN := -R
|
||||
|
||||
# optional waveform dump
|
||||
ifeq ($(WAVES),1)
|
||||
WAVEARG := -testplusarg WAVES
|
||||
else
|
||||
WAVEARG :=
|
||||
endif
|
||||
|
||||
DUT_SRCS := $(wildcard dut/*.v)
|
||||
INCDIRS := -i ./verif -i ./verif/Agent -i ./verif/Sequences -i ./verif/Configurations
|
||||
TB_SRCS := ./verif/Configurations/configurations_pkg.sv \
|
||||
./verif/Agent/calc_agent_pkg.sv \
|
||||
./verif/Sequences/calc_seq_pkg.sv \
|
||||
./verif/calc_test_pkg.sv \
|
||||
./verif/calc_if.sv \
|
||||
./verif/calc_verif_top.sv
|
||||
|
||||
.PHONY: all run comp elab sim clean
|
||||
|
||||
all: run
|
||||
|
||||
# ---- compile ---------------------------------------------------------------
|
||||
comp:
|
||||
@bash -c 'source $(SETTINGS) && \
|
||||
xvlog --nolog $(DUT_SRCS) && \
|
||||
xvlog --nolog --sv -L uvm $(INCDIRS) $(TB_SRCS)'
|
||||
|
||||
# ---- elaborate -------------------------------------------------------------
|
||||
elab: comp
|
||||
@bash -c 'source $(SETTINGS) && \
|
||||
xelab --nolog -L uvm -timescale 1ns/10ps $(TOP) -s $(SNAP)'
|
||||
|
||||
# ---- simulate --------------------------------------------------------------
|
||||
sim:
|
||||
@bash -c 'source $(SETTINGS) && \
|
||||
xsim --nolog $(SNAP) $(RUN) \
|
||||
-testplusarg UVM_TESTNAME=$(TEST) \
|
||||
-testplusarg UVM_VERBOSITY=$(VERB) \
|
||||
$(WAVEARG) -sv_seed $(SEED)'
|
||||
|
||||
run: elab sim
|
||||
|
||||
clean:
|
||||
@rm -rf xsim.dir xsim.covdb .Xil *.jou *.log *.pb *.wdb *.vcd xelab.* xvlog.* \
|
||||
webtalk* usage_statistics_webtalk.* 2>/dev/null; echo "cleaned"
|
||||
Reference in New Issue
Block a user