Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / siu / vera / Makefile
CommitLineData
86530b38
AT
1################################################################################
2## File: Makefile
3## Notes: runs with "gmake" only, not with "make"
4## Description:
5## -----------
6## Top level Makefile for compiling Vera DES environment.
7##
8## $Id: Makefile,v 1.3 2007/07/25 19:40:55 drp Exp $
9################################################################################
10
11################################################################################
12# variable declarations
13################################################################################
14
15SYS := siu
16## Coverage top level directory
17CTOP := ${DV_ROOT}/verif/env/common/coverage
18
19ECHO := echo
20PID := $(shell echo $$$$) ## :-). Just get a random number
21
22## parallel make at sub-dir level
23ifndef p
24p := 1
25endif
26
27.SUFFIXES:
28
29VERA_LIBDIR ?= ./lib
30
31## Coverage users
32## -------- -----
33## 1. add <unit> to EXCLUDED_UNITS and COV_UNITS
34## 2. Add entry for <unit> below "all"
35##
36## Look for "Coverage edit", below.
37## Remember to use "gmake" instead of "make" when testing.
38
39## Selectively turn on coverage units needed
40## Coverage edit (1)
41EXCLUDED_UNITS := siu
42EXCLUDED_UNITS +=
43
44COV_UNITS :=
45VERA_DEFS ?=
46
47# added this macro to exclude stuff for NIU
48ifdef FC_NO_NIU_T2
49VERA_DEFS += -DFC_NO_NIU_T2
50endif
51
52## When top level coverage objects are built, they update <unit>_built
53## target file.
54## These are used to decide if $(SYS)_top.vro needs to be recompiled
55COV_BUILT := $(COV_UNITS:%=$(VERA_LIBDIR)/%_built)
56
57ifdef SIU_COVERAGE
58COV_UNITS += siu
59VERA_DEFS += -DSIU_COVERAGE
60endif
61
62ifdef NO_0INMGR
63VERA_DEFS += -DNO_0INMGR
64endif
65
66VERA_VRH ?= vera -cmp -I . -max_error 5 -q $(VERA_DEFS) -H
67VERA_VRO ?= vera -cmp -I . -max_error 5 -q $(VERA_DEFS)
68
69COMMON_DIR := ${DV_ROOT}/verif/env/common/vera/
70
71# siu stub ports
72PORT_SRC := include/siu_ports_binds.vrhpal
73IF_SRC := include/siu.if.vrhpal
74PORT_DEST := $(VERA_LIBDIR)/siu_ports_binds.vrh
75IF_DEST := $(VERA_LIBDIR)/siu.if.vrh
76
77# share between siu sat, stubs and monitors
78VERA_INCLUDE := include/siu_delay.vrh
79VERA_INCLUDE += include/siu_monitor.vrh
80VERA_INCLUDE += include/top_defines.vrh
81VERA_INCLUDE := $(subst include,$(VERA_LIBDIR),$(VERA_INCLUDE))
82
83# siu sat and stub use only
84SIU_INCLUDE := include/siu_top.vcon
85SIU_INCLUDE += include/siu_l2_defines.vrh
86SIU_INCLUDE += include/diag.vri
87SIU_INCLUDE := $(subst include,$(VERA_LIBDIR),$(SIU_INCLUDE))
88
89MONPORT_SRC := include/siumon_ports_binds.vrhpal
90MONIF_SRC := include/siumon.if.vrhpal
91MONPORT_DEST := $(VERA_LIBDIR)/siumon_ports_binds.vrh
92MONIF_DEST := $(VERA_LIBDIR)/siumon.if.vrh
93
94PACKETS := packets/siu_err_mask.vr
95PACKETS += packets/siu_basic_packet.vr
96PACKETS += packets/siu_common.vr
97PACKETS += packets/siu_dmu_packet.vr
98PACKETS += packets/siu_jtag_packet.vr
99PACKETS += packets/siu_l2_packet.vr
100PACKETS += packets/siu_ncu_packet.vr
101# added this
102ifndef FC_NO_NIU_T2
103PACKETS += packets/siu_niu_packet.vr
104endif
105PACKETS := $(subst packets,$(VERA_LIBDIR),$(PACKETS))
106PACKETS_VRH := $(patsubst %.vr,%.vrh,$(PACKETS))
107PACKETS_VRO := $(patsubst %.vr,%.vro,$(PACKETS))
108
109STUBS := stubs/dmu_phy.vr
110STUBS += stubs/l2_stub.vr
111STUBS += stubs/ncu_stub.vr
112STUBS += stubs/niu_phy.vr
113STUBS += stubs/tcu_phy.vr
114STUBS := $(subst stubs,$(VERA_LIBDIR),$(STUBS))
115STUBS_VRH := $(patsubst %.vr,%.vrh,$(STUBS))
116STUBS_VRO := $(patsubst %.vr,%.vro,$(STUBS))
117
118MONITORS := monitors/siu_dmu_mon.vr
119MONITORS += monitors/siu_l2_mon.vr
120# added this
121ifndef FC_NO_NIU_T2
122MONITORS += monitors/siu_niu_mon.vr
123endif
124MONITORS += monitors/siu_order_checker.vr
125MONITORS := $(subst monitors,$(VERA_LIBDIR),$(MONITORS))
126MONITORS_VRH := $(patsubst %.vr,%.vrh,$(MONITORS))
127MONITORS_VRO := $(patsubst %.vr,%.vro,$(MONITORS))
128
129MISC := monitors/siu_ncu_err_mon.vr
130MISC += monitors/siu_ncu_synd_mon.vr
131MISC := $(subst monitors,$(VERA_LIBDIR),$(MISC))
132MISC_VRH := $(patsubst %.vr,%.vrh,$(MISC))
133MISC_VRO := $(patsubst %.vr,%.vro,$(MISC))
134
135COMMON := std_display_class.vr
136
137ifndef NO_0INMGR
138ZERO_MGR := ZeroInManager.vr
139ZERO_INCLUDE := $(COMMON_DIR)include/ZeroInDefines.vri
140ZERO_INCLUDE += $(COMMON_DIR)classes/ZeroInManager.vrh
141ZERO_INCLUDE += $(COMMON_DIR)classes/ZeroInManager.vr
142ZERO_INCLUDE := $(subst $(COMMON_DIR)include,$(VERA_LIBDIR),$(ZERO_INCLUDE))
143ZERO_INCLUDE := $(subst $(COMMON_DIR)classes,$(VERA_LIBDIR),$(ZERO_INCLUDE))
144ZERO_MGR_VRH := $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(ZERO_MGR))
145ZERO_MGR_VRO := $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(ZERO_MGR))
146endif
147
148COMMON_INCLUDE := $(COMMON_DIR)include/seeding.vri
149COMMON_INCLUDE += $(COMMON_DIR)include/std_display_defines.vri
150COMMON_INCLUDE += $(COMMON_DIR)include/plusArgMacros.vri
151COMMON_INCLUDE += $(COMMON_DIR)classes/std_display_class.vrh
152COMMON_INCLUDE += $(COMMON_DIR)classes/std_display_class.vr
153COMMON_INCLUDE := $(subst $(COMMON_DIR)include,$(VERA_LIBDIR),$(COMMON_INCLUDE))
154COMMON_INCLUDE := $(subst $(COMMON_DIR)classes,$(VERA_LIBDIR),$(COMMON_INCLUDE))
155COMMON_VRH := $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(COMMON))
156COMMON_VRO := $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(COMMON))
157
158
159################################################################################
160# generic rule to make a .vro file
161################################################################################
162
163$(VERA_LIBDIR)/%.vrh: $(VERA_LIBDIR)/%.vr
164 @$(ECHO) $(INDENT) "Vera: generating headers for $(notdir $<)"
165 cd $(VERA_LIBDIR); $(VERA_VRH) $(notdir $<) $(notdir $(@:%.vrh=%))
166
167$(VERA_LIBDIR)/%.vro: $(VERA_LIBDIR)/%.vr
168 @$(ECHO) $(INDENT) "Vera: compiling $(notdir $<)"
169 cd $(VERA_LIBDIR); $(VERA_VRO) $(notdir $<) $(notdir $@)
170
171$(VERA_LIBDIR)/%: $(COMMON_DIR)/%
172 @$(ECHO) $(INDENT) "Copying $<"
173 cp -f $< $@
174
175$(VERA_LIBDIR)/%: $(COMMON_DIR)classes/%
176 @$(ECHO) $(INDENT) "Copying $<"
177 cp -f $< $@
178
179$(VERA_LIBDIR)/%: $(COMMON_DIR)include/%
180 @$(ECHO) $(INDENT) "Copying $<"
181 cp -f $< $@
182
183$(VERA_LIBDIR)/%: packets/%
184 @$(ECHO) $(INDENT) "Copying $<"
185 cp -f $< $@
186
187$(VERA_LIBDIR)/%: stubs/%
188 @$(ECHO) $(INDENT) "Copying $<"
189 cp -f $< $@
190
191$(VERA_LIBDIR)/%: monitors/%
192 @$(ECHO) $(INDENT) "Copying $<"
193 cp -f $< $@
194
195$(VERA_LIBDIR)/%: include/%
196 @$(ECHO) $(INDENT) "Copying $<"
197 cp -f $< $@
198
199$(VERA_LIBDIR)/%: %
200 @$(ECHO) $(INDENT) "Copying $<"
201 cp -f $< $@
202
203
204################################################################################
205# all
206################################################################################
207
208ifdef NO_0INMGR
209all: siu_mon $(SIU_INCLUDE) \
210 $(PORT_DEST) $(IF_DEST) $(COV_UNITS) \
211 $(STUBS_VRH) $(STUBS_VRO)\
212 $(VERA_LIBDIR)/diag.vri \
213 $(MISC_VRH) $(MISC_VRO) \
214 $(VERA_LIBDIR)/siu_top.vro
215else
216all: siu_mon $(SIU_INCLUDE) \
217 $(ZERO_INCLUDE) $(ZERO_MGR_VRH) $(ZERO_MGR_VRO) \
218 $(PORT_DEST) $(IF_DEST) $(COV_UNITS) \
219 $(STUBS_VRH) $(STUBS_VRO)\
220 $(VERA_LIBDIR)/diag.vri \
221 $(MISC_VRH) $(MISC_VRO) \
222 $(VERA_LIBDIR)/siu_top.vro
223endif
224
225dir:
226 if (test ! -d $(VERA_LIBDIR)) then mkdir $(VERA_LIBDIR) ; fi
227
228$(PORT_DEST): $(PORT_SRC)
229 pal -r $< > $@
230
231$(IF_DEST): $(IF_SRC)
232 pal -r $< > $@
233
234$(MONPORT_DEST): $(MONPORT_SRC)
235 pal -r $< > $@
236
237$(MONIF_DEST): $(MONIF_SRC)
238 pal -r $< > $@
239
240siu_mon: dir $(COMMON_INCLUDE) $(COMMON_VRH) $(COMMON_VRO) \
241 $(MONPORT_DEST) $(MONIF_DEST) $(VERA_INCLUDE)\
242 $(PACKETS_VRH) $(PACKETS_VRO) \
243 $(MONITORS_VRH) $(MONITORS_VRO)
244
245################################################################################
246### Begin checker and stub targets
247################################################################################
248MAKE_CMD := $(MAKE) --no-print-directory -j $(p)
249
250siu:
251 @$(ECHO) ""
252 @$(ECHO) "[Building siu coverage"
253 if (test -d $(CTOP)/siu) then \
254 ( cd $(CTOP)/siu; \
255 if (test -f Makefile) then $(MAKE_CMD) ; fi ) \
256 fi
257 @$(ECHO) "Done with siu coverage]"
258 @$(ECHO) ""
259
260
261## Coverage edit (2)
262## Copy next three lines, paste above, edit <unit> and uncomment
263#<unit>: $(HDL_INCLUDE)
264# @$(ECHO) ""
265# @$(ECHO) "[Building <unit> coverage"
266# if (test -d $(CTOP)/<unit>) then \
267# ( cd $(CTOP)/<unit>; \
268# if (test -f Makefile) then $(COV_MAKE_CMD) ; fi ) \
269# fi
270# @$(ECHO) "Done with <unit> coverage]"
271# @$(ECHO) ""
272
273### End coverage related targets
274
275################################################################################
276# Extra dependences for special rebuilds
277################################################################################
278$(VERA_LIBDIR)/$(SYS)_top.vro: $(COV_BUILT) $(VERA_LIBDIR)/units_used
279$(VERA_LIBDIR)/$(SYS)_top.vrh: $(VERA_LIBDIR)/units_used
280$(VERA_LIBDIR)/units_used: FORCE
281 test -f $@ || touch $@
282 $(ECHO) $(COV_UNITS) > /tmp/units_used.$(PID)
283 diff /tmp/units_used.$(PID) $@ > /dev/null || \
284 mv /tmp/units_used.$(PID) $@
285 rm -f /tmp/units_used.$(PID)
286 $(ECHO) $(EXCLUDED_UNITS) > $(VERA_LIBDIR)/excluded_cov_units
287
288## Dummy target to get above to always fire
289FORCE:
290
291.PHONY: FORCE
292
293ifndef DEBUG
294.SILENT:
295endif
296
297################################################################################
298# clean
299################################################################################
300
301clean:
302 rm -rf $(VERA_LIBDIR)/*