1 |
37 |
wfjm |
# $Id: Makefile 810 2016-10-02 16:51:12Z mueller $
|
2 |
16 |
wfjm |
#
|
3 |
|
|
# 'Meta Makefile' for whole retro project
|
4 |
|
|
# allows to make all synthesis targets
|
5 |
|
|
# allows to make all test bench targets
|
6 |
|
|
#
|
7 |
|
|
# Revision History:
|
8 |
|
|
# Date Rev Version Comment
|
9 |
37 |
wfjm |
# 2016-10-01 810 1.2.6 move component tests to SIM_viv when vivado used
|
10 |
|
|
# 2016-07-10 785 1.2.5 re-enable rtl/sys_gen/tst_sram/nexys4 (ok in 2016.2)
|
11 |
36 |
wfjm |
# 2016-06-05 772 1.2.4 add vmfsum,imfsum targets
|
12 |
|
|
# 2016-03-19 748 1.2.3 comment out legacy designs and tests
|
13 |
37 |
wfjm |
# 2016-02-19 733 1.2.2 disable rtl/sys_gen/tst_sram/nexys4 (fails in 2015.4)
|
14 |
35 |
wfjm |
# 2016-02-19 732 1.2.1 remove dispunit syn and sim entries
|
15 |
29 |
wfjm |
# 2015-02-01 640 1.2 add vivado targets, separate from ise targets
|
16 |
|
|
# 2015-01-25 638 1.1 drop as type fx2 targets
|
17 |
25 |
wfjm |
# 2014-06-14 562 1.0.8 suspend nexys4 syn targets
|
18 |
22 |
wfjm |
# 2013-09-28 535 1.0.7 add nexys4 port for sys_gen/tst_sram,w11a
|
19 |
21 |
wfjm |
# 2013-05-01 513 1.0.6 add clean_sim_tmp and clean_syn_tmp targets
|
20 |
17 |
wfjm |
# 2012-12-29 466 1.0.5 add tst_rlink_cuff
|
21 |
|
|
# 2011-12-26 445 1.0.4 add tst_fx2loop
|
22 |
|
|
# 2011-12-23 444 1.0.3 enforce -j 1 in sub-makes
|
23 |
16 |
wfjm |
# 2011-11-27 433 1.0.2 add new nexys3 ports
|
24 |
|
|
# 2011-11-18 426 1.0.1 add tst_serport and tst_snhumanio
|
25 |
|
|
# 2011-07-09 391 1.0 Initial version
|
26 |
|
|
#
|
27 |
|
|
|
28 |
29 |
wfjm |
# Synthesis targets --------------------------------------------------
|
29 |
|
|
# ISE based targets, by board type -----------------------
|
30 |
|
|
# S3board ------------------------------------
|
31 |
|
|
|
32 |
|
|
SYN_ise += rtl/sys_gen/tst_rlink/s3board
|
33 |
|
|
SYN_ise += rtl/sys_gen/tst_serloop/s3board
|
34 |
|
|
SYN_ise += rtl/sys_gen/tst_snhumanio/s3board
|
35 |
37 |
wfjm |
SYN_ise += rtl/sys_gen/tst_sram/s3board
|
36 |
29 |
wfjm |
SYN_ise += rtl/sys_gen/w11a/s3board
|
37 |
|
|
|
38 |
|
|
# Nexys2 -------------------------------------
|
39 |
36 |
wfjm |
#SYN_ise += rtl/sys_gen/tst_fx2loop/nexys2/ic
|
40 |
|
|
#SYN_ise += rtl/sys_gen/tst_fx2loop/nexys2/ic3
|
41 |
29 |
wfjm |
SYN_ise += rtl/sys_gen/tst_rlink/nexys2
|
42 |
|
|
SYN_ise += rtl/sys_gen/tst_rlink_cuff/nexys2/ic
|
43 |
36 |
wfjm |
#SYN_ise += rtl/sys_gen/tst_rlink_cuff/nexys2/ic3
|
44 |
29 |
wfjm |
SYN_ise += rtl/sys_gen/tst_serloop/nexys2
|
45 |
|
|
SYN_ise += rtl/sys_gen/tst_snhumanio/nexys2
|
46 |
37 |
wfjm |
SYN_ise += rtl/sys_gen/tst_sram/nexys2
|
47 |
29 |
wfjm |
SYN_ise += rtl/sys_gen/w11a/nexys2
|
48 |
|
|
|
49 |
|
|
# Nexys3 -------------------------------------
|
50 |
36 |
wfjm |
#SYN_ise += rtl/sys_gen/tst_fx2loop/nexys3/ic
|
51 |
|
|
#SYN_ise += rtl/sys_gen/tst_fx2loop/nexys3/ic3
|
52 |
29 |
wfjm |
SYN_ise += rtl/sys_gen/tst_rlink/nexys3
|
53 |
|
|
SYN_ise += rtl/sys_gen/tst_rlink_cuff/nexys3/ic
|
54 |
|
|
SYN_ise += rtl/sys_gen/tst_serloop/nexys3
|
55 |
|
|
SYN_ise += rtl/sys_gen/tst_snhumanio/nexys3
|
56 |
37 |
wfjm |
SYN_ise += rtl/sys_gen/tst_sram/nexys3
|
57 |
29 |
wfjm |
SYN_ise += rtl/sys_gen/w11a/nexys3
|
58 |
|
|
|
59 |
|
|
# Vivado based targets, by board type --------------------
|
60 |
|
|
# Basys3 -------------------------------------
|
61 |
|
|
SYN_viv += rtl/sys_gen/tst_snhumanio/basys3
|
62 |
|
|
#SYN_viv += rtl/sys_gen/tst_serloop/basys3
|
63 |
|
|
SYN_viv += rtl/sys_gen/tst_rlink/basys3
|
64 |
|
|
SYN_viv += rtl/sys_gen/w11a/basys3
|
65 |
|
|
|
66 |
|
|
# Nexys4 -------------------------------------
|
67 |
|
|
SYN_viv += rtl/sys_gen/tst_rlink/nexys4
|
68 |
|
|
SYN_viv += rtl/sys_gen/tst_serloop/nexys4
|
69 |
|
|
SYN_viv += rtl/sys_gen/tst_snhumanio/nexys4
|
70 |
37 |
wfjm |
SYN_viv += rtl/sys_gen/tst_sram/nexys4
|
71 |
29 |
wfjm |
SYN_viv += rtl/sys_gen/w11a/nexys4
|
72 |
|
|
|
73 |
35 |
wfjm |
# Arty ---------------------------------------
|
74 |
|
|
SYN_viv += rtl/sys_gen/tst_rlink/arty
|
75 |
|
|
SYN_viv += rtl/sys_gen/w11a/arty_bram
|
76 |
|
|
|
77 |
29 |
wfjm |
# Simulation targets -------------------------------------------------
|
78 |
|
|
# ISE flow -----------------------------------------------
|
79 |
|
|
|
80 |
|
|
# Component tests ----------------------------
|
81 |
|
|
|
82 |
|
|
# S3board ------------------------------------
|
83 |
|
|
SIM_ise += rtl/sys_gen/tst_rlink/s3board/tb
|
84 |
|
|
SIM_ise += rtl/sys_gen/tst_serloop/s3board/tb
|
85 |
37 |
wfjm |
SIM_ise += rtl/sys_gen/tst_sram/s3board/tb
|
86 |
29 |
wfjm |
SIM_ise += rtl/sys_gen/w11a/s3board/tb
|
87 |
|
|
|
88 |
|
|
# Nexys2 -------------------------------------
|
89 |
|
|
SIM_ise += rtl/sys_gen/tst_rlink/nexys2/tb
|
90 |
|
|
SIM_ise += rtl/sys_gen/tst_rlink_cuff/nexys2/ic/tb
|
91 |
|
|
SIM_ise += rtl/sys_gen/tst_serloop/nexys2/tb
|
92 |
37 |
wfjm |
SIM_ise += rtl/sys_gen/tst_sram/nexys2/tb
|
93 |
29 |
wfjm |
SIM_ise += rtl/sys_gen/w11a/nexys2/tb
|
94 |
|
|
|
95 |
|
|
# Nexys3 -------------------------------------
|
96 |
|
|
SIM_ise += rtl/sys_gen/tst_rlink/nexys3/tb
|
97 |
|
|
SIM_ise += rtl/sys_gen/tst_rlink_cuff/nexys3/ic/tb
|
98 |
|
|
SIM_ise += rtl/sys_gen/tst_serloop/nexys3/tb
|
99 |
37 |
wfjm |
SIM_ise += rtl/sys_gen/tst_sram/nexys3/tb
|
100 |
29 |
wfjm |
SIM_ise += rtl/sys_gen/w11a/nexys3/tb
|
101 |
|
|
|
102 |
|
|
# Vivado flow --------------------------------------------
|
103 |
37 |
wfjm |
|
104 |
|
|
# Component tests ----------------------------
|
105 |
|
|
SIM_viv += rtl/bplib/issi/tb
|
106 |
|
|
SIM_viv += rtl/bplib/micron/tb
|
107 |
|
|
SIM_viv += rtl/bplib/nxcramlib/tb
|
108 |
|
|
SIM_viv += rtl/vlib/comlib/tb
|
109 |
|
|
SIM_viv += rtl/vlib/rlink/tb
|
110 |
|
|
SIM_viv += rtl/vlib/serport/tb
|
111 |
|
|
SIM_viv += rtl/w11a/tb
|
112 |
|
|
|
113 |
29 |
wfjm |
# Basys3 -------------------------------------
|
114 |
|
|
SIM_viv += rtl/sys_gen/tst_rlink/basys3/tb
|
115 |
|
|
#SIM_viv += rtl/sys_gen/tst_serloop/basys3/tb
|
116 |
|
|
SIM_viv += rtl/sys_gen/w11a/basys3/tb
|
117 |
35 |
wfjm |
|
118 |
29 |
wfjm |
# Nexys4 -------------------------------------
|
119 |
|
|
SIM_viv += rtl/sys_gen/tst_rlink/nexys4/tb
|
120 |
|
|
SIM_viv += rtl/sys_gen/tst_serloop/nexys4/tb
|
121 |
37 |
wfjm |
SIM_viv += rtl/sys_gen/tst_sram/nexys4/tb
|
122 |
29 |
wfjm |
SIM_viv += rtl/sys_gen/w11a/nexys4/tb
|
123 |
35 |
wfjm |
|
124 |
|
|
# Arty ---------------------------------------
|
125 |
|
|
SIM_viv += rtl/sys_gen/tst_rlink/arty/tb
|
126 |
|
|
SIM_viv += rtl/sys_gen/w11a/arty_bram/tb
|
127 |
|
|
|
128 |
16 |
wfjm |
#
|
129 |
29 |
wfjm |
.PHONY : default
|
130 |
|
|
.PHONY : all all_ise all_viv
|
131 |
|
|
.PHONY : all_sim_ise all_syn_ise all_syn_viv
|
132 |
36 |
wfjm |
.PHONY : vmfsum imfsum
|
133 |
29 |
wfjm |
.PHONY : clean
|
134 |
|
|
.PHONY : clean_sim_ise clean_sim_ise_tmp
|
135 |
|
|
.PHONY : clean_sym_ise clean_sim_viv clean_sym_ise_tmp clean_sym_viv_tmp
|
136 |
16 |
wfjm |
#
|
137 |
29 |
wfjm |
# all directories most be declared as phony targets
|
138 |
|
|
.PHONY : $(SYN_ise) $(SIM_ise)
|
139 |
|
|
.PHONY : $(SYN_viv) $(SIM_viv)
|
140 |
|
|
#
|
141 |
28 |
wfjm |
default :
|
142 |
27 |
wfjm |
@echo "No default action defined:"
|
143 |
19 |
wfjm |
@echo " for VHDL simulation/synthesis use:"
|
144 |
29 |
wfjm |
@echo " make -j `nproc` all"
|
145 |
|
|
@echo " make -j `nproc` all_ise"
|
146 |
|
|
@echo " make -j `nproc` all_viv"
|
147 |
|
|
@echo " make -j `nproc` all_sim_ise"
|
148 |
|
|
@echo " make -j `nproc` all_syn_ise"
|
149 |
|
|
@echo " make -j `nproc` all_sim_viv"
|
150 |
31 |
wfjm |
@echo " make -j 1 all_syn_viv"
|
151 |
36 |
wfjm |
@echo " make vmfsum"
|
152 |
|
|
@echo " make imfsum"
|
153 |
19 |
wfjm |
@echo " make clean"
|
154 |
29 |
wfjm |
@echo " make clean_sim_ise"
|
155 |
|
|
@echo " make clean_syn_ise"
|
156 |
|
|
@echo " make clean_sim_viv"
|
157 |
|
|
@echo " make clean_syn_viv"
|
158 |
|
|
@echo " make clean_sim_ise_tmp"
|
159 |
|
|
@echo " make clean_syn_ise_tmp"
|
160 |
|
|
@echo " make clean_sim_viv_tmp"
|
161 |
|
|
@echo " make clean_syn_viv_tmp"
|
162 |
19 |
wfjm |
@echo " for tool/documentation generation use:"
|
163 |
27 |
wfjm |
@echo " make -j `nproc` all_lib"
|
164 |
19 |
wfjm |
@echo " make clean_lib"
|
165 |
|
|
@echo " make all_tcl"
|
166 |
|
|
@echo " make all_dox"
|
167 |
16 |
wfjm |
#
|
168 |
29 |
wfjm |
all : all_ise all_viv all_lib
|
169 |
|
|
all_ise : all_sim_ise all_syn_ise
|
170 |
|
|
all_viv : all_sim_viv all_syn_viv
|
171 |
16 |
wfjm |
#
|
172 |
29 |
wfjm |
clean : clean_sim_ise clean_syn_ise clean_sim_viv clean_syn_viv
|
173 |
16 |
wfjm |
#
|
174 |
29 |
wfjm |
clean_sim_ise :
|
175 |
|
|
for dir in $(SIM_ise); do $(MAKE) -C $$dir clean; done
|
176 |
|
|
clean_syn_ise :
|
177 |
|
|
for dir in $(SYN_ise); do $(MAKE) -C $$dir clean; done
|
178 |
16 |
wfjm |
#
|
179 |
29 |
wfjm |
clean_sim_viv :
|
180 |
|
|
for dir in $(SIM_viv); do $(MAKE) -C $$dir clean; done
|
181 |
|
|
clean_syn_viv :
|
182 |
|
|
for dir in $(SYN_viv); do $(MAKE) -C $$dir clean; done
|
183 |
21 |
wfjm |
#
|
184 |
29 |
wfjm |
clean_sim_ise_tmp :
|
185 |
|
|
for dir in $(SIM_ise); do $(MAKE) -C $$dir ghdl_tmp_clean; done
|
186 |
|
|
clean_syn_ise_tmp :
|
187 |
|
|
for dir in $(SYN_ise); do $(MAKE) -C $$dir ise_tmp_clean; done
|
188 |
17 |
wfjm |
#
|
189 |
29 |
wfjm |
clean_sim_viv_tmp :
|
190 |
|
|
for dir in $(SIM_viv); do $(MAKE) -C $$dir ghdl_tmp_clean; done
|
191 |
|
|
clean_syn_viv_tmp :
|
192 |
|
|
for dir in $(SYN_viv); do $(MAKE) -C $$dir viv_tmp_clean; done
|
193 |
|
|
#
|
194 |
|
|
all_sim_ise : $(SIM_ise)
|
195 |
|
|
#
|
196 |
|
|
all_syn_ise : $(SYN_ise)
|
197 |
17 |
wfjm |
@if [ -n "`find -name "*_par.log" | xargs grep -L 'All constraints were met'`" ] ; then \
|
198 |
|
|
echo "++++++++++ some designs have no timing closure: ++++++++++"; \
|
199 |
|
|
find -name "*_par.log" | xargs grep -L 'All constraints were met'; \
|
200 |
|
|
echo "++++++++++ ++++++++++++++++++++++++++++++++++++ ++++++++++"; \
|
201 |
29 |
wfjm |
else \
|
202 |
|
|
echo "++++++++++ all ISE designs have timing closure ++++++++++"; \
|
203 |
17 |
wfjm |
fi
|
204 |
16 |
wfjm |
#
|
205 |
29 |
wfjm |
all_sim_viv : $(SIM_viv)
|
206 |
17 |
wfjm |
#
|
207 |
29 |
wfjm |
all_syn_viv : $(SYN_viv)
|
208 |
|
|
@if [ -n "`find -name "*_rou_tim.rpt" | xargs grep -L 'All user specified timing constraints are met'`" ] ; then \
|
209 |
|
|
echo "++++++++++ some designs have no timing closure: ++++++++++"; \
|
210 |
|
|
find -name "*_rou_tim.rpt" | xargs grep -L 'All user specified timing constraints are met'; \
|
211 |
|
|
echo "++++++++++ ++++++++++++++++++++++++++++++++++++ ++++++++++"; \
|
212 |
|
|
else \
|
213 |
|
|
echo "++++++++++ all Vivado designs have timing closure ++++++++++"; \
|
214 |
|
|
fi
|
215 |
|
|
#
|
216 |
|
|
# Neither ghdl nor Xilinx tools allow multiple parallel compiles in one
|
217 |
|
|
# directory. The following ensures that the sub-makes are called with -j 1
|
218 |
|
|
# and will not try to run multiple compiles on one directory.
|
219 |
|
|
#
|
220 |
|
|
$(SIM_ise):
|
221 |
17 |
wfjm |
$(MAKE) -j 1 -C $@
|
222 |
29 |
wfjm |
$(SYN_ise):
|
223 |
17 |
wfjm |
$(MAKE) -j 1 -C $@
|
224 |
16 |
wfjm |
#
|
225 |
29 |
wfjm |
$(SIM_viv):
|
226 |
|
|
$(MAKE) -j 1 -C $@
|
227 |
|
|
$(SYN_viv):
|
228 |
|
|
$(MAKE) -j 1 -C $@
|
229 |
|
|
#
|
230 |
36 |
wfjm |
vmfsum :
|
231 |
|
|
@xviv_msg_summary
|
232 |
|
|
imfsum :
|
233 |
|
|
@xise_msg_summary
|
234 |
|
|
#
|
235 |
19 |
wfjm |
all_lib :
|
236 |
|
|
$(MAKE) -C tools/src
|
237 |
|
|
clean_lib :
|
238 |
|
|
$(MAKE) -C tools/src distclean
|
239 |
|
|
#
|
240 |
|
|
all_tcl :
|
241 |
|
|
(cd tools/tcl; setup_packages)
|
242 |
|
|
#
|
243 |
|
|
all_dox :
|
244 |
|
|
(cd tools/dox; make_doxy)
|
245 |
|
|
#
|
246 |
|
|
all_all : all_sim all_syn all_lib all_tcl
|
247 |
29 |
wfjm |
|