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