-
Notifications
You must be signed in to change notification settings - Fork 9
/
makefile
85 lines (60 loc) · 2 KB
/
makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
TARGET := hw_emu
IMPL := float_pob
DEVICE = /opt/xilinx/platforms/xilinx_u280_xdma_201920_3/xilinx_u280_xdma_201920_3.xpfm
HLS_DIR := ./_x.$(TARGET)
IMP_DIR := ./build_dir.$(TARGET)
VPP := v++
CLFLAGS += -t $(TARGET) --platform $(DEVICE) --save-temps
CLFLAGS += -I./libfpga
ifneq ($(TARGET), hw)
CLFLAGS += -g
else
LDCLFLAGS += --optimize 3
endif
ifeq ($(IMPL), float_pob)
CLFLAGS += -DFP_POB
else
CLFLAGS += -DFP_STALL
endif
SPMV_XCLBIN = $(IMP_DIR)/spmv.xclbin
emconfig.json:
emconfigutil --platform $(DEVICE)
build: $(SPMV_XCLBIN) emconfig.json
LDCLFLAGS += --config spmv.ini
KERNEL_OBJS += $(HLS_DIR)/spmv_sk0.xo
$(HLS_DIR)/spmv_sk0.xo: spmv_sk0.cpp
mkdir -p $(HLS_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(HLS_DIR) -c -k spmv_sk0 -I'$(<D)' -o'$@' $^
KERNEL_OBJS += $(HLS_DIR)/spmv_sk1.xo
$(HLS_DIR)/spmv_sk1.xo: spmv_sk1.cpp
mkdir -p $(HLS_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(HLS_DIR) -c -k spmv_sk1 -I'$(<D)' -o'$@' $^
KERNEL_OBJS += $(HLS_DIR)/spmv_sk2.xo
$(HLS_DIR)/spmv_sk2.xo: spmv_sk2.cpp
mkdir -p $(HLS_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(HLS_DIR) -c -k spmv_sk2 -I'$(<D)' -o'$@' $^
KERNEL_OBJS += $(HLS_DIR)/spmv_vector_loader.xo
$(HLS_DIR)/spmv_vector_loader.xo: spmv_vector_loader.cpp
mkdir -p $(HLS_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(HLS_DIR) -c -k spmv_vector_loader -I'$(<D)' -o'$@' $^
KERNEL_OBJS += $(HLS_DIR)/spmv_result_drain.xo
$(HLS_DIR)/spmv_result_drain.xo: spmv_result_drain.cpp
mkdir -p $(HLS_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(HLS_DIR) -c -k spmv_result_drain -I'$(<D)' -o'$@' $^
KERNEL_OBJS += $(HLS_DIR)/k2k_relay.xo
$(HLS_DIR)/k2k_relay.xo: k2k_relay.cpp
mkdir -p $(HLS_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(HLS_DIR) -c -k k2k_relay -I'$(<D)' -o'$@' $^
$(SPMV_XCLBIN): $(KERNEL_OBJS)
mkdir -p $(IMP_DIR)
$(VPP) $(CLFLAGS) --temp_dir $(IMP_DIR) -l $(LDCLFLAGS) -o'$@' $^
.PHONY: clean
clean:
rm -rf *.log
rm -rf .run
.PHONY: cleanall
cleanall: clean
rm -rf emconfig.json
rm -rf ./_x.sw_emu ./build_dir.sw_emu
rm -rf ./_x.hw_emu ./build_dir.hw_emu
rm -rf ./_x.hw ./build_dir.hw