Makefile
1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# make
# vcs setup
VCS_HOME ?= /ecad/vcs
VCS_NAME ?= vcs
VCS ?= $(VCS_HOME)/bin/$(VCS_NAME)
VIRSIMHOME = /ecad/vcs/virsimdir
VCD2VPD = $(VCS_HOME)/virsimdir/bin/vcd2vpd
SIMCDIR = c
SIMVDIR ?= .
# paths to vendor library;
XLIB = ../xilinx
MLIB = ../micron
# vcs options;
VCSOPTS = -l $(VCS_NAME).log \
-M -Mupdate \
-lc -V \
-y . \
-y ../dbx \
-y $(XLIB) \
+libext+.v \
+race=all \
-Mdir=$(SIMVDIR)/$(SIMCDIR) \
+notimingchecks \
+nospecify
# all vcs dirt;
VCSDIRT = \
$(SIMVDIR)/$(SIMCDIR) \
$(SIMVDIR)/simv* \
$(VCS_NAME).log \
$(SIMVDIR)/*dump \
$(SIMVDIR)/*.log \
$(SIMVDIR)/*.vpd \
$(SIMVDIR)/*.bck \
$(SIMVDIR)/race*
# default target is to build the behavioral simulator;
default all: simv
# clean directory;
clean: _always
rm -rf $(VCSDIRT)
# compile the behavioral simulator;
simv: vsim.v _always
$(VCS) $(VCSOPTS) \
+define+SEED=`date +%s` \
-o $(SIMVDIR)/$@ \
vsim.v $(XLIB)/glbl.v
sim: ./simv
./simv +vcs+lic+wait > vsim.log
$(VCD2VPD) verilog.dump vsim.vpd
# always dependency
_always: