Commit | Line | Data |
---|---|---|
86530b38 AT |
1 | ################################################################################ |
2 | ## File: Makefile | |
3 | ## Notes: runs with "gmake" only, not with "make" | |
4 | ## to get the PEU SAT(FNX lpusd) to run in our sims environment. | |
5 | ## Description: | |
6 | ## ----------- | |
7 | ## Top level Makefile for compiling Vera ILU_PEU environment. | |
8 | ## | |
9 | ## release note: | |
10 | ## ------------- | |
11 | ## 01/18/2005 ac on archie flow, reference new remove_access_methods.pl | |
12 | ## 04/05/2005 ac add zeroinmgr for disable check function | |
13 | ################################################################################ | |
14 | ||
15 | ################################################################################ | |
16 | # variable declarations | |
17 | ################################################################################ | |
18 | common_dir_classes = $(DV_ROOT)/verif/env/common/vera/classes | |
19 | common_dir = $(DV_ROOT)/verif/env/common/vera | |
20 | ||
21 | #---------------------------------------------------------------------------- | |
22 | # UD : To make ilu_peu and FC SAT use the same Makefile. | |
23 | #---------------------------------------------------------------------------- | |
24 | ifdef N2_FC | |
25 | SYS := fc | |
26 | else | |
27 | SYS := ilu_peu | |
28 | endif | |
29 | ||
30 | ECHO := echo | |
31 | PID := $(shell echo $$$$) ## :-). Just get a random number | |
32 | ||
33 | .SUFFIXES: | |
34 | ||
35 | VERA_LIBDIR ?= vera/lib | |
36 | ||
37 | ifdef N2_IOS | |
38 | testbench_vshell = tb_top.vshell | |
39 | else | |
40 | testbench_vshell = $(SYS)_top.vshell | |
41 | endif | |
42 | testbench_vcon = $(SYS)_top.vcon | |
43 | ||
44 | ||
45 | #---------------------------------------------------------------------------- | |
46 | # Coverage related setup | |
47 | #---------------------------------------------------------------------------- | |
48 | ||
49 | ||
50 | ## Coverage top level directory | |
51 | CTOP := ${DV_ROOT}/verif/env/common/coverage | |
52 | ||
53 | ||
54 | ## Coverage users | |
55 | ## -------- ----- | |
56 | ## 1. add <unit> to EXCLUDED_UNITS and COV_UNITS | |
57 | ## 2. Add entry for <unit> below "all" | |
58 | ## | |
59 | ## Look for "Coverage edit", below. | |
60 | ## Remember to use "gmake" instead of "make" when testing. | |
61 | ||
62 | ## Selectively turn on coverage units needed | |
63 | ## Coverage edit (1) | |
64 | EXCLUDED_UNITS := ilu_peu | |
65 | EXCLUDED_UNITS += | |
66 | ||
67 | COV_UNITS := | |
68 | VERA_DEFS ?= | |
69 | ||
70 | ## When top level coverage objects are built, they update <unit>_built | |
71 | ## target file. | |
72 | ## These are used to decide if $(SYS)_top.vro needs to be recompiled | |
73 | COV_BUILT := $(COV_UNITS:%=$(VERA_LIBDIR)/%_built) | |
74 | ||
75 | ifdef ILU_PEU_COVERAGE | |
76 | COV_UNITS += ilu_peu | |
77 | VERA_DEFS += -DILU_PEU_COVERAGE | |
78 | endif | |
79 | ||
80 | ##### zeroin manager | |
81 | ifdef NO_0INMGR | |
82 | VERA_DEFS += -DNO_0INMGR | |
83 | endif | |
84 | ||
85 | #### only compile these files if NO_0INMGR switch is not present | |
86 | zeroin_src := | |
87 | zeroin_define_src := | |
88 | ifndef NO_0INMGR | |
89 | zeroin_define_src := $(VERA_LIBDIR)/ZeroInDefines.vri | |
90 | zeroin_src := $(common_dir)/classes/ZeroInManager.vr | |
91 | endif | |
92 | #AC: | |
93 | #AC: VERA_VRH ?= vera -cmp -I . -max_error 5 -q $(VERA_DEFS) -H | |
94 | #AC: VERA_VRO ?= vera -cmp -I . -max_error 5 -q $(VERA_DEFS) | |
95 | #AC: | |
96 | #AC: COMMON_DIR := ${DV_ROOT}/verif/env/common/vera/ | |
97 | #AC: | |
98 | #AC: PORT_SRC := include/ilu_peu_ports_binds.vrhpal | |
99 | #AC: MONPORT_SRC := include/ilu_peumon_ports_binds.vrhpal | |
100 | #AC: IF_SRC := include/ilu_peu.if.vrhpal | |
101 | #AC: MONIF_SRC := include/ilu_peumon.if.vrhpal | |
102 | #AC: PORT_DEST := $(VERA_LIBDIR)/ilu_peu_ports_binds.vrh | |
103 | #AC: IF_DEST := $(VERA_LIBDIR)/ilu_peu.if.vrh | |
104 | #AC: MONPORT_DEST := $(VERA_LIBDIR)/ilu_peumon_ports_binds.vrh | |
105 | #AC: MONIF_DEST := $(VERA_LIBDIR)/ilu_peumon.if.vrh | |
106 | ||
107 | # ???VERA_INCLUDE := $(wildcard include/*vcon*) | |
108 | # ???VERA_INCLUDE += $(wildcard include/*.vrh) | |
109 | # ???VERA_INCLUDE += $(wildcard include/*.vri) | |
110 | # ???VERA_INCLUDE := $(subst include,$(VERA_LIBDIR),$(VERA_INCLUDE)) | |
111 | ||
112 | # ??? PACKETS := packets/ilu_peu_err_mask.vr | |
113 | # ??? PACKETS += packets/ilu_peu_basic_packet.vr | |
114 | # ??? PACKETS += $(wildcard packets/*.vr) | |
115 | # ??? PACKETS := $(subst packets,$(VERA_LIBDIR),$(PACKETS)) | |
116 | # ??? PACKETS_VRH := $(patsubst %.vr,%.vrh,$(PACKETS)) | |
117 | # ??? PACKETS_VRO := $(patsubst %.vr,%.vro,$(PACKETS)) | |
118 | # ??? xxx | |
119 | # ??? STUBS := $(wildcard stubs/*.vr) | |
120 | # ??? STUBS := $(subst stubs,$(VERA_LIBDIR),$(STUBS)) | |
121 | # ??? STUBS_VRH := $(patsubst %.vr,%.vrh,$(STUBS)) | |
122 | # ??? STUBS_VRO := $(patsubst %.vr,%.vro,$(STUBS)) | |
123 | # ??? | |
124 | # ??? MONITORS := $(wildcard monitors/*.vr) | |
125 | # ??? MONITORS := $(subst monitors,$(VERA_LIBDIR),$(MONITORS)) | |
126 | # ??? MONITORS_VRH := $(patsubst %.vr,%.vrh,$(MONITORS)) | |
127 | # ??? MONITORS_VRO := $(patsubst %.vr,%.vro,$(MONITORS)) | |
128 | # ??? | |
129 | # ??? MISC := | |
130 | # ??? | |
131 | # ??? COMMON := std_display_class.vr | |
132 | # ??? COMMON2 := ZeroInManager.vr | |
133 | # ??? | |
134 | # ??? COMMON_INCLUDE := $(wildcard $(COMMON_DIR)include/seeding.vri) | |
135 | # ??? COMMON_INCLUDE += $(wildcard $(COMMON_DIR)include/std_display_defines.vri) | |
136 | # ??? COMMON_INCLUDE += $(wildcard $(COMMON_DIR)include/plusArgMacros.vri) | |
137 | # ??? COMMON_INCLUDE += $(wildcard $(COMMON_DIR)include/ZeroInDefines.vri) | |
138 | # ??? COMMON_INCLUDE += $(wildcard $(COMMON_DIR)classes/*.vrh) | |
139 | # ??? COMMON_INCLUDE += $(wildcard $(COMMON_DIR)classes/*.vr) | |
140 | # ??? COMMON_INCLUDE += $(wildcard $(COMMON_DIR)*.vr*) | |
141 | # ??? COMMON_INCLUDE := $(subst $(COMMON_DIR)include,$(VERA_LIBDIR),$(COMMON_INCLUDE)) | |
142 | # ??? COMMON_VRH := $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(COMMON)) | |
143 | # ??? ifndef NO_0INMGR | |
144 | # ??? COMMON_VRH += $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(COMMON2)) | |
145 | # ??? endif | |
146 | # ??? COMMON_VRO := $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(COMMON)) | |
147 | # ??? ifndef NO_0INMGR | |
148 | # ??? COMMON_VRO += $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(COMMON2)) | |
149 | # ??? endif | |
150 | # ??? | |
151 | # ??? MISC_VRH := $(patsubst %.vr,$(VERA_LIBDIR)/%.vrh,$(MISC)) | |
152 | # ??? MISC_VRO := $(patsubst %.vr,$(VERA_LIBDIR)/%.vro,$(MISC)) | |
153 | ||
154 | ||
155 | ################################################################################ | |
156 | # all | |
157 | ################################################################################ | |
158 | ||
159 | # ??? all: dir $(COMMON_INCLUDE) $(COMMON_VRH) $(COMMON_VRO) \ | |
160 | # ??? $(PORT_DEST) $(IF_DEST) $(MONPORT_DEST) $(MONIF_DEST) $(COV_UNITS) $(VERA_INCLUDE) \ | |
161 | # ??? $(PACKETS_VRH) $(PACKETS_VRO) \ | |
162 | # ??? $(STUBS_VRH) $(STUBS_VRO)\ | |
163 | # ??? $(MONITORS_VRH) $(MONITORS_VRO)\ | |
164 | # ??? $(VERA_LIBDIR)/diag.vri \ | |
165 | # ??? $(MISC_VRH) $(MISC_VRO) \ | |
166 | # ??? $(VERA_LIBDIR)/ilu_peu_top.vro | |
167 | # ??? | |
168 | # ??? dir: | |
169 | # ??? if (test ! -d $(VERA_LIBDIR)) then mkdir $(VERA_LIBDIR) ; fi | |
170 | ||
171 | #AC: $(PORT_DEST): $(PORT_SRC) | |
172 | #AC: pal -r $< > $@ | |
173 | #AC: | |
174 | #AC: $(IF_DEST): $(IF_SRC) | |
175 | #AC: pal -r $< > $@ | |
176 | #AC: | |
177 | #AC: $(MONPORT_DEST): $(MONPORT_SRC) | |
178 | #AC: pal -r $< > $@ | |
179 | #AC: | |
180 | #AC: $(MONIF_DEST): $(MONIF_SRC) | |
181 | #AC: pal -r $< > $@ | |
182 | ||
183 | ||
184 | ################################################################################ | |
185 | # Extra dependences for special rebuilds | |
186 | ################################################################################ | |
187 | # ??? $(VERA_LIBDIR)/$(SYS)_top.vro: $(COV_BUILT) $(VERA_LIBDIR)/units_used | |
188 | # ??? $(VERA_LIBDIR)/$(SYS)_top.vrh: $(VERA_LIBDIR)/units_used | |
189 | # ??? $(VERA_LIBDIR)/units_used: FORCE | |
190 | # ??? test -f $@ || touch $@ | |
191 | # ??? $(ECHO) $(COV_UNITS) > /tmp/units_used.$(PID) | |
192 | # ??? diff /tmp/units_used.$(PID) $@ > /dev/null || \ | |
193 | # ??? mv /tmp/units_used.$(PID) $@ | |
194 | # ??? rm -f /tmp/units_used.$(PID) | |
195 | # ??? $(ECHO) $(EXCLUDED_UNITS) > $(VERA_LIBDIR)/excluded_cov_units | |
196 | # ??? | |
197 | ||
198 | ||
199 | ||
200 | #---------------------------------------------------------------------------- | |
201 | # The following variables list the xtr's and Vera libraries required for | |
202 | # this test environment. | |
203 | # The libs will come from the Fire environment so that IOS and fullchip can | |
204 | # use the same libs. The xtr's are from the fnx environment | |
205 | #---------------------------------------------------------------------------- | |
206 | lib_list = report CTSupportClasses CTVerifFmwork \ | |
207 | CSRFmwork XactorComponents | |
208 | #lib_list = report CTSupportClasses CTVerifFmwork \ | |
209 | # CSRFmwork XactorComponents FNXPCIEXactor | |
210 | ||
211 | ifndef FC_NO_PEU_T2 | |
212 | xtr_list = FNXPCIEXactor DMUXtr CCCXactor denali_root_monitor | |
213 | else | |
214 | xtr_list = FNXPCIEXactor DMUXtr CCCXactor | |
215 | endif | |
216 | ||
217 | # switch to concatenate testbench vera | |
218 | testbench_combine_vera = 1 | |
219 | ||
220 | #---------------------------------------------------------------------------- | |
221 | # Use `testbench_vera_interface_deps' to define the dependencies for the | |
222 | # be re-built. | |
223 | #---------------------------------------------------------------------------- | |
224 | # UD : To make ilu_peu and FC SAT use the same Makefile. | |
225 | #---------------------------------------------------------------------------- | |
226 | ifdef N2_FC | |
227 | testbench_vera_interface_deps = FIRE_local_access_define.vri \ | |
228 | top_defines.vri \ | |
229 | ilupeu_defines.vri \ | |
230 | ilupeu_report_macros.vri \ | |
231 | dmu.vri | |
232 | else | |
233 | testbench_vera_interface_deps = FIRE_local_access_define.vri \ | |
234 | ilu_peu.bind.vri\ | |
235 | ilu_peu.if.vri \ | |
236 | top_defines.vri \ | |
237 | verilog_tasks.vri \ | |
238 | ilupeu_defines.vri \ | |
239 | ilupeu_report_macros.vri \ | |
240 | dmu.vri | |
241 | endif | |
242 | ||
243 | #---------------------------------------------------------------------------- | |
244 | # Variables for Setting Print Level -- runsim tests/directed/foo printlevel=DEBUG_3 | |
245 | #---------------------------------------------------------------------------- | |
246 | printlevel = DEBUG_3 | |
247 | print_control = +report_global_print_threshold=RPRT_$(printlevel) | |
248 | ||
249 | #---------------------------------------------------------------------------- | |
250 | # Use `testbench_vera_src' to define the Vera source files used | |
251 | # to build your environment. This is intended to list locally created | |
252 | # sources (in this directory and its sub-directories) only | |
253 | #---------------------------------------------------------------------------- | |
254 | reggie_collection = csr/CSRCollection.vr | |
255 | reggie_conf = csr/ilupeu_reggie_control.pl | |
256 | #reggie_input_dir = $(asic_design_csrtool_dir)/output/vera | |
257 | ||
258 | #---------------------------------------------------------------------------- | |
259 | # UD : To make ilu_peu and FC SAT use the same Makefile. | |
260 | # Make a list of files used only by FC. conditionally include in testbench_vera_src | |
261 | #---------------------------------------------------------------------------- | |
262 | ilu_peu_only_src := | |
263 | ||
264 | ifdef N2_FC | |
265 | N2fc_files = N2fc/N2fcPEUparams.vr \ | |
266 | N2fc/N2fcXactionProbe.vr \ | |
267 | N2fc/N2fcPioCfgIORdStr.vr \ | |
268 | N2fc/N2fcPioCfgIOWrStr.vr \ | |
269 | N2fc/N2fcPioMRdStr.vr \ | |
270 | N2fc/N2fcPioMWrStr.vr \ | |
271 | N2fc/N2fcIntxStr.vr \ | |
272 | N2fc/N2fcilupeuIngressDmaWrStr.vr \ | |
273 | N2fc/N2fcilupeuIngressDmaRdStr.vr \ | |
274 | N2fc/N2fcDmaCfgIORwStr.vr \ | |
275 | N2fc/N2fcDMAPEUCtx.vr \ | |
276 | N2fc/N2fcCtx.vr | |
277 | ||
278 | strategy_files = N2fc/N2fcIommuMgr.vr \ | |
279 | strategy/ilupeuScenario.vr \ | |
280 | strategy/ilupeuStrategyBase.vr \ | |
281 | N2fc/N2fcInitStrategy.vr \ | |
282 | strategy/ilupeuLinkTrainingStrategy.vr \ | |
283 | strategy/ilupeuTlpStrategyBase.vr \ | |
284 | strategy/ilupeuIngressTlpStrategy.vr \ | |
285 | strategy/ilupeuEgressTlpStrategy.vr | |
286 | ||
287 | else | |
288 | ||
289 | strategy_files = strategy/ilupeuScenario.vr \ | |
290 | strategy/ilupeuStrategyBase.vr \ | |
291 | strategy/ilupeuInitStrategy.vr \ | |
292 | strategy/ilupeuLinkTrainingStrategy.vr \ | |
293 | strategy/ilupeuTlpStrategyBase.vr \ | |
294 | strategy/ilupeuIngressTlpStrategy.vr \ | |
295 | strategy/ilupeuEgressTlpStrategy.vr | |
296 | endif | |
297 | ||
298 | context_files = context/ilupeuContextBase.vr \ | |
299 | context/ilupeuIngressContext.vr \ | |
300 | context/ilupeuEgressContext.vr | |
301 | ||
302 | N2ctx_files = N2ctx/N2PEUCtxBase.vr \ | |
303 | N2ctx/N2DMAPEUCtx.vr \ | |
304 | N2ctx/N2PIOPEUCtx.vr \ | |
305 | N2ctx/N2ErrTlpPEUCtx.vr \ | |
306 | N2ctx/N2ExceptionPEUCtx.vr | |
307 | ||
308 | N2str_files = N2str/ilupeuStrBase.vr \ | |
309 | N2str/ilupeuBootPEUStr.vr \ | |
310 | N2str/ilupeuIngressDmaWrStr.vr \ | |
311 | N2str/ilupeuIngressDmaRdStr.vr \ | |
312 | N2str/ilupeuIngressMsgStr.vr \ | |
313 | N2str/ilupeuPioBaseStr.vr \ | |
314 | N2str/ilupeuPioCfgIORdStr.vr \ | |
315 | N2str/ilupeuPioCfgIOWrStr.vr \ | |
316 | N2str/ilupeuPioMRdStr.vr \ | |
317 | N2str/ilupeuPioMWrStr.vr \ | |
318 | N2str/ilupeuErrChkPEUStr.vr \ | |
319 | N2str/ilupeuMalReqPEUStr.vr \ | |
320 | N2str/ilupeuMalCplPEUStr.vr \ | |
321 | N2str/ilupeuErrCplPEUStr.vr \ | |
322 | N2str/ilupeuDmaURBasePEUStr.vr \ | |
323 | N2str/ilupeuDmaURCfgIORdWrPEUStr.vr \ | |
324 | N2str/ilupeuDmaURMsgDPEUStr.vr \ | |
325 | N2str/ilupeuDmaURMsgPEUStr.vr \ | |
326 | N2str/ilupeuDmaURRdLkPEUStr.vr \ | |
327 | N2str/ilupeuDmaPoisonPEUStr.vr \ | |
328 | N2str/ilupeuEdbErrPEUStr.vr \ | |
329 | N2str/ilupeuEhbErrPEUStr.vr \ | |
330 | N2str/ilupeuIhbErrPEUStr.vr \ | |
331 | N2str/ilupeuLinkErrPEUStr.vr \ | |
332 | N2str/ilupeuPEUErrPEUStr.vr \ | |
333 | N2str/ilupeuTimeOutPEUStr.vr \ | |
334 | N2str/ilupeuInErrPEUStr.vr \ | |
335 | N2str/ilupeuReplayPEUStr.vr \ | |
336 | N2str/ilupeuIngressRcvrErr.vr \ | |
337 | N2str/ilupeuIngressDLLPErr.vr \ | |
338 | N2str/ilupeuIngressAckNakErr.vr \ | |
339 | N2str/ilupeuIngressduplicateSeqNmbrReq.vr \ | |
340 | N2str/ilupeuIngressFCPErr.vr \ | |
341 | N2str/ilupeuIngressnullTlpErr.vr \ | |
342 | N2str/ilupeuEgrParErr.vr \ | |
343 | N2str/ilupeuIngParErr.vr | |
344 | ||
345 | testbench_vera_src = ilupeuGlobals.vr \ | |
346 | $(reggie_collection) \ | |
347 | csr/ilupeuCSR.vr \ | |
348 | ilupeuPodClass.vr \ | |
349 | N2fc/N2fcPiuShadowRegs.vr \ | |
350 | $(strategy_files) \ | |
351 | $(context_files) \ | |
352 | N2env/PEUTestEnv.vr \ | |
353 | $(N2str_files) \ | |
354 | $(N2ctx_files) \ | |
355 | $(N2fc_files) \ | |
356 | N2Test/N2PEUTestBase.vr | |
357 | ||
358 | ifndef FC_NO_PEU_T2 | |
359 | denali_vera_dir = $(denali_dir)/ddvapi/vera | |
360 | endif | |
361 | ||
362 | #---------------------------------------------------------------------------- | |
363 | # Use `testbench_vera_cmp_switches' to pass arguments to the the Vera source file | |
364 | # compilation command line. | |
365 | #---------------------------------------------------------------------------- | |
366 | # UD : To make ilu_peu and FC SAT use the same Makefile. | |
367 | #---------------------------------------------------------------------------- | |
368 | ifdef N2_FC | |
369 | ifdef GATESIM | |
370 | testbench_vera_cmp_switches = -g -max_error 5 -DN2_FC -DGATESIM | |
371 | else | |
372 | testbench_vera_cmp_switches = -g -max_error 5 -DN2_FC | |
373 | endif | |
374 | else | |
375 | ifdef N2_IOS | |
376 | testbench_vera_cmp_switches = -g -max_error 5 -DN2_IOS | |
377 | else | |
378 | testbench_vera_cmp_switches = -g -max_error 5 | |
379 | endif | |
380 | endif | |
381 | #testbench_vera_cmp_switches = -q -g -max_error 5 | |
382 | #testbench_vera_cmp_switches = -g | |
383 | testbench_vera_incl_dir = csrtool | |
384 | ||
385 | fnx_lib_dir = $(DV_ROOT)/verif/env/fnx/vlib | |
386 | perl_path = $(DV_ROOT)/tools/perl-5.8.0/bin/perl | |
387 | ||
388 | grp_tools_bin_dir = $(DV_ROOT)/verif/env/fnx/runsim/bin | |
389 | export make_lib_depends = $(perl_path) $(grp_tools_bin_dir)/make_lib_depends3.pl | |
390 | ||
391 | testbench_home_dir = $(shell pwd) | |
392 | ||
393 | depends = $(VERA_LIBDIR)/depends | |
394 | ||
395 | ||
396 | ifndef FC_NO_PEU_T2 | |
397 | #---------------------------------------------------------------------------- | |
398 | # Denali Environment Variables | |
399 | #---------------------------------------------------------------------------- | |
400 | ||
401 | # Use the .denalirc located in PEU TB home directory | |
402 | export DENALIRC = $(DV_ROOT)/verif/env/ilu_peu/.denalirc | |
403 | endif | |
404 | ||
405 | ################################################################################ | |
406 | # all | |
407 | ################################################################################ | |
408 | ||
409 | all: $(depends) | |
410 | $(MAKE) DEPEND=1 $(COV_UNITS) testbench | |
411 | #all: $(depends) | |
412 | # $(MAKE) DEPEND=1 testbench $(COV_UNITS) | |
413 | ||
414 | ||
415 | $(VERA_LIBDIR) : | |
416 | mkdir $(VERA_LIBDIR) | |
417 | ||
418 | ifneq ($(DEPEND),1) | |
419 | vlib_dirs_lib = $(addprefix $(fnx_lib_dir)/, $(lib_list)) | |
420 | vlib_dirs_xtr = $(addprefix $(fnx_lib_dir)/, $(xtr_list)) | |
421 | vlib_makefiles = $(addsuffix /GNUmakefile, $(vlib_dirs_lib) $(vlib_dirs_xtr)) | |
422 | ifndef FC_NO_PEU_T2 | |
423 | $(depends) : $(VERA_LIBDIR) $(vlib_makefiles) $(testbench_home_dir)/Makefile | |
424 | $(SPEW_START) | |
425 | $(make_lib_depends) \ | |
426 | $(addprefix -libn=, $(lib_list) $(xtr_list)) \ | |
427 | -current_dir=$(testbench_home_dir) \ | |
428 | -o $(depends) \ | |
429 | -VERA_LIBDIR=$(VERA_LIBDIR) | |
430 | $(SPEW_END) | |
431 | else | |
432 | $(depends) : $(VERA_LIBDIR) $(vlib_makefiles) $(testbench_home_dir)/Makefile | |
433 | $(SPEW_START) | |
434 | $(make_lib_depends) \ | |
435 | $(addprefix -libn=, $(lib_list) $(xtr_list)) \ | |
436 | -current_dir=$(testbench_home_dir) \ | |
437 | -o $(depends) \ | |
438 | -VERA_LIBDIR=$(VERA_LIBDIR) \ | |
439 | -no_peu | |
440 | $(SPEW_END) | |
441 | endif | |
442 | else | |
443 | include $(depends) | |
444 | endif | |
445 | ||
446 | ################################################################################ | |
447 | ### Coverage objects | |
448 | ################################################################################ | |
449 | COV_MAKE_CMD := $(MAKE) --no-print-directory -j $(p) | |
450 | ||
451 | ilu_peu: $(VERA_LIBDIR)/plusArgMacros.vri | |
452 | @$(ECHO) "" | |
453 | @$(ECHO) "[Building ilu_peu coverage" | |
454 | if (test -d $(CTOP)/ilu_peu) then \ | |
455 | ( cd $(CTOP)/ilu_peu; \ | |
456 | if (test -f Makefile) then $(COV_MAKE_CMD) ; fi ) \ | |
457 | fi | |
458 | @$(ECHO) "Done with ilu_peu coverage]" | |
459 | @$(ECHO) "" | |
460 | ||
461 | ||
462 | ||
463 | ## Coverage edit (2) | |
464 | ## Copy next three lines, paste above, edit <unit> and uncomment | |
465 | #<unit>: $(HDL_INCLUDE) | |
466 | # @$(ECHO) "" | |
467 | # @$(ECHO) "[Building <unit> coverage" | |
468 | # if (test -d $(CTOP)/<unit>) then \ | |
469 | # ( cd $(CTOP)/<unit>; \ | |
470 | # if (test -f Makefile) then $(COV_MAKE_CMD) ; fi ) \ | |
471 | # fi | |
472 | # @$(ECHO) "Done with <unit> coverage]" | |
473 | # @$(ECHO) "" | |
474 | ||
475 | ### End coverage related targets | |
476 | ||
477 | ############################################################################### | |
478 | # clean up everything, since all created files go into $(VERA_LIBDIR) | |
479 | ############################################################################### | |
480 | ||
481 | clean:: | |
482 | rm -f $(VERA_LIBDIR)/* | |
483 | rm -rf $(VERA_LIBDIR)/.* | |
484 | ||
485 | ||
486 | SPEW_START = @$(ECHO) "----------------- Building $(@F) -----------------" | |
487 | SPEW_END = @$(ECHO) "----------------- Done $(@F) ------------------\n" | |
488 | ||
489 | link = ln -sf | |
490 | #---------------------------------------------------------------- | |
491 | # VERA compile commands | |
492 | #---------------------------------------------------------------- | |
493 | common_vera_inc = $(DV_ROOT)/verif/env/common/vera/include | |
494 | ||
495 | vera = vera | |
496 | VERA_CMP = $(vera) -cmp -HCnu | |
497 | _inc_dirs = $(VERA_LIBDIR) | |
498 | ||
499 | _vera_cmp = $(VERA_CMP) $(testbench_vera_cmp_switches) $(VERA_DEFS) \ | |
500 | $(addprefix -I, $(_inc_dirs)) | |
501 | ||
502 | _vera_cmp_all = | |
503 | ||
504 | _vera_vri_deps = $(addprefix $(VERA_LIBDIR)/, $(testbench_vera_interface_deps)) | |
505 | ||
506 | ||
507 | #---------------------------------------------------------------------------- | |
508 | # Vera object modules specific to this module test environment. | |
509 | #---------------------------------------------------------------------------- | |
510 | testbench_separate_obj = $(addprefix $(VERA_LIBDIR), $(testbench_vera_src:.vr=.vro)) | |
511 | ||
512 | ifndef FC_NO_PEU_T2 | |
513 | testbench_combined_obj = $(VERA_LIBDIR)/Testbench.vro | |
514 | testbench_all_obj = $(if $(testbench_combine_vera),$(testbench_combined_obj),$(testbench_separate_obj)) | |
515 | else | |
516 | testbench_all_obj = $(if $(testbench_combine_vera),$(testbench_separate_obj)) | |
517 | endif | |
518 | ||
519 | testbench_file_list = $(VERA_LIBDIR)/$(SYS)_file.list | |
520 | ||
521 | .PHONY : testbench includes | |
522 | #---------------------------------------------------------------------------- | |
523 | # UD : To make ilu_peu and FC SAT use the same Makefile. | |
524 | #---------------------------------------------------------------------------- | |
525 | ifndef FC_NO_PEU_T2 | |
526 | ||
527 | ifdef N2_FC | |
528 | testbench : $(testbench_file_list) $(testbench_all_obj) \ | |
529 | $(VERA_LIBDIR)/report.a \ | |
530 | $(VERA_LIBDIR)/denali_pcie.so | |
531 | else | |
532 | ifdef N2_IOS | |
533 | testbench : $(testbench_file_list) $(testbench_all_obj) \ | |
534 | $(VERA_LIBDIR)/report.a \ | |
535 | $(VERA_LIBDIR)/denali_pcie.so | |
536 | else | |
537 | testbench : $(testbench_file_list) $(testbench_all_obj) \ | |
538 | $(VERA_LIBDIR)/$(SYS)_top.vro \ | |
539 | $(VERA_LIBDIR)/$(SYS)_top.vcon \ | |
540 | $(VERA_LIBDIR)/report.a \ | |
541 | $(VERA_LIBDIR)/denali_pcie.so | |
542 | endif | |
543 | endif | |
544 | ||
545 | else | |
546 | ||
547 | ifdef N2_FC | |
548 | testbench : $(testbench_file_list) $(testbench_all_obj) \ | |
549 | $(VERA_LIBDIR)/report.a | |
550 | else | |
551 | ifdef N2_IOS | |
552 | testbench : $(testbench_file_list) $(testbench_all_obj) \ | |
553 | $(VERA_LIBDIR)/report.a | |
554 | else | |
555 | testbench : $(testbench_file_list) $(testbench_all_obj) \ | |
556 | $(VERA_LIBDIR)/$(SYS)_top.vro \ | |
557 | $(VERA_LIBDIR)/$(SYS)_top.vcon \ | |
558 | $(VERA_LIBDIR)/report.a | |
559 | endif | |
560 | endif | |
561 | ||
562 | endif | |
563 | ||
564 | ifndef FC_NO_PEU_T2 | |
565 | $(testbench_all_obj) : $(VERA_LIBDIR)/Testbench.vr \ | |
566 | includes \ | |
567 | $(_vera_vri_deps) \ | |
568 | $(VERA_LIBDIR)/seeding.vri \ | |
569 | $(VERA_LIBDIR)/std_display_defines.vri \ | |
570 | $(zeroin_define_src) \ | |
571 | $(VERA_LIBDIR)/plusArgMacros.vri | |
572 | else | |
573 | $(testbench_all_obj) : includes \ | |
574 | $(_vera_vri_deps) \ | |
575 | $(VERA_LIBDIR)/seeding.vri \ | |
576 | $(VERA_LIBDIR)/std_display_defines.vri \ | |
577 | $(zeroin_define_src) \ | |
578 | $(VERA_LIBDIR)/plusArgMacros.vri | |
579 | endif | |
580 | $(SPEW_START) | |
581 | cd $(VERA_LIBDIR) ;\ | |
582 | $(VERA_CMP) $(testbench_vera_cmp_switches) $(VERA_DEFS) -I. -f $(testbench_file_list) -dep_check . | |
583 | $(SPEW_END) | |
584 | ||
585 | $(testbench_file_list) : $(depends) Makefile | |
586 | $(SPEW_START) | |
587 | $(RM) $@ ; \ | |
588 | echo "$(zeroin_src)" >> $@; \ | |
589 | echo "$(common_dir)/classes/std_display_class.vr" >> $@; \ | |
590 | for i in $(actual_libdir_list); do\ | |
591 | $(MAKE) -C $$i ; \ | |
592 | done; | |
593 | for i in $(actual_lib_list); do\ | |
594 | echo "-f $(VERA_LIBDIR)/$$i.list" >> $@; \ | |
595 | done; | |
596 | ifndef FC_NO_PEU_T2 | |
597 | ifeq ($(testbench_combine_vera),1) | |
598 | echo "$(VERA_LIBDIR)/Testbench.vr" >> $@ | |
599 | endif | |
600 | ifndef N2_FC | |
601 | ifndef N2_IOS | |
602 | echo "$(testbench_home_dir)/$(SYS)_top.vr" >> $@ | |
603 | endif | |
604 | endif | |
605 | else | |
606 | for i in $(testbench_vera_src); do \ | |
607 | echo "$(testbench_home_dir)/$$i" >> $@; \ | |
608 | done | |
609 | endif | |
610 | $(SPEW_END) | |
611 | ||
612 | $(VERA_LIBDIR)/Testbench.vr: $(filter-out $(SYS)_top.vr, $(testbench_vera_src)) | |
613 | $(RM) $@ | |
614 | for i in $^; do \ | |
615 | echo "#1 \"$(testbench_home_dir)/$$i\"" >> $@; \ | |
616 | cat $$i >> $@; \ | |
617 | done | |
618 | includes: $(testbench_vera_incl_dir) | |
619 | -for i in $^; do \ | |
620 | $(link) $(testbench_home_dir)/$$i/*.vri $(VERA_LIBDIR)/ ; \ | |
621 | done | |
622 | -$(link) $(testbench_home_dir)/include/FIRE_local_access_define.vri $(VERA_LIBDIR)/ | |
623 | -$(link) $(testbench_home_dir)/include/dmu.vri $(VERA_LIBDIR)/ | |
624 | -$(link) $(testbench_home_dir)/include/ilupeuScenarioDefines.vri $(VERA_LIBDIR)/ | |
625 | -$(link) $(testbench_home_dir)/include/ilupeu_defines.vri $(VERA_LIBDIR)/ | |
626 | -$(link) $(testbench_home_dir)/include/ilupeu_report_macros.vri $(VERA_LIBDIR)/ | |
627 | -$(link) $(testbench_home_dir)/include/top_defines.vri $(VERA_LIBDIR)/ | |
628 | -$(link) $(testbench_home_dir)/include/ilu_peu.bind.vri $(VERA_LIBDIR)/ | |
629 | -$(link) $(testbench_home_dir)/include/ilu_peu.if.vri $(VERA_LIBDIR)/ | |
630 | ifdef N2_FC | |
631 | ifndef FC_NO_PEU_T2 | |
632 | -$(link) $(testbench_home_dir)/../../fc/vera/include/peu_verilog_tasks.vri $(VERA_LIBDIR)/ | |
633 | endif | |
634 | else | |
635 | -$(link) $(testbench_home_dir)/include/peu_verilog_tasks.vri $(VERA_LIBDIR)/ | |
636 | -$(link) $(testbench_home_dir)/include/verilog_tasks.vri $(VERA_LIBDIR)/ | |
637 | endif | |
638 | ||
639 | ||
640 | # create .vcon file that sims needs to create the .proj file | |
641 | ||
642 | .PRECIOUS : $(testbench_vcon) | |
643 | $(testbench_vcon) : $(_vera_vri_deps) $(testbench_vcon:.vcon=.vr) | |
644 | $(SPEW_START) | |
645 | @$(ECHO) " --> Not rebuilding .vcon file since it requires hand edits. <--" | |
646 | #$(RM) $@ | |
647 | #$(vera) -cmp -verilog -vcon $(testbench_vera_cmp_switches) $(addprefix -I, $(_inc_dirs)) $(@:.vcon=.vr) $(@D) | |
648 | $(SPEW_END) | |
649 | ||
650 | $(VERA_LIBDIR)/$(testbench_vcon) : $(testbench_vcon) | |
651 | cp $< $@ | |
652 | ||
653 | common_vera_inc = $(DV_ROOT)/verif/env/common/vera/include | |
654 | ||
655 | $(VERA_LIBDIR)/%.vri : $(common_vera_inc)/%.vri | |
656 | $(link) $< $(@D)/ | |
657 | ||
658 | $(VERA_LIBDIR)/%.vri : include/%.vri | |
659 | $(link) $(testbench_home_dir)/$< $(@D)/ | |
660 | ||
661 | $(VERA_LIBDIR)/%.vri : csr/%.vri | |
662 | $(link) $(testbench_home_dir)/$< $(@D)/ | |
663 | ||
664 | # Add extra dependency for testbench.vro to make sure it's done | |
665 | # after the vshell generation. No rule here - that's still picked up | |
666 | # from the generic %.vro rule. | |
667 | $(testbench_vshell:.vshell=.vro) : $(testbench_vshell) | |
668 | ||
669 | $(VERA_LIBDIR)/%.vro : %.vr | |
670 | $(SPEW_START) | |
671 | $(RM) $@ | |
672 | $(_vera_cmp) $< $(VERA_LIBDIR) | |
673 | $(SPEW_END) | |
674 | ||
675 | ||
676 | #---------------------------------------------------------------- | |
677 | # Run archie and reggie | |
678 | #---------------------------------------------------------------- | |
679 | # - Can't find fnx reggie directory | |
680 | reggie_dir = $(DV_ROOT)/verif/env/fire/runsim/reggie | |
681 | archie_dir = $(DV_ROOT)/verif/env/fire/runsim/bin | |
682 | generated_csr_test_dir = $(DV_ROOT)/verif/diag/vera/ilu_peu/src/generated_csr | |
683 | ||
684 | archie : csr/ilupeu_archie_conf.pl $(generated_csr_test_dir)/timestamp | |
685 | ||
686 | $(generated_csr_test_dir)/timestamp: | |
687 | $(SPEW_START) | |
688 | $(reggie_dir)/archie.pl \ | |
689 | -v csrtool \ | |
690 | -c csr/ilupeu_archie_conf.pl \ | |
691 | -r csr/ilupeu_reggie_conf.pl \ | |
692 | -b csr/ilupeu_archie_boilerplate.vr \ | |
693 | -t $(generated_csr_test_dir) \ | |
694 | -d $(generated_csr_test_dir) | |
695 | cd $(generated_csr_test_dir) ; \ | |
696 | $(archie_dir)/remove_access_methods.pl | |
697 | touch $(generated_csr_test_dir)/timestamp | |
698 | $(SPEW_END) | |
699 | ||
700 | csr/CSRCollection.vr : | |
701 | $(SPEW_START) | |
702 | $(reggie_dir)/reggie.pl \ | |
703 | -d csrtool \ | |
704 | -c csr/ilupeu_reggie_conf.pl \ | |
705 | -i ./include \ | |
706 | -o csr/CSRCollection.vr | |
707 | $(SPEW_END) | |
708 | ||
709 | #---------------------------------------------------------------- | |
710 | # make report.a | |
711 | #---------------------------------------------------------------- | |
712 | $(VERA_LIBDIR)/report.a: | |
713 | $(SPEW_START) | |
714 | $(MAKE) -C $(DV_ROOT)/verif/env/fnx/clib/report \ | |
715 | VERA_LIBDIR=$(VERA_LIBDIR) | |
716 | $(SPEW_END) | |
717 | ||
718 | ifndef FC_NO_PEU_T2 | |
719 | #---------------------------------------------------------------- | |
720 | # make denali_pcie.o | |
721 | #---------------------------------------------------------------- | |
722 | $(VERA_LIBDIR)/denali_pcie.so: | |
723 | $(SPEW_START) | |
724 | $(MAKE) -C $(DV_ROOT)/verif/env/fnx/clib/DenaliPCIE \ | |
725 | VERA_LIBDIR=$(VERA_LIBDIR) | |
726 | $(SPEW_END) | |
727 | endif | |
728 | #---------------------------------------------------------------- | |
729 | # --- the end --- | |
730 | #---------------------------------------------------------------- |