OpenCores
URL https://opencores.org/ocsvn/w11/w11/trunk

Subversion Repositories w11

[/] [w11/] [tags/] [w11a_V0.74/] [rtl/] [make_viv/] [generic_vivado.mk] - Blame information for rev 40

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 37 wfjm
# $Id: generic_vivado.mk 803 2016-08-28 12:39:00Z mueller $
2 29 wfjm
#
3 36 wfjm
# Copyright 2015-2016 by Walter F.J. Mueller 
4 29 wfjm
# License disclaimer see LICENSE_gpl_v2.txt in $RETROBASE directory
5
#
6
# Revision History:
7
# Date         Rev Version  Comment
8 37 wfjm
# 2016-08-27   802   1.4.1  viv_clean: rm only vivado logs
9
# 2016-07-22   792   1.4    relocate viv tcl code to tools/vivado
10 36 wfjm
# 2016-06-24   778   1.3    add rsim.vhd and [sorep]sim.v targets
11
# 2016-06-11   774   1.2.1  call xviv_sim_vhdl_cleanup for %_[so]sim rules
12
# 2016-05-27   769   1.2    add xviv_msg_filter support
13
# 2016-03-26   752   1.1    new %.vivado; separate %_opt.dcp,%_pla.dcp,%_rou.dcp
14 29 wfjm
# 2015-02-15   646   1.0    Initial version
15
# 2015-01-25   637   0.1    First draft
16
#---
17
#
18
# check that part is defined
19
#
20
ifndef VIV_BOARD_SETUP
21
$(error VIV_BOARD_SETUP is not defined)
22
endif
23
#
24
# ensure that default tools and flows are defined
25
#
26
ifndef VIV_INIT
27 37 wfjm
VIV_INIT = ${RETROBASE}/tools/vivado/viv_init.tcl
28 29 wfjm
endif
29
ifndef VIV_BUILD_FLOW
30 37 wfjm
VIV_BUILD_FLOW = ${RETROBASE}/tools/vivado/viv_default_build.tcl
31 29 wfjm
endif
32
ifndef VIV_CONFIG_FLOW
33 37 wfjm
VIV_CONFIG_FLOW = ${RETROBASE}/tools/vivado/viv_default_config.tcl
34 29 wfjm
endif
35
ifndef VIV_MODEL_FLOW
36 37 wfjm
VIV_MODEL_FLOW = ${RETROBASE}/tools/vivado/viv_default_model.tcl
37 29 wfjm
endif
38
#
39
# $@ first target
40
# $< first dependency
41
# $* stem in rule match
42
#
43
# when chaining, don't delete 'expensive' intermediate files:
44
.SECONDARY :
45
#
46 36 wfjm
# Setup vivado project
47
#   input:   %.vbom     vbom project description
48
#   output:  .PHONY
49
#
50
%.vivado : %.vbom
51
        rm -rf project_mflow
52
        xtwv vivado -mode batch \
53
                -source ${VIV_INIT} \
54
                -source ${VIV_BOARD_SETUP} \
55
                -source ${VIV_BUILD_FLOW} \
56
                -tclargs $* prj
57
#
58 29 wfjm
# Synthesize + Implement -> generate bit file
59
#   input:   %.vbom     vbom project description
60
#   output:  %.bit
61
#
62
%.bit : %.vbom
63
        rm -rf project_mflow
64
        xtwv vivado -mode batch \
65
                -source ${VIV_INIT} \
66
                -source ${VIV_BOARD_SETUP} \
67
                -source ${VIV_BUILD_FLOW} \
68
                -tclargs $* bit
69 36 wfjm
        @ if [ -r $*.vmfset ]; then make $*.mfsum; fi
70 29 wfjm
#
71 36 wfjm
# Print log file summary
72
#   input:   %_*.log (not depended)
73
#   output:  .PHONY
74
%.mfsum: %.vmfset
75
        @ echo "=== Synthesis flow summary =================================="
