@@ -41,8 +41,9 @@ SPATZ_DIR ?= ${DEP_DIR}/spatz
4141SPZ_CLS_DIR ?= ${SPATZ_DIR}/hw/system/spatz_cluster
4242# ## DramSys
4343DRAMSYS_DIR ?= ${DEP_DIR}/dram_rtl_sim
44- DRAMSYS_LIB_PATH ?= ${DRAMSYS_DIR}/dramsys_lib/DRAMSys/build/lib
45- DRAMSYS_RES_PATH ?= ${DRAMSYS_DIR}/dramsys_lib/DRAMSys/configs
44+ DRAMSYS_PATH := ${DRAMSYS_DIR}/dramsys_lib/DRAMSys
45+ DRAMSYS_LIB_PATH := ${DRAMSYS_PATH}/build/lib
46+ DRAMSYS_RES_PATH := ${DRAMSYS_PATH}/configs
4647
4748# # Software subpaths
4849SPATZ_SW_DIR ?= ${SPATZ_DIR}/sw
@@ -54,7 +55,9 @@ SNLIB_DIR ?= ${SPATZ_DIR}/hw/ip/snitch_test/src
5455BOOTLIB_DIR := ${SPZ_CLS_DIR}/test
5556WORK_DIR := ${SIM_DIR}/work
5657SIMBIN_DIR := ${SIM_DIR}/bin
57- DPI_PATH := ${HARDWARE_DIR}/tb/dpi
58+ TB_DIR := ${HARDWARE_DIR}/tb
59+ DPI_PATH := ${TB_DIR}/dpi
60+ DRAM_CFG_PATH := ${TB_DIR}/dram_config
5861DPI_LIB ?= work-dpi
5962# Set to 0 will turn off +acc target for faster simulation
6063DEBUG ?= 1
140143 @echo "insitu-cache path unavailable (bender not installed yet?)"
141144endif
142145
143- # Paths
144-
145146# Paths
146147BOOTROM_DIR := $(HARDWARE_DIR ) /bootrom
147148SCRIPTS_DIR := $(CACHEPOOL_DIR ) /util/scripts
@@ -192,9 +193,47 @@ VSIM_FLAGS :=
192193VSIM_BENDER =
193194
194195# # Build DramSys
195- .PHONY : dram-build
196- dram-build :
197- $(MAKE ) -BC ${DRAMSYS_DIR} -j8 dramsys CXX=$(CXX ) CC=$(CC )
196+ # .PHONY: dram-build
197+ # dram-build:
198+ # $(MAKE) -BC ${DRAMSYS_DIR} -j8 dramsys CXX=$(CXX) CC=$(CC)
199+ dram-build : $(DRAMSYS_PATH ) /README.md dram-clean dram-config
200+ cd $(DRAMSYS_PATH ) && \
201+ if [ ! -d " build" ]; then \
202+ mkdir build && cd build; \
203+ $(CMAKE ) -DCMAKE_CXX_FLAGS=-fPIC -DCMAKE_C_FLAGS=-fPIC -D DRAMSYS_WITH_DRAMPOWER=ON .. ; \
204+ make -j; \
205+ fi
206+
207+ $(DRAMSYS_PATH ) /README.md : dram-init
208+
209+ # Replace the default HBM2 model to cutmized model
210+ dram-config :
211+ cp $(DRAM_CFG_PATH ) /am_hbm2e_16Gb_pc_brc.json $(DRAMSYS_PATH ) /configs/addressmapping/.
212+ cp $(DRAM_CFG_PATH ) /mc_hbm2e_fr_fcfs_grp.json $(DRAMSYS_PATH ) /configs/mcconfig/.
213+ cp $(DRAM_CFG_PATH ) /ms_hbm2e_16Gb_3600.json $(DRAMSYS_PATH ) /configs/memspec/.
214+ cp $(DRAM_CFG_PATH ) /simconfig_hbm2e.json $(DRAMSYS_PATH ) /configs/simconfig/.
215+ @if [ -f $( DRAMSYS_PATH) /configs/hbm2-example.json ]; then \
216+ mv $(DRAMSYS_PATH ) /configs/hbm2-example.json \
217+ $(DRAMSYS_PATH ) /configs/hbm2-example.json.ori; \
218+ fi
219+ cp $(DRAM_CFG_PATH ) /HBM2E-3600.json $(DRAMSYS_PATH ) /configs/hbm2-example.json
220+ cp $(DRAM_CFG_PATH ) /am_ddr4.json $(DRAMSYS_PATH ) /configs/addressmapping/.
221+ cp $(DRAM_CFG_PATH ) /simconfig_ddr4.json $(DRAMSYS_PATH ) /configs/simconfig/.
222+ @if [ -f $( DRAMSYS_PATH) /configs/ddr4-example.json ]; then \
223+ mv $(DRAMSYS_PATH ) /configs/ddr4-example.json \
224+ $(DRAMSYS_PATH ) /configs/ddr4-example.json.ori; \
225+ fi
226+ cp $(DRAM_CFG_PATH ) /DDR4-2400.json $(DRAMSYS_PATH ) /configs/ddr4-example.json
227+
228+
229+ dram-clean :
230+ if [ -d " $( DRAMSYS_PATH) /build" ]; then \
231+ rm -rf $(DRAMSYS_PATH ) /build; \
232+ fi
233+
234+ # To ensure the dramsys is downloaded, only need to call at first time
235+ dram-init :
236+ make -C ${DRAMSYS_DIR} -j8 dramsys CXX=$(CXX ) CC=$(CC )
198237
199238# ###########
200239# Modelsim #
0 commit comments