# Quartus makefile - R. Traylor 5.26.2016 # # Adapted from: https://github.com/mfischer/Altera-Makefile # ################################################################# # 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, Pinout file for project # Part and family is set for the DE0-Nano board FAMILY = "Cyclone IV E" PART = EP4CE22F17C6 PIN_FILE = $(PROJECT).pinout #put all pin assignments in here ################################################################### ################################################################### # List all verilog source files here SOURCE_FILES = rtl_src/lab6.sv \ rtl_src/bcd2_7seg.sv\ rtl_src/bin2bcd.sv\ rtl_src/adc_control.sv\ rtl_src/uart_rcv.sv\ rtl_src/lab6_pll1.v\ rtl_src/lab6_pll2.v ################################################################### # 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 = --no_banner --read_settings_files=on $(addprefix --source=,$(SOURCE_FILES)) FIT_ARGS = --no_banner --part=$(PART) --read_settings_files=on ASM_ARGS = --no_banner STA_ARGS = --no_banner ################################################################### # 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 #analyze : # quartus_sh --no_banner --flow analysis_and_elaboration $(PROJECT) ################################################################### # Project initialization ################################################################### $(ASSIGNMENT_FILES): quartus_sh --prepare -f $(FAMILY) -t $(TOP_LEVEL_ENTITY) $(PROJECT) -cat $(PIN_FILE) >> $(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"