diff --git a/runtime/opae/Makefile b/runtime/opae/Makefile index 153e33b3..168d5a11 100644 --- a/runtime/opae/Makefile +++ b/runtime/opae/Makefile @@ -1,13 +1,12 @@ XLEN ?= 32 TARGET ?= opaesim DESTDIR ?= $(CURDIR) -OPAESIM_DIR = ../../sim/opaesim -RTL_DIR=../../hw/rtl -SYN_DIR=../../hw/syn/altera/opae -SCRIPT_DIR=../../hw/scripts +SIM_DIR = $(abspath ../../sim) +HW_DIR = $(abspath ../../hw) +SYN_DIR = $(HW_DIR)/syn/altera/opae CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors -CXXFLAGS += -I$(DESTDIR) -I../include -I../common/ -I../../hw +CXXFLAGS += -I../include -I../common -I$(HW_DIR) -I$(DESTDIR) CXXFLAGS += -DXLEN_$(XLEN) # Position independent code @@ -26,7 +25,7 @@ SRCS = vortex.cpp driver.cpp ../common/utils.cpp # set up target types ifeq ($(TARGET), opaesim) OPAESIM = $(DESTDIR)/libopae-c-sim.so - CXXFLAGS += -DOPAESIM -I$(OPAESIM_DIR) + CXXFLAGS += -DOPAESIM -I$(SIM_DIR)/opaesim LDFLAGS += -L$(DESTDIR) -lopae-c-sim else CXXFLAGS += -I$(SYN_DIR) @@ -60,11 +59,11 @@ PROJECT = libvortex.so all: $(DESTDIR)/$(PROJECT) $(DESTDIR)/libopae-c-sim.so: - DESTDIR=$(DESTDIR) $(MAKE) -C $(OPAESIM_DIR) $(DESTDIR)/libopae-c-sim.so + DESTDIR=$(DESTDIR) $(MAKE) -C $(SIM_DIR)/opaesim $(DESTDIR)/libopae-c-sim.so $(DESTDIR)/$(PROJECT): $(SRCS) $(OPAESIM) $(CXX) $(CXXFLAGS) $(SRCS) $(LDFLAGS) -o $@ clean: - DESTDIR=$(DESTDIR) $(MAKE) -C $(OPAESIM_DIR) clean + DESTDIR=$(DESTDIR) $(MAKE) -C $(SIM_DIR)/opaesim clean rm -rf $(DESTDIR)/$(PROJECT) diff --git a/runtime/rtlsim/Makefile b/runtime/rtlsim/Makefile index 4b400f84..5f85bdc3 100644 --- a/runtime/rtlsim/Makefile +++ b/runtime/rtlsim/Makefile @@ -1,9 +1,10 @@ XLEN ?= 32 DESTDIR ?= $(CURDIR) -RTLSIM_DIR = ../../sim/rtlsim +SIM_DIR = $(abspath ../../sim) +HW_DIR = $(abspath ../../hw) CXXFLAGS += -std=c++11 -Wall -Wextra -pedantic -Wfatal-errors -CXXFLAGS += -I../include -I../common -I../../hw -I$(RTLSIM_DIR) -I$(RTLSIM_DIR)/../common +CXXFLAGS += -I../include -I../common -I$(HW_DIR) -I$(SIM_DIR)/rtlsim -I$(SIM_DIR)/common CXXFLAGS += -DXLEN_$(XLEN) # Position independent code @@ -37,9 +38,9 @@ PROJECT = libvortex.so all: $(DESTDIR)/$(PROJECT) $(DESTDIR)/$(PROJECT): $(SRCS) - DESTDIR=$(DESTDIR) $(MAKE) -C $(RTLSIM_DIR) $(DESTDIR)/librtlsim.so + DESTDIR=$(DESTDIR) $(MAKE) -C $(SIM_DIR)/rtlsim $(DESTDIR)/librtlsim.so $(CXX) $(CXXFLAGS) $(SRCS) $(LDFLAGS) -o $@ clean: - DESTDIR=$(DESTDIR) $(MAKE) -C $(RTLSIM_DIR) clean + DESTDIR=$(DESTDIR) $(MAKE) -C $(SIM_DIR)/rtlsim clean rm -rf $(DESTDIR)/$(PROJECT) *.o \ No newline at end of file diff --git a/runtime/simx/Makefile b/runtime/simx/Makefile index 9397ec24..7cfd6c38 100644 --- a/runtime/simx/Makefile +++ b/runtime/simx/Makefile @@ -1,10 +1,11 @@ XLEN ?= 32 DESTDIR ?= $(CURDIR) -SIMX_DIR = ../../sim/simx +SIM_DIR = $(abspath ../../sim) +HW_DIR = $(abspath ../../hw) CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors CXXFLAGS += -fPIC -Wno-maybe-uninitialized -CXXFLAGS += -I../include -I../common -I../../hw -I$(SIMX_DIR) -I$(SIMX_DIR)/../common +CXXFLAGS += -I../include -I../common -I$(HW_DIR) -I$(SIM_DIR)/simx -I$(SIM_DIR)/common CXXFLAGS += $(CONFIGS) CXXFLAGS += -DDUMP_PERF_STATS CXXFLAGS += -DXLEN_$(XLEN) @@ -26,9 +27,9 @@ PROJECT = libvortex.so all: $(DESTDIR)/$(PROJECT) $(DESTDIR)/$(PROJECT): $(SRCS) - DESTDIR=$(DESTDIR) $(MAKE) -C $(SIMX_DIR) $(DESTDIR)/libsimx.so + DESTDIR=$(DESTDIR) $(MAKE) -C $(SIM_DIR)/simx $(DESTDIR)/libsimx.so $(CXX) $(CXXFLAGS) $^ $(LDFLAGS) -o $@ clean: - DESTDIR=$(DESTDIR) $(MAKE) -C $(SIMX_DIR) clean + DESTDIR=$(DESTDIR) $(MAKE) -C $(SIM_DIR)/simx clean rm -rf $(DESTDIR)/$(PROJECT) *.o \ No newline at end of file diff --git a/runtime/stub/Makefile b/runtime/stub/Makefile index 28441a3d..9c1c40bd 100644 --- a/runtime/stub/Makefile +++ b/runtime/stub/Makefile @@ -1,6 +1,11 @@ +XLEN ?= 32 +DESTDIR ?= $(CURDIR) +SIM_DIR = $(abspath ../../sim) +HW_DIR = $(abspath ../../hw) + CXXFLAGS += -std=c++11 -O2 -Wall -Wextra -pedantic -Wfatal-errors -CXXFLAGS += -I../include -I../../runtime -I../../hw -I../../sim/common +CXXFLAGS += -I../include -I../common -I$(HW_DIR) -I$(SIM_DIR)/common CXXFLAGS += -fPIC diff --git a/sim/opaesim/Makefile b/sim/opaesim/Makefile index 93f2da33..97c8aaf7 100644 --- a/sim/opaesim/Makefile +++ b/sim/opaesim/Makefile @@ -1,20 +1,22 @@ XLEN ?= 32 DESTDIR ?= $(CURDIR) -RTL_DIR = ../../hw/rtl -DPI_DIR = ../../hw/dpi +HW_DIR = $(abspath ../../hw) +COMMON_DIR = $(abspath ../common) +THIRD_PARTY_DIR = $(abspath ../../third_party) +RTL_DIR = $(HW_DIR)/rtl +DPI_DIR = $(HW_DIR)/dpi AFU_DIR = $(RTL_DIR)/afu/opae -SCRIPT_DIR = ../../hw/scripts -THIRD_PARTY_DIR = ../../third_party +SCRIPT_DIR = $(HW_DIR)/scripts CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors -Wno-array-bounds CXXFLAGS += -fPIC -Wno-maybe-uninitialized -CXXFLAGS += -I.. -I../../../hw -I../../common -I$(abspath $(DESTDIR)) -CXXFLAGS += -I../$(THIRD_PARTY_DIR)/softfloat/source/include -CXXFLAGS += -I../$(THIRD_PARTY_DIR) +CXXFLAGS += -I$(CURDIR) -I$(HW_DIR) -I$(COMMON_DIR) -I$(DESTDIR) +CXXFLAGS += -I/$(THIRD_PARTY_DIR)/softfloat/source/include +CXXFLAGS += -I/$(THIRD_PARTY_DIR) CXXFLAGS += -DXLEN_$(XLEN) -LDFLAGS += -shared ../$(THIRD_PARTY_DIR)/softfloat/build/Linux-x86_64-GCC/softfloat.a -LDFLAGS += -L../$(THIRD_PARTY_DIR)/ramulator -lramulator -pthread +LDFLAGS += -shared $(THIRD_PARTY_DIR)/softfloat/build/Linux-x86_64-GCC/softfloat.a +LDFLAGS += -L$(THIRD_PARTY_DIR)/ramulator -lramulator -pthread # control RTL debug tracing states DBG_TRACE_FLAGS += -DDBG_TRACE_CORE_PIPELINE @@ -53,9 +55,9 @@ endif DBG_FLAGS += -DDEBUG_LEVEL=$(DEBUG) -DVCD_OUTPUT $(DBG_TRACE_FLAGS) -SRCS = ../common/util.cpp ../common/mem.cpp ../common/rvfloats.cpp +SRCS = $(COMMON_DIR)/util.cpp $(COMMON_DIR)/mem.cpp $(COMMON_DIR)/rvfloats.cpp SRCS += $(DPI_DIR)/util_dpi.cpp $(DPI_DIR)/float_dpi.cpp -SRCS += fpga.cpp opae_sim.cpp +SRCS += $(CURDIR)/fpga.cpp $(CURDIR)/opae_sim.cpp RTL_PKGS = $(AFU_DIR)/local_mem_cfg_pkg.sv $(AFU_DIR)/ccip/ccip_if_pkg.sv RTL_PKGS += $(RTL_DIR)/VX_gpu_pkg.sv $(RTL_DIR)/fpu/VX_fpu_pkg.sv @@ -128,7 +130,7 @@ $(DESTDIR)/vortex_afu.h : $(AFU_DIR)/vortex_afu.vh $(SCRIPT_DIR)/gen_config.py -i $^ -o $@ $(DESTDIR)/$(PROJECT): $(SRCS) $(DESTDIR)/vortex_afu.h $(SCOPE_JSON) - verilator --build --exe -O3 $(VL_FLAGS) --cc $(TOP) --top-module $(TOP) $(SRCS) -CFLAGS '$(CXXFLAGS)' -LDFLAGS '$(LDFLAGS)' -o $@ + verilator --build --exe -O3 $(VL_FLAGS) --cc $(TOP) --top-module $(TOP) $(SRCS) -CFLAGS '$(CXXFLAGS)' -LDFLAGS '$(LDFLAGS)' --Mdir $(DESTDIR)/obj_dir -o $@ clean: - rm -rf obj_dir $(DESTDIR)/vortex.xml $(DESTDIR)/scope.json $(DESTDIR)/vortex_afu.h $(DESTDIR)/$(PROJECT) + rm -rf $(DESTDIR)/obj_dir $(DESTDIR)/vortex.xml $(DESTDIR)/scope.json $(DESTDIR)/vortex_afu.h $(DESTDIR)/$(PROJECT) diff --git a/sim/rtlsim/Makefile b/sim/rtlsim/Makefile index 228cdd8b..3734a03b 100644 --- a/sim/rtlsim/Makefile +++ b/sim/rtlsim/Makefile @@ -1,18 +1,20 @@ XLEN ?= 32 DESTDIR ?= $(CURDIR) -RTL_DIR = ../../hw/rtl -DPI_DIR = ../../hw/dpi -THIRD_PARTY_DIR = ../../third_party +HW_DIR = $(abspath ../../hw) +COMMON_DIR = $(abspath ../common) +THIRD_PARTY_DIR = $(abspath ../../third_party) +RTL_DIR = $(HW_DIR)/rtl +DPI_DIR = $(HW_DIR)/dpi CXXFLAGS += -std=c++11 -Wall -Wextra -Wfatal-errors -Wno-array-bounds CXXFLAGS += -fPIC -Wno-maybe-uninitialized -CXXFLAGS += -I../../../hw -I../../common -CXXFLAGS += -I../$(THIRD_PARTY_DIR)/softfloat/source/include -CXXFLAGS += -I../$(THIRD_PARTY_DIR) +CXXFLAGS += -I$(HW_DIR) -I$(COMMON_DIR) +CXXFLAGS += -I$(THIRD_PARTY_DIR)/softfloat/source/include +CXXFLAGS += -I$(THIRD_PARTY_DIR) CXXFLAGS += -DXLEN_$(XLEN) -LDFLAGS += ../$(THIRD_PARTY_DIR)/softfloat/build/Linux-x86_64-GCC/softfloat.a -LDFLAGS += -L../$(THIRD_PARTY_DIR)/ramulator -lramulator +LDFLAGS += $(THIRD_PARTY_DIR)/softfloat/build/Linux-x86_64-GCC/softfloat.a +LDFLAGS += -L$(THIRD_PARTY_DIR)/ramulator -lramulator # control RTL debug tracing states DBG_TRACE_FLAGS += -DDBG_TRACE_CORE_PIPELINE @@ -38,9 +40,9 @@ ifneq (,$(findstring FPU_FPNEW,$(CONFIGS))) endif RTL_INCLUDE = -I$(RTL_DIR) -I$(DPI_DIR) -I$(RTL_DIR)/libs -I$(RTL_DIR)/interfaces -I$(RTL_DIR)/core -I$(RTL_DIR)/mem -I$(RTL_DIR)/cache $(FPU_INCLUDE) -SRCS = ../common/util.cpp ../common/mem.cpp ../common/rvfloats.cpp +SRCS = $(COMMON_DIR)/util.cpp $(COMMON_DIR)/mem.cpp $(COMMON_DIR)/rvfloats.cpp SRCS += $(DPI_DIR)/util_dpi.cpp $(DPI_DIR)/float_dpi.cpp -SRCS += processor.cpp +SRCS += $(CURDIR)/processor.cpp ifdef AXI_BUS TOP = Vortex_axi @@ -87,11 +89,11 @@ PROJECT = rtlsim all: $(DESTDIR)/$(PROJECT) -$(DESTDIR)/$(PROJECT): $(SRCS) main.cpp - verilator --build $(VL_FLAGS) $^ -CFLAGS '$(CXXFLAGS) -DSTARTUP_ADDR=0x80000000' -LDFLAGS '$(LDFLAGS)' -o $@ +$(DESTDIR)/$(PROJECT): $(SRCS) $(CURDIR)/main.cpp + verilator --build $(VL_FLAGS) $^ -CFLAGS '$(CXXFLAGS) -DSTARTUP_ADDR=0x80000000' -LDFLAGS '$(LDFLAGS)' --Mdir $(DESTDIR)/obj_dir -o $@ $(DESTDIR)/lib$(PROJECT).so: $(SRCS) - verilator --build $(VL_FLAGS) $^ -CFLAGS '$(CXXFLAGS)' -LDFLAGS '-shared $(LDFLAGS)' -o $@ + verilator --build $(VL_FLAGS) $^ -CFLAGS '$(CXXFLAGS)' -LDFLAGS '-shared $(LDFLAGS)' --Mdir $(DESTDIR)/obj_dir -o $@ clean: - rm -rf obj_dir $(DESTDIR)/$(PROJECT) $(DESTDIR)/lib$(PROJECT).so + rm -rf $(DESTDIR)/obj_dir $(DESTDIR)/$(PROJECT) $(DESTDIR)/lib$(PROJECT).so diff --git a/sim/simx/Makefile b/sim/simx/Makefile index 3cce8de0..36f0b63e 100644 --- a/sim/simx/Makefile +++ b/sim/simx/Makefile @@ -1,11 +1,12 @@ XLEN ?= 32 DESTDIR ?= $(CURDIR) -RTL_DIR = ../hw/rtl -THIRD_PARTY_DIR = ../../third_party +HW_DIR = $(abspath ../../hw) +COMMON_DIR = $(abspath ../common) +THIRD_PARTY_DIR = $(abspath ../../third_party) CXXFLAGS += -std=c++17 -Wall -Wextra -Wfatal-errors CXXFLAGS += -fPIC -Wno-maybe-uninitialized -CXXFLAGS += -I. -I../common -I../../hw +CXXFLAGS += -I$(CURDIR) -I$(COMMON_DIR) -I$(HW_DIR) CXXFLAGS += -I$(THIRD_PARTY_DIR)/softfloat/source/include CXXFLAGS += -I$(THIRD_PARTY_DIR) CXXFLAGS += -DXLEN_$(XLEN) @@ -14,7 +15,7 @@ CXXFLAGS += $(CONFIGS) LDFLAGS += $(THIRD_PARTY_DIR)/softfloat/build/Linux-x86_64-GCC/softfloat.a LDFLAGS += -L$(THIRD_PARTY_DIR)/ramulator -lramulator -SRCS = ../common/util.cpp ../common/mem.cpp ../common/rvfloats.cpp +SRCS = $(COMMON_DIR)/util.cpp $(COMMON_DIR)/mem.cpp $(COMMON_DIR)/rvfloats.cpp SRCS += processor.cpp cluster.cpp socket.cpp core.cpp warp.cpp decode.cpp execute.cpp exe_unit.cpp cache_sim.cpp mem_sim.cpp shared_mem.cpp dcrs.cpp # Debugigng