76
        @ if [ -r $*_syn.log ]; \
77
             then xviv_msg_filter syn $*.vmfset $*_syn.log; \
78
             else echo "   !!! no $*_syn.log found"; fi
79
        @ echo "=== Implementation flow summary=============================="
80
        @ if [ -r $*_imp.log ]; \
81
             then xviv_msg_filter imp $*.vmfset $*_imp.log; \
82
             else echo "   !!! no $*_imp.log found"; fi
83
#
84 29 wfjm
# Configure FPGA with vivado hardware server
85
#   input:   %.bit
86
#   output:  .PHONY
87
#
88
%.vconfig : %.bit
89
        xtwv vivado -mode batch \
90
                -source ${VIV_INIT} \
91
                -source ${VIV_BOARD_SETUP} \
92
                -source ${VIV_CONFIG_FLOW} \
93
                -tclargs $*
94
#
95
# Partial Synthesize + Implement -> generate dcp for model generation
96
#
97 36 wfjm
# run synthesis only
98 29 wfjm
%_syn.dcp : %.vbom
99
        rm -rf project_mflow
100
        xtwv vivado -mode batch \
101
                -source ${VIV_INIT} \
102
                -source ${VIV_BOARD_SETUP} \
103
                -source ${VIV_BUILD_FLOW} \
104
                -tclargs $* syn
105 36 wfjm
#
106
# run synthesis + implementation up to step opt_design
107
%_opt.dcp : %.vbom
108 29 wfjm
        rm -rf project_mflow
109
        xtwv vivado -mode batch \
110
                -source ${VIV_INIT} \
111
                -source ${VIV_BOARD_SETUP} \
112
                -source ${VIV_BUILD_FLOW} \
113 36 wfjm
                -tclargs $* opt
114
#
115
# run synthesis + implementation up to step place_design
116
%_pla.dcp : %.vbom
117
        rm -rf project_mflow
118
        xtwv vivado -mode batch \
119
                -source ${VIV_INIT} \
120
                -source ${VIV_BOARD_SETUP} \
121
                -source ${VIV_BUILD_FLOW} \
122
                -tclargs $* pla
123
#
124
# run synthesis + implementation (but not bit file generation)
125
%_rou.dcp : %.vbom
126
        rm -rf project_mflow
127
        xtwv vivado -mode batch \
128
                -source ${VIV_INIT} \
129
                -source ${VIV_BOARD_SETUP} \
130
                -source ${VIV_BUILD_FLOW} \
131 29 wfjm
                -tclargs $* imp
132
#
133
# Post-synthesis functional simulation model (Vhdl/Unisim)
134
#   input:   %_syn.dcp
135
#   output:  %_ssim.vhd
136
#
137
%_ssim.vhd : %_syn.dcp
138
        xtwv vivado -mode batch \
139
                -source ${VIV_INIT} \
140
                -source ${VIV_MODEL_FLOW} \
141 36 wfjm
                -tclargs $* ssim_vhd
142
        xviv_sim_vhdl_cleanup $@
143 29 wfjm
#
144
# Post-optimization functional simulation model (Vhdl/Unisim)
145
#   input:   %_opt.dcp
146
#   output:  %_osim.vhd
147
#
148
%_osim.vhd : %_opt.dcp
149
        xtwv vivado -mode batch \
150
                -source ${VIV_INIT} \
151
                -source ${VIV_MODEL_FLOW} \
152 36 wfjm
                -tclargs $* osim_vhd
153
        xviv_sim_vhdl_cleanup $@
154 29 wfjm
#
155 36 wfjm
# Post-routing functional simulation model (Vhdl/Unisim)
156
#   input:   %_rou.dcp
157
#   output:  %_rsim.vhd
158
#
159
%_rsim.vhd : %_rou.dcp
160
        xtwv vivado -mode batch \
161
                -source ${VIV_INIT} \
162
                -source ${VIV_MODEL_FLOW} \
163
                -tclargs $* rsim_vhd
164
        xviv_sim_vhdl_cleanup $@
165
#
166
# Post-synthesis functional simulation model (Verilog/Unisim)
167
#   input:   %_syn.dcp
168
#   output:  %_ssim.v
169
#
170
%_ssim.v : %_syn.dcp
171
        xtwv vivado -mode batch \
172
                -source ${VIV_INIT} \
173
                -source ${VIV_MODEL_FLOW} \
174
                -tclargs $* ssim_v
175
#
176
# Post-optimization functional simulation model (Verilog/Unisim)
177
#   input:   %_opt.dcp
178
#   output:  %_osim.v
179
#
180
%_osim.v : %_opt.dcp
181
        xtwv vivado -mode batch \
182
                -source ${VIV_INIT} \
183
                -source ${VIV_MODEL_FLOW} \
184
                -tclargs $* osim_v
185
#
186
# Post-routing functional simulation model (Verilog/Unisim)
187
#   input:   %_rou.dcp
188
#   output:  %_rsim.v
189
#
190
%_rsim.v : %_rou.dcp
191
        xtwv vivado -mode batch \
192
                -source ${VIV_INIT} \
193
                -source ${VIV_MODEL_FLOW} \
194
                -tclargs $* rsim_v
195
#
196
# Post-synthesis timing simulation model (Verilog/Simprim)
197
#   input:   %_syn.dcp
198
#   output:  %_esim.v
199
#            %_esim.sdf
200
#
201
%_esim.v %_esim.sdf : %_syn.dcp
202
        xtwv vivado -mode batch \
203
                -source ${VIV_INIT} \
204
                -source ${VIV_MODEL_FLOW} \
205
                -tclargs $* esim_v
206
#
207
# Post-optimization timing simulation model (Verilog/Simprim)
208
#   input:   %_opt.dcp
209
#   output:  %_psim.v
210
#            %_psim.sdf
211
#
212
%_psim.v %_psim.sdf : %_opt.dcp
213
        xtwv vivado -mode batch \
214
                -source ${VIV_INIT} \
215
                -source ${VIV_MODEL_FLOW} \
216
                -tclargs $* psim_v
217
#
218 29 wfjm
# Post-routing timing simulation model (Verilog/Simprim)
219
#   input:   %_rou.dcp
220
#   output:  %_tsim.v
221
#            %_tsim.sdf
222
#
223
%_tsim.v %_tsim.sdf : %_rou.dcp
224
        xtwv vivado -mode batch \
225
                -source ${VIV_INIT} \
226
                -source ${VIV_MODEL_FLOW} \
227 36 wfjm
                -tclargs $* tsim_v
228 29 wfjm
#
229
# vivado project quick starter
230
#
231
.PHONY : vivado
232
vivado :
233
        xtwv vivado -mode gui project_mflow/project_mflow.xpr
234
 
235
#
236
# generate dep_vsyn files from vbom
237
#
238
%.dep_vsyn: %.vbom
239
        vbomconv --dep_vsyn $< > $@
240
 
241
#
242
# Cleanup
243
#
244 35 wfjm
include ${RETROBASE}/rtl/make_viv/dontincdep.mk
245 29 wfjm
#
246
.PHONY : viv_clean viv_tmp_clean
247
#
248
viv_clean: viv_tmp_clean
249
        rm -f *.bit
250
        rm -f *.dcp
251
        rm -f *.jou
252 37 wfjm
        rm -f *_bit.log
253
        rm -f *_imp.log
254
        rm -f *_syn.log
255 29 wfjm
        rm -f *.rpt
256 36 wfjm
        rm -f *_[sor]sim.vhd
257
        rm -f *_[sorept]sim.v
258
        rm -f *_[ept]sim.sdf
259 29 wfjm
#
260
viv_tmp_clean:
261
        rm -rf ./project_mflow
262
#

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.