all: RUNFILE INCLUDE=-I. -Ishared_memory -Icache -IVX_cache -IVX_cache/interfaces -Iinterfaces/ -Ipipe_regs/ -Icompat/ -Isimulate SINGLE_CORE=Vortex.v MULTI_CORE=Vortex_SOC.v EXE=--exe ./simulate/test_bench.cpp MULTI_EXE=--exe ./simulate/multi_test_bench.cpp COMP=--compiler gcc WNO=-Wno-UNDRIVEN --Wno-PINMISSING -Wno-STMTDLY -Wno-WIDTH -Wno-UNSIGNED -Wno-UNOPTFLAT -Wno-LITENDIAN # WNO= # LIGHTW= LIGHTW=-Wno-UNOPTFLAT # LIB=-LDFLAGS '-L/usr/local/systemc/' LIB= CF=-CFLAGS '-std=c++11 -O3' DEB=--trace --prof-cfuncs -DVL_DEBUG=1 MAKECPP=(cd obj_dir && make -j -f VVortex.mk OPT='-DVL_DEBUG' VL_DEBUG=1 DVL_DEBUG=1) MAKEMULTICPP=(cd obj_dir && make -j -f VVortex_SOC.mk OPT='-DVL_DEBUG' VL_DEBUG=1 DVL_DEBUG=1) # -LDFLAGS '-lsystemc' VERILATOR: echo "#define VCD_OFF" > simulate/tb_debug.h verilator $(COMP) -cc $(SINGLE_CORE) $(INCLUDE) $(EXE) $(LIB) $(CF) $(LIGHTW) VERILATORnoWarnings: echo "#define VCD_OFF" > simulate/tb_debug.h verilator $(COMP) -cc $(SINGLE_CORE) $(INCLUDE) $(EXE) $(LIB) $(CF) $(WNO) $(DEB) VERILATORMULTInoWarnings: echo "#define VCD_OFF" > simulate/tb_debug.h verilator $(COMP) -cc $(MULTI_CORE) $(INCLUDE) $(MULTI_EXE) $(LIB) $(CF) $(WNO) $(DEB) compdebug: echo "#define VCD_OUTPUT" > simulate/tb_debug.h verilator_bin_dbg $(COMP) -cc $(SINGLE_CORE) $(INCLUDE) $(EXE) $(LIB) -CFLAGS '-std=c++11 -DVL_DEBUG' $(WNO) $(DEB) compdebugmulti: echo "#define VCD_OUTPUT" > simulate/tb_debug.h verilator_bin_dbg $(COMP) -cc $(MULTI_CORE) $(INCLUDE) $(MULTI_EXE) $(LIB) -CFLAGS '-std=c++11 -DVL_DEBUG' $(WNO) $(DEB) RUNFILE: VERILATOR $(MAKECPP) debug: compdebug $(MAKECPP) w: VERILATORnoWarnings $(MAKECPP) multicore: VERILATORMULTInoWarnings $(MAKEMULTICPP) dmulticore: compdebugmulti $(MAKEMULTICPP) run: w (cd obj_dir && ./VVortex) clean: rm obj_dir/*