# Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # Directories ROOTDIR = $(CURDIR) BUILD_NAME = build BUILD_DIR = $(ROOTDIR)/../../$(BUILD_NAME)/hardware/intel SCRIPT_DIR = $(ROOTDIR)/scripts SRC_DIR = $(ROOTDIR)/../chisel # Process VTA JSON config VTA_CONFIG = python $(CURDIR)/../../config/vta_config.py # Debug flag DEBUG = false # Prevent generation of DSP NO_DSP = true # Device DEVICE = $(shell $(VTA_CONFIG) --get-fpga-dev) # Device family DEVICE_FAMILY = $(shell $(VTA_CONFIG) --get-fpga-family) # Project name PROJECT = de10_nano_top #--------------------- # Compilation parameters #-------------------- # Derive config name CONF = $(shell ${VTA_CONFIG} --cfg-str) IP_BUILD_PATH = $(BUILD_DIR)/chisel/$(CONF) HW_BUILD_PATH = $(BUILD_DIR)/quartus/$(CONF) ifeq ($(NO_DSP), true) DSP_FLAG = else DSP_FLAG = --dsp endif # IP file path IP_PATH = $(IP_BUILD_PATH)/VTA.DefaultDe10Config.v # Bitstream file path BIT_PATH = $(HW_BUILD_PATH)/export/vta.rbf # System design file path QSYS_PATH = $(HW_BUILD_PATH)/soc_system.qsys .PHONY: all ip bit qsys clean all: bit ip: $(IP_PATH) bit: $(BIT_PATH) qsys: $(QSYS_PATH) $(IP_PATH): $(SRC_DIR) mkdir -p $(IP_BUILD_PATH) cd $(SRC_DIR) && \ make CONFIG=DefaultDe10Config chisel_build_dir=$(IP_BUILD_PATH) verilog $(QSYS_PATH): $(IP_PATH) mkdir -p $(HW_BUILD_PATH) cd $(HW_BUILD_PATH) && \ cp -r $(SCRIPT_DIR)/* $(HW_BUILD_PATH) && \ python3 $(SCRIPT_DIR)/set_attrs.py -i $(IP_PATH) -o $(HW_BUILD_PATH)/ip/vta/VTAShell.v $(DSP_FLAG) && \ qsys-script --script=soc_system.tcl $(DEVICE) $(DEVICE_FAMILY) $(BIT_PATH): $(QSYS_PATH) cd $(HW_BUILD_PATH) && \ quartus_sh -t $(SCRIPT_DIR)/compile_design.tcl $(DEVICE) $(PROJECT) && \ mkdir -p $(shell dirname $(BIT_PATH)) && \ quartus_cpf -c $(HW_BUILD_PATH)/$(PROJECT).sof $(BIT_PATH) clean: rm -rf $(BUILD_DIR)