Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / verif / env / ilu_peu / vera / Makefile
CommitLineData
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################################################################################
18common_dir_classes = $(DV_ROOT)/verif/env/common/vera/classes
19common_dir = $(DV_ROOT)/verif/env/common/vera
20
21#----------------------------------------------------------------------------
22# UD : To make ilu_peu and FC SAT use the same Makefile.
23#----------------------------------------------------------------------------
24ifdef N2_FC
25SYS := fc
26else
27SYS := ilu_peu
28endif
29
30ECHO := echo
31PID := $(shell echo $$$$) ## :-). Just get a random number
32
33.SUFFIXES:
34
35VERA_LIBDIR ?= vera/lib
36
37ifdef N2_IOS
38testbench_vshell = tb_top.vshell
39else
40testbench_vshell = $(SYS)_top.vshell
41endif
42testbench_vcon = $(SYS)_top.vcon
43
44
45#----------------------------------------------------------------------------
46# Coverage related setup
47#----------------------------------------------------------------------------
48
49
50## Coverage top level directory
51CTOP := ${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)
64EXCLUDED_UNITS := ilu_peu
65EXCLUDED_UNITS +=
66
67COV_UNITS :=
68VERA_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
73COV_BUILT := $(COV_UNITS:%=$(VERA_LIBDIR)/%_built)
74
75ifdef ILU_PEU_COVERAGE
76COV_UNITS += ilu_peu
77VERA_DEFS += -DILU_PEU_COVERAGE
78endif
79
80##### zeroin manager
81ifdef NO_0INMGR
82VERA_DEFS += -DNO_0INMGR
83endif
84
85#### only compile these files if NO_0INMGR switch is not present
86zeroin_src :=
87zeroin_define_src :=
88ifndef NO_0INMGR
89zeroin_define_src := $(VERA_LIBDIR)/ZeroInDefines.vri
90zeroin_src := $(common_dir)/classes/ZeroInManager.vr
91endif
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#----------------------------------------------------------------------------
206lib_list = report CTSupportClasses CTVerifFmwork \
207 CSRFmwork XactorComponents
208#lib_list = report CTSupportClasses CTVerifFmwork \
209# CSRFmwork XactorComponents FNXPCIEXactor
210
211ifndef FC_NO_PEU_T2
212xtr_list = FNXPCIEXactor DMUXtr CCCXactor denali_root_monitor
213else
214xtr_list = FNXPCIEXactor DMUXtr CCCXactor
215endif
216
217# switch to concatenate testbench vera
218testbench_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#----------------------------------------------------------------------------
226ifdef N2_FC
227testbench_vera_interface_deps = FIRE_local_access_define.vri \
228 top_defines.vri \
229 ilupeu_defines.vri \
230 ilupeu_report_macros.vri \
231 dmu.vri
232else
233testbench_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
241endif
242
243#----------------------------------------------------------------------------
244# Variables for Setting Print Level -- runsim tests/directed/foo printlevel=DEBUG_3
245#----------------------------------------------------------------------------
246printlevel = DEBUG_3
247print_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#----------------------------------------------------------------------------
254reggie_collection = csr/CSRCollection.vr
255reggie_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#----------------------------------------------------------------------------
262ilu_peu_only_src :=
263
264ifdef N2_FC
265N2fc_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
278strategy_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
287else
288
289strategy_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
296endif
297
298context_files = context/ilupeuContextBase.vr \
299 context/ilupeuIngressContext.vr \
300 context/ilupeuEgressContext.vr
301
302N2ctx_files = N2ctx/N2PEUCtxBase.vr \
303 N2ctx/N2DMAPEUCtx.vr \
304 N2ctx/N2PIOPEUCtx.vr \
305 N2ctx/N2ErrTlpPEUCtx.vr \
306 N2ctx/N2ExceptionPEUCtx.vr
307
308N2str_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
345testbench_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
358ifndef FC_NO_PEU_T2
359denali_vera_dir = $(denali_dir)/ddvapi/vera
360endif
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#----------------------------------------------------------------------------
368ifdef N2_FC
369ifdef GATESIM
370testbench_vera_cmp_switches = -g -max_error 5 -DN2_FC -DGATESIM
371else
372testbench_vera_cmp_switches = -g -max_error 5 -DN2_FC
373endif
374else
375ifdef N2_IOS
376testbench_vera_cmp_switches = -g -max_error 5 -DN2_IOS
377else
378testbench_vera_cmp_switches = -g -max_error 5
379endif
380endif
381#testbench_vera_cmp_switches = -q -g -max_error 5
382#testbench_vera_cmp_switches = -g
383testbench_vera_incl_dir = csrtool
384
385fnx_lib_dir = $(DV_ROOT)/verif/env/fnx/vlib
386perl_path = $(DV_ROOT)/tools/perl-5.8.0/bin/perl
387
388grp_tools_bin_dir = $(DV_ROOT)/verif/env/fnx/runsim/bin
389export make_lib_depends = $(perl_path) $(grp_tools_bin_dir)/make_lib_depends3.pl
390
391testbench_home_dir = $(shell pwd)
392
393depends = $(VERA_LIBDIR)/depends
394
395
396ifndef FC_NO_PEU_T2
397#----------------------------------------------------------------------------
398# Denali Environment Variables
399#----------------------------------------------------------------------------
400
401# Use the .denalirc located in PEU TB home directory
402export DENALIRC = $(DV_ROOT)/verif/env/ilu_peu/.denalirc
403endif
404
405################################################################################
406# all
407################################################################################
408
409all: $(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
418ifneq ($(DEPEND),1)
419vlib_dirs_lib = $(addprefix $(fnx_lib_dir)/, $(lib_list))
420vlib_dirs_xtr = $(addprefix $(fnx_lib_dir)/, $(xtr_list))
421vlib_makefiles = $(addsuffix /GNUmakefile, $(vlib_dirs_lib) $(vlib_dirs_xtr))
422ifndef 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)
431else
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)
441endif
442else
443include $(depends)
444endif
445
446################################################################################
447### Coverage objects
448################################################################################
449COV_MAKE_CMD := $(MAKE) --no-print-directory -j $(p)
450
451ilu_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
481clean::
482 rm -f $(VERA_LIBDIR)/*
483 rm -rf $(VERA_LIBDIR)/.*
484
485
486SPEW_START = @$(ECHO) "----------------- Building $(@F) -----------------"
487SPEW_END = @$(ECHO) "----------------- Done $(@F) ------------------\n"
488
489link = ln -sf
490#----------------------------------------------------------------
491# VERA compile commands
492#----------------------------------------------------------------
493common_vera_inc = $(DV_ROOT)/verif/env/common/vera/include
494
495vera = vera
496VERA_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#----------------------------------------------------------------------------
510testbench_separate_obj = $(addprefix $(VERA_LIBDIR), $(testbench_vera_src:.vr=.vro))
511
512ifndef FC_NO_PEU_T2
513testbench_combined_obj = $(VERA_LIBDIR)/Testbench.vro
514testbench_all_obj = $(if $(testbench_combine_vera),$(testbench_combined_obj),$(testbench_separate_obj))
515else
516testbench_all_obj = $(if $(testbench_combine_vera),$(testbench_separate_obj))
517endif
518
519testbench_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#----------------------------------------------------------------------------
525ifndef FC_NO_PEU_T2
526
527ifdef N2_FC
528testbench : $(testbench_file_list) $(testbench_all_obj) \
529 $(VERA_LIBDIR)/report.a \
530 $(VERA_LIBDIR)/denali_pcie.so
531else
532ifdef N2_IOS
533testbench : $(testbench_file_list) $(testbench_all_obj) \
534 $(VERA_LIBDIR)/report.a \
535 $(VERA_LIBDIR)/denali_pcie.so
536else
537testbench : $(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
542endif
543endif
544
545else
546
547ifdef N2_FC
548testbench : $(testbench_file_list) $(testbench_all_obj) \
549 $(VERA_LIBDIR)/report.a
550else
551ifdef N2_IOS
552testbench : $(testbench_file_list) $(testbench_all_obj) \
553 $(VERA_LIBDIR)/report.a
554else
555testbench : $(testbench_file_list) $(testbench_all_obj) \
556 $(VERA_LIBDIR)/$(SYS)_top.vro \
557 $(VERA_LIBDIR)/$(SYS)_top.vcon \
558 $(VERA_LIBDIR)/report.a
559endif
560endif
561
562endif
563
564ifndef 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
572else
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
579endif
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;
596ifndef FC_NO_PEU_T2
597ifeq ($(testbench_combine_vera),1)
598 echo "$(VERA_LIBDIR)/Testbench.vr" >> $@
599endif
600ifndef N2_FC
601ifndef N2_IOS
602 echo "$(testbench_home_dir)/$(SYS)_top.vr" >> $@
603endif
604endif
605else
606 for i in $(testbench_vera_src); do \
607 echo "$(testbench_home_dir)/$$i" >> $@; \
608 done
609endif
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
618includes: $(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)/
630ifdef N2_FC
631ifndef FC_NO_PEU_T2
632 -$(link) $(testbench_home_dir)/../../fc/vera/include/peu_verilog_tasks.vri $(VERA_LIBDIR)/
633endif
634else
635 -$(link) $(testbench_home_dir)/include/peu_verilog_tasks.vri $(VERA_LIBDIR)/
636 -$(link) $(testbench_home_dir)/include/verilog_tasks.vri $(VERA_LIBDIR)/
637endif
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
653common_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
680reggie_dir = $(DV_ROOT)/verif/env/fire/runsim/reggie
681archie_dir = $(DV_ROOT)/verif/env/fire/runsim/bin
682generated_csr_test_dir = $(DV_ROOT)/verif/diag/vera/ilu_peu/src/generated_csr
683
684archie : 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
700csr/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
718ifndef 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)
727endif
728#----------------------------------------------------------------
729# --- the end ---
730#----------------------------------------------------------------