48 lines
1.1 KiB
Makefile
48 lines
1.1 KiB
Makefile
TB ?= tb_top
|
|
|
|
XVLOG ?= xvlog
|
|
XELAB ?= xelab
|
|
XSIM ?= xsim
|
|
XSC ?= xsc
|
|
|
|
vpath %.sv $(PATH_SRC)
|
|
vpath %.svh $(PATH_SRC)
|
|
vpath %.c $(PATH_SRC)
|
|
|
|
INC_DIRS=$(patsubst %,-i %,$(subst :, ,$(PATH_SRC)))
|
|
DEFS=$(patsubst %,-d %,$(subst :, ,$(DEFINES)))
|
|
|
|
.SUFFIXES:
|
|
.SUFFIXES: .sv .svh .sdb .c
|
|
|
|
.PHONY: all clean sim_build sim sim_gui
|
|
|
|
all: sim
|
|
|
|
OBJS=$(subst sv,sdb,$(SOURCES))
|
|
DPI_OBJS=$(subst c,lnx64.o,$(DPI_SOURCES))
|
|
|
|
xsim.dir/work/%.sdb: %.sv $(INCLUDES)
|
|
$(XVLOG) --sv --nolog $< $(INC_DIRS) $(DEFS)
|
|
rm xvlog.pb
|
|
|
|
xsim.dir/work/xsc/%.lnx64.o: %.c
|
|
$(XSC) --compile $<
|
|
|
|
xsim.dir/work.$(TB)/xsim.dbg: $(addprefix xsim.dir/work/, $(OBJS)) $(addprefix xsim.dir/work/xsc/, $(DPI_OBJS))
|
|
$(XELAB) --nolog --debug all -Odisable_unused_removal --sv_root xsim.dir/work/xsc/ --sv_lib $(DPI_OBJS) $(TB)
|
|
rm -f xelab.pb
|
|
|
|
sim_build: xsim.dir/work.$(TB)/xsim.dbg
|
|
|
|
sim: xsim.dir/work.$(TB)/xsim.dbg
|
|
$(XSIM) --nolog --runall $(TB)
|
|
rm -f xsim.jou xsim_* webtalk*
|
|
|
|
sim_gui: xsim.dir/work.$(TB)/xsim.dbg
|
|
$(XSIM) --nolog --gui $(TB)
|
|
rm -f xsim.jou xsim_* webtalk* work.$(TB).wdb vivado_pid*.zip
|
|
|
|
clean:
|
|
rm -rf xsim.dir xsim* webtalk* xelab.pb xvlog.pb .Xil
|