@@ -31,14 +31,22 @@ CARD_CFG ?= accelerator_card.cfg
3131# Platform (currently extracted from accelerator_card.cfg if not already set)
3232PLATFORM ?= $(shell awk -F '=' '/platform=/ {print $$2}' $(CARD_CFG ) )
3333
34- # kernel name
34+ # Board Type (determines whether design will go through packaging step)
35+ BOARD_TYPE :=
36+
37+ # Kernel name
3538KERNEL_NAME := myproject
3639
3740# Wrapper name
3841WRAPPER_NAME := kernel_wrapper
3942
4043# Top level build directory
4144BUILD_DIR := ./build_$(TARGET )
45+ ifdef DEBUG
46+ BUILD_DIR += _deb
47+ else
48+ BUILD_DIR += _rel
49+ endif
4250
4351# Directories for kernel synthesis
4452XO_DIR := $(BUILD_DIR ) /xo
@@ -78,27 +86,27 @@ hls: $(BUILD_DIR)/$(KERNEL_NAME)_kernel.xo
7886
7987# Kernel linking & packaging ##################################################
8088
89+ ifeq ($(BOARD_TYPE ) ,alveo)
8190# For Standard Alveo, a single step is required for linking and packaging
82- ifeq (,$(findstring vck5000,$(PLATFORM ) ) )
8391# This is standard Alveo linking and packaging
84-
8592$(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin : $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo
8693 mkdir -p $(XCLBIN_DIR )
8794 v++ -l $(XOLDFLAGS ) --temp_dir $(XCLBIN_DIR ) --log_dir $(XCLBIN_DIR ) -o $@ $^
8895
89- else
90- # For VCK5000, linking and packaging are separate steps
91-
96+ else ifeq ($(BOARD_TYPE),alveo-versal) || ($(BOARD_TYPE),versal)
97+ # For Versal architecture, linking and packaging are separate steps
9298$(BUILD_DIR ) /$(WRAPPER_NAME ) .xsa : $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo
9399 mkdir -p $(XCLBIN_DIR )
94100 v++ -l $(XOLDFLAGS ) --temp_dir $(XCLBIN_DIR ) --log_dir $(XCLBIN_DIR ) -o $@ $^
95101
96- XOCCPFLAGS := -t $(TARGET ) -f $(PLATFORM ) --package.boot_mode=ospi --messageDb=$(BUILD_DIR ) /kernel_wrapper.mdb
97-
98102# VCK5000 specific packaging
103+ XOCCPFLAGS := -t $(TARGET ) -f $(PLATFORM ) --package.boot_mode=ospi --messageDb=$(BUILD_DIR ) /kernel_wrapper.mdb
99104$(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin : $(BUILD_DIR ) /$(WRAPPER_NAME ) .xsa
100105 v++ -p $(XOCCPFLAGS ) --temp_dir $(XCLBIN_DIR ) --log_dir $(XCLBIN_DIR ) -o $@ $^
101106
107+ else
108+ @echo "$(BOARD_TYPE) board type is currently unsupported"
109+
102110endif
103111
104112xclbin : $(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin
@@ -114,14 +122,19 @@ host: $(KERNEL_NAME)_host_cl.cpp libs/xcl2.cpp
114122# Cleanup #####################################################################
115123
116124cleanxclbin :
117- rm -rf host tb_data/hw_results.dat
125+ rm -rf host tb_data/hw_results.dat tb_data/tb_input_features.dat
118126 rm -rf * $(WRAPPER_NAME ) * .log
119- rm -rf $(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin* $(BUILD_DIR ) /$(WRAPPER_NAME ) .xsa* $(BUILD_DIR ) /$(WRAPPER_NAME ) .ltx $(BUILD_DIR ) /$(WRAPPER_NAME ) .mdb
120- rm -rf $(BUILD_DIR ) /xclbincleanhls
127+ rm -rf $(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin. * $(BUILD_DIR ) /$(WRAPPER_NAME ) .xsa* $(BUILD_DIR ) /$(WRAPPER_NAME ) .ltx $(BUILD_DIR ) /$(WRAPPER_NAME ) .mdb
128+ rm -rf $(XCLBIN_DIR )
121129
122130cleanhls :
123- rm -rf $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo*
124- rm -rf $(BUILD_DIR ) /xo
125131 rm -rf * $(KERNEL_NAME ) _kernel* .log
132+ rm -rf $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo.*
133+ rm -rf $(XO_DIR )
126134
127135clean : cleanxclbin cleanhls
136+
137+ ultraclean :
138+ rm -rf host tb_data/hw_results.dat tb_data/tb_input_features.dat * .log
139+ rm -rf $(BUILD_DIR )
140+
0 commit comments