synthflow/vivado/Makefile.rules

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