Files
b210-k7-fpga/tools/make/viv_hls_ip_builder.mak
T
Wade Fife 98463e99d0 fpga: tools: Add contents of directories for HDL source
For HLS builds, the output file names aren't known in advance. This
makes it difficult to write the Makefile to pull in the files and pass
them to the build tools. This change allows you to add a directory as
your HDL source so that all files in the directory will be pulled in by
the build process.


Original-commit: 90933d9b2faf392fd26f3f7ca32f73719614a40a
2020-05-26 13:36:55 -05:00

35 lines
1.5 KiB
Makefile

#
# Copyright 2015-2017 Ettus Research
#
# -------------------------------------------------------------------
# Usage: BUILD_VIVADO_HLS_IP
# Args: $1 = HLS_IP_NAME (High level synthesis IP name)
# $2 = PART_ID (<device>/<package>/<speedgrade>)
# $3 = HLS_IP_SRCS (Absolute paths to the HLS IP source files)
# $4 = HLS_IP_SRC_DIR (Absolute path to the top level HLS IP src dir)
# $5 = HLS_IP_BUILD_DIR (Absolute path to the top level HLS IP build dir)
# $6 = HLS_IP_INCLUDES (Absolute path to IP include dir)
# Prereqs:
# - TOOLS_DIR must be defined globally
# -------------------------------------------------------------------
BUILD_VIVADO_HLS_IP = \
@ \
echo "========================================================"; \
echo "BUILDER: Building HLS IP $(1)"; \
echo "========================================================"; \
export HLS_IP_NAME=$(1); \
export PART_NAME=$(subst /,,$(2)); \
export HLS_IP_SRCS=$(call RESOLVE_PATHS,$(3)); \
export HLS_IP_INCLUDES=$(call RESOLVE_PATHS,$(6)); \
echo "BUILDER: Staging HLS IP in build directory..."; \
$(TOOLS_DIR)/scripts/shared-ip-loc-manage.sh --path=$(5)/$(1) reserve; \
cp -rf $(4)/$(1)/* $(5)/$(1); \
cd $(5); \
echo "BUILDER: Building HLS IP..."; \
export VIV_ERR=0; \
vivado_hls -f $(call RESOLVE_PATH,$(TOOLS_DIR)/scripts/viv_generate_hls_ip.tcl) -l $(1).log || export VIV_ERR=$$?; \
$(TOOLS_DIR)/scripts/shared-ip-loc-manage.sh --path=$(5)/$(1) release; \
exit $$(($$VIV_ERR))