@@ -31,14 +31,22 @@ CARD_CFG ?= accelerator_card.cfg
31
31
# Platform (currently extracted from accelerator_card.cfg if not already set)
32
32
PLATFORM ?= $(shell awk -F '=' '/platform=/ {print $$2}' $(CARD_CFG ) )
33
33
34
- # kernel name
34
+ # Board Type (determines whether design will go through packaging step)
35
+ BOARD_TYPE :=
36
+
37
+ # Kernel name
35
38
KERNEL_NAME := myproject
36
39
37
40
# Wrapper name
38
41
WRAPPER_NAME := kernel_wrapper
39
42
40
43
# Top level build directory
41
44
BUILD_DIR := ./build_$(TARGET )
45
+ ifdef DEBUG
46
+ BUILD_DIR += _deb
47
+ else
48
+ BUILD_DIR += _rel
49
+ endif
42
50
43
51
# Directories for kernel synthesis
44
52
XO_DIR := $(BUILD_DIR ) /xo
@@ -78,27 +86,27 @@ hls: $(BUILD_DIR)/$(KERNEL_NAME)_kernel.xo
78
86
79
87
# Kernel linking & packaging ##################################################
80
88
89
+ ifeq ($(BOARD_TYPE ) ,alveo)
81
90
# For Standard Alveo, a single step is required for linking and packaging
82
- ifeq (,$(findstring vck5000,$(PLATFORM ) ) )
83
91
# This is standard Alveo linking and packaging
84
-
85
92
$(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin : $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo
86
93
mkdir -p $(XCLBIN_DIR )
87
94
v++ -l $(XOLDFLAGS ) --temp_dir $(XCLBIN_DIR ) --log_dir $(XCLBIN_DIR ) -o $@ $^
88
95
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
92
98
$(BUILD_DIR ) /$(WRAPPER_NAME ) .xsa : $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo
93
99
mkdir -p $(XCLBIN_DIR )
94
100
v++ -l $(XOLDFLAGS ) --temp_dir $(XCLBIN_DIR ) --log_dir $(XCLBIN_DIR ) -o $@ $^
95
101
96
- XOCCPFLAGS := -t $(TARGET ) -f $(PLATFORM ) --package.boot_mode=ospi --messageDb=$(BUILD_DIR ) /kernel_wrapper.mdb
97
-
98
102
# VCK5000 specific packaging
103
+ XOCCPFLAGS := -t $(TARGET ) -f $(PLATFORM ) --package.boot_mode=ospi --messageDb=$(BUILD_DIR ) /kernel_wrapper.mdb
99
104
$(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin : $(BUILD_DIR ) /$(WRAPPER_NAME ) .xsa
100
105
v++ -p $(XOCCPFLAGS ) --temp_dir $(XCLBIN_DIR ) --log_dir $(XCLBIN_DIR ) -o $@ $^
101
106
107
+ else
108
+ @echo "$(BOARD_TYPE) board type is currently unsupported"
109
+
102
110
endif
103
111
104
112
xclbin : $(BUILD_DIR ) /$(WRAPPER_NAME ) .xclbin
@@ -114,14 +122,19 @@ host: $(KERNEL_NAME)_host_cl.cpp libs/xcl2.cpp
114
122
# Cleanup #####################################################################
115
123
116
124
cleanxclbin :
117
- rm -rf host tb_data/hw_results.dat
125
+ rm -rf host tb_data/hw_results.dat tb_data/tb_input_features.dat
118
126
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 )
121
129
122
130
cleanhls :
123
- rm -rf $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo*
124
- rm -rf $(BUILD_DIR ) /xo
125
131
rm -rf * $(KERNEL_NAME ) _kernel* .log
132
+ rm -rf $(BUILD_DIR ) /$(KERNEL_NAME ) _kernel.xo.*
133
+ rm -rf $(XO_DIR )
126
134
127
135
clean : 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