| 1 |
2 |
takar |
TOP_LEVEL_DIR=../..
|
| 2 |
11 |
takar |
DESIGN_DIR=.
|
| 3 |
2 |
takar |
|
| 4 |
|
|
MBLITE_HW_DIR=$(TOP_LEVEL_DIR)/hw
|
| 5 |
|
|
MBLITE_STD_DIR=$(MBLITE_HW_DIR)/std
|
| 6 |
|
|
MBLITE_CORE_DIR=$(MBLITE_HW_DIR)/core
|
| 7 |
|
|
|
| 8 |
11 |
takar |
WORK_DIR=$(DESIGN_DIR)/work
|
| 9 |
|
|
MODELSIM_WORK_DIR=$(WORK_DIR)/modelsim
|
| 10 |
|
|
XILINX_WORK_DIR=$(WORK_DIR)/xilinx
|
| 11 |
|
|
|
| 12 |
2 |
takar |
MBLITE_LIBRARY_NAME=mblite
|
| 13 |
|
|
WORK_LIBRARY_NAME=work
|
| 14 |
|
|
|
| 15 |
|
|
default:
|
| 16 |
|
|
@echo "Makefile for the MB-lite microprocessor"
|
| 17 |
|
|
@echo "---------------------------------------"
|
| 18 |
|
|
@echo "Make options:"
|
| 19 |
|
|
@echo " default: Echo these instructions"
|
| 20 |
11 |
takar |
@echo " modelsim: Build Modelsim project"
|
| 21 |
|
|
@echo " xilinx: Build Xilinx project"
|
| 22 |
2 |
takar |
@echo " clean: Remove all compiled and generated files"
|
| 23 |
|
|
|
| 24 |
11 |
takar |
modelsim: modelsim-design
|
| 25 |
2 |
takar |
|
| 26 |
|
|
################
|
| 27 |
|
|
# WORK library #
|
| 28 |
|
|
################
|
| 29 |
|
|
|
| 30 |
|
|
# Create library WORK
|
| 31 |
|
|
modelsim-worklib:
|
| 32 |
|
|
@vlib $(MODELSIM_WORK_DIR)/$(WORK_LIBRARY_NAME)
|
| 33 |
|
|
@vmap $(WORK_LIBRARY_NAME) $(MODELSIM_WORK_DIR)/$(WORK_LIBRARY_NAME)
|
| 34 |
|
|
|
| 35 |
|
|
# Compile MB-LITE configuration to library MB-LITE
|
| 36 |
|
|
modelsim-mblite-config: modelsim-mblitelib
|
| 37 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(DESIGN_DIR)/config_Pkg.vhd
|
| 38 |
|
|
|
| 39 |
|
|
# Compile a design using MB-LITE to library WORK
|
| 40 |
|
|
modelsim-design: modelsim-std modelsim-mblite-config modelsim-core modelsim-worklib
|
| 41 |
|
|
@vcom -work $(WORK_LIBRARY_NAME) $(DESIGN_DIR)/testbench.vhd
|
| 42 |
|
|
|
| 43 |
|
|
# Copy memory and do files to work dir
|
| 44 |
|
|
modelsim-init:
|
| 45 |
|
|
@cp $(DESIGN_DIR)/*.mem $(MODELSIM_WORK_DIR)
|
| 46 |
|
|
@cp $(DESIGN_DIR)/*.do $(MODELSIM_WORK_DIR)
|
| 47 |
|
|
|
| 48 |
|
|
###################
|
| 49 |
|
|
# MB-LITE library #
|
| 50 |
|
|
###################
|
| 51 |
|
|
|
| 52 |
|
|
# Create library MB-LITE
|
| 53 |
|
|
modelsim-mblitelib:
|
| 54 |
|
|
@mkdir -p $(MODELSIM_WORK_DIR)
|
| 55 |
|
|
@vlib $(MODELSIM_WORK_DIR)/$(MBLITE_LIBRARY_NAME)
|
| 56 |
|
|
@vmap $(MBLITE_LIBRARY_NAME) $(MODELSIM_WORK_DIR)/$(MBLITE_LIBRARY_NAME)
|
| 57 |
|
|
|
| 58 |
|
|
# Compile MB-LITE standard components
|
| 59 |
|
|
modelsim-std: modelsim-mblitelib
|
| 60 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_STD_DIR)/std_Pkg.vhd
|
| 61 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_STD_DIR)/dsram.vhd
|
| 62 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_STD_DIR)/sram_4en.vhd
|
| 63 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_STD_DIR)/sram.vhd
|
| 64 |
|
|
|
| 65 |
11 |
takar |
# Compile MB-LITE core
|
| 66 |
2 |
takar |
modelsim-core: modelsim-std modelsim-mblite-config
|
| 67 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/core_Pkg.vhd
|
| 68 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/core.vhd
|
| 69 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/fetch.vhd
|
| 70 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/gprf.vhd
|
| 71 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/decode.vhd
|
| 72 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/execute.vhd
|
| 73 |
|
|
@vcom -work $(MBLITE_LIBRARY_NAME) $(MBLITE_CORE_DIR)/mem.vhd
|
| 74 |
|
|
|
| 75 |
11 |
takar |
#############################
|
| 76 |
|
|
# Create xilinx ISE project #
|
| 77 |
|
|
#############################
|
| 78 |
|
|
|
| 79 |
|
|
xilinx: xilinx-clean
|
| 80 |
|
|
@mkdir -p $(XILINX_WORK_DIR)
|
| 81 |
|
|
@xtclsh $(DESIGN_DIR)/Xilinx.tcl
|
| 82 |
|
|
|
| 83 |
2 |
takar |
###########################
|
| 84 |
|
|
# Remove work directories #
|
| 85 |
|
|
###########################
|
| 86 |
|
|
|
| 87 |
11 |
takar |
xilinx-clean:
|
| 88 |
|
|
@rm -rf core.gise
|
| 89 |
|
|
@rm -rf core.xise
|
| 90 |
2 |
takar |
|
| 91 |
|
|
clean:
|
| 92 |
11 |
takar |
@rm -rf $(WORK_DIR)
|
| 93 |
2 |
takar |
@rm -f transcript
|
| 94 |
|
|
@rm -f modelsim.ini
|
| 95 |
|
|
@rm -f vsim.wlf
|