blob: d21fc06baef49a99f93916a9452db31e07498436 [file] [log] [blame]
## Set common environment variables
TOP ?= $(shell git rev-parse --show-toplevel)
include $(TOP)/Makefile.common
SYN_PATH := $(BP_ME_DIR)/syn
TB_PATH := $(BP_ME_DIR)/test/tb
MEM_PATH := $(BP_COMMON_DIR)/test/mem
LOG_PATH := $(BP_ME_DIR)/syn/logs
REPORT_PATH := $(BP_ME_DIR)/syn/reports
RESULTS_PATH := $(BP_ME_DIR)/syn/results
## End specific flags and variables
TB ?= bp_cce
CFG ?= e_bp_half_core_cfg
PADDR_WIDTH ?= 40
NUM_INSTR_P ?= 16
SEED_P ?= 1
# Select CCE ROM based on CFG and Coherence Protocol
ifeq ($(CFG), e_bp_half_core_cfg)
NUM_LCE_P=1
N_WG=64
else ifeq ($(CFG), e_bp_single_core_cfg)
NUM_LCE_P=2
N_WG=64
else ifeq ($(CFG), e_bp_dual_core_cfg)
NUM_LCE_P=4
N_WG=32
else ifeq ($(CFG), e_bp_quad_core_cfg)
NUM_LCE_P=8
N_WG=16
else ifeq ($(CFG), e_bp_oct_core_cfg)
NUM_LCE_P=16
N_WG=8
endif
COH_PROTO ?= mesi
CCE_MEM_PATH = $(BP_ME_DIR)/src/asm/roms/$(COH_PROTO)
CCE_MEM = bp_cce_inst_rom_$(COH_PROTO).mem
NUMS = $(shell seq 0 `expr $(NUM_LCE_P) - 1`)
BASE = bsg_trace_rom_
TRACE_ROMS = $(addsuffix .v, $(addprefix $(BASE), $(NUMS)))
DRAMSIM_CH_CFG ?= DDR2_micron_16M_8b_x8_sg3E.ini
DRAMSIM_SYS_CFG ?= system.ini
.EXPORT_ALL_VARIABLES:
include $(BP_COMMON_DIR)/syn/Makefile.common
include $(BP_COMMON_DIR)/syn/Makefile.dc
include $(BP_COMMON_DIR)/syn/Makefile.regress
include $(BP_COMMON_DIR)/syn/Makefile.verilator
include $(BP_COMMON_DIR)/syn/Makefile.vcs
axe: AXE_LOG ?= ./axe.log
axe:
python $(BP_ME_DIR)/software/py/axe_trace_filter.py $(AXE_LOG) > trace.axe
cat trace.axe
axe check TSO trace.axe
bsg_trace_rom_%.tr:
-python $(TB_PATH)/$(TB)/bsg_trace_rom.py -m $(PADDR_WIDTH) -n $(NUM_INSTR_P) -s $(SEED_P) -i $* -l $(NUM_LCE_P) > $(TB_PATH)/$(TB)/$@
bsg_trace_rom_%.v: bsg_trace_rom_%.tr
-python $(BASEJUMP_STL_DIR)/bsg_mem/bsg_ascii_to_rom.py $(TB_PATH)/$(TB)/$< bsg_trace_rom_$* > $(TB_PATH)/$(TB)/$@
copy_roms.v:
-@mv $(TB_PATH)/$(TB)/bsg_trace_rom*.v $(BUILD_DIR)/
-@rm $(TB_PATH)/$(TB)/bsg_trace_rom*.tr
-@echo $(BUILD_DIR)/bsg_trace_rom*.v >> $(BUILD_DIR)/flist.vcs
copy_roms.sc:
-@mv $(TB_PATH)/$(TB)/bsg_trace_rom*.v $(BUILD_DIR)/
-@rm $(TB_PATH)/$(TB)/bsg_trace_rom*.tr
-@echo $(BUILD_DIR)/bsg_trace_rom*.v >> $(BUILD_DIR)/flist.verilator
pre-build.v: $(TRACE_ROMS)
build.v: copy_roms.v
pre-verilate.sc: $(TRACE_ROMS)
verilate.sc: copy_roms.sc
lint.me:
@echo "ME lint not supported"
regress.me.sc: dirs.sc
$(MAKE) -j 1 build.sc sim.sc TB=bp_cce NUM_INSTR_P=$(NUM_INSTR_P)
$(MAKE) -j 1 build.sc sim.sc TB=bp_cce_uc
$(MAKE) -j 1 build.sc sim.sc TB=bp_cce_fsm NUM_INSTR_P=$(NUM_INSTR_P)
$(MAKE) -j 1 build.sc sim.sc TB=bp_cce_fsm_uc
# $(MAKE) -j 1 build.sc sim.sc TB=bp_cce_alu
# $(MAKE) -j 1 build.sc sim.sc TB=bp_cce_gad
regress.me.v: dirs.v
$(MAKE) -j 1 build.v sim.v TB=bp_cce NUM_INSTR_P=$(NUM_INSTR_P)
$(MAKE) -j 1 build.v sim.v TB=bp_cce_uc
$(MAKE) -j 1 build.v sim.v TB=bp_cce_fsm NUM_INSTR_P=$(NUM_INSTR_P)
$(MAKE) -j 1 build.v sim.v TB=bp_cce_fsm_uc
regress: regress.me
regress.me: lint.me regress.me.sc regress.me.v
clean: clean.me
clean.me:
rm -f *.axe