################################################################### # Project Configuration: # # Specify the name of the design (project) and the Quartus II # Settings File (.qsf) ################################################################### PROJECT = lab6 TOP_LEVEL_ENTITY = lab6 ASSIGNMENT_FILES = $(PROJECT).qpf $(PROJECT).qsf ################################################################### # Part, Family, Boardfile DE1 or DE2 FAMILY = "Cyclone II" PART = EP2C35F672C6 BOARDFILE = DE2Pins ################################################################### ################################################################### # Setup your sources here SRCS = ../fpga/top_level.v \ ../fpga/nios.qsys ################################################################### # Main Targets # # all: build everything # clean: remove output files and database # program: program your device with the compiled design ################################################################### all: smart.log $(PROJECT).asm.rpt $(PROJECT).sta.rpt clean: rm -rf *.rpt *.chg smart.log *.htm *.eqn *.pin *.sof *.pof db incremental_db map: smart.log $(PROJECT).map.rpt fit: smart.log $(PROJECT).fit.rpt asm: smart.log $(PROJECT).asm.rpt sta: smart.log $(PROJECT).sta.rpt smart: smart.log ################################################################### # Executable Configuration ################################################################### MAP_ARGS = --read_settings_files=on $(addprefix --source=,$(SRCS)) FIT_ARGS = --part=$(PART) --read_settings_files=on ASM_ARGS = STA_ARGS = ################################################################### # Target implementations ################################################################### STAMP = echo done > $(PROJECT).map.rpt: map.chg $(SOURCE_FILES) quartus_map $(MAP_ARGS) $(PROJECT) $(STAMP) fit.chg $(PROJECT).fit.rpt: fit.chg $(PROJECT).map.rpt quartus_fit $(FIT_ARGS) $(PROJECT) $(STAMP) asm.chg $(STAMP) sta.chg $(PROJECT).asm.rpt: asm.chg $(PROJECT).fit.rpt quartus_asm $(ASM_ARGS) $(PROJECT) $(PROJECT).sta.rpt: sta.chg $(PROJECT).fit.rpt quartus_sta $(STA_ARGS) $(PROJECT) smart.log: $(ASSIGNMENT_FILES) quartus_sh --determine_smart_action $(PROJECT) > smart.log ################################################################### # Project initialization ################################################################### $(ASSIGNMENT_FILES): quartus_sh --prepare -f $(FAMILY) -t $(TOP_LEVEL_ENTITY) $(PROJECT) -cat $(BOARDFILE) >> $(PROJECT).qsf map.chg: $(STAMP) map.chg fit.chg: $(STAMP) fit.chg sta.chg: $(STAMP) sta.chg asm.chg: $(STAMP) asm.chg ################################################################### # Programming the device ################################################################### program: $(PROJECT).sof quartus_pgm --no_banner --mode=jtag -o "P;$(PROJECT).sof"