| ## 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 | |