-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcommon.mk
80 lines (64 loc) · 2.11 KB
/
common.mk
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
70
71
72
73
74
75
76
77
78
79
80
# SPDX-License-Identifier: Apache-2.0
TOPLEVEL_LANG = verilog
SIM ?= verilator
WAVES ?= 1
# Paths
CURDIR = $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
I3C_ROOT := $(abspath $(CURDIR)/../..)
CFGDIR :=
CONFIG :=
$(info From common.mk, CURDIR is $(CURDIR))
# Set pythonpath so that tests can access common modules
export PYTHONPATH := $(PYTHONPATH):$(CURDIR)/common
VERILOG_INCLUDE_DIRS= \
$(CALIPTRA_ROOT)/src/libs/rtl \
$(CALIPTRA_ROOT)/src/caliptra_prim/rtl \
$(I3C_ROOT)/src \
$(I3C_ROOT)/src/libs/axi
$(info VERILOG_SOURCES = $(VERILOG_SOURCES))
VERILOG_SOURCES := $(COMMON_SOURCES) $(VERILOG_SOURCES)
$(info VERILOG_SOURCES = $(VERILOG_SOURCES))
# Coverage reporting
COVERAGE_TYPE ?=
ifeq ("$(COVERAGE_TYPE)", "all")
VERILATOR_COVERAGE = --coverage
else ifeq ("$(COVERAGE_TYPE)", "branch")
VERILATOR_COVERAGE = --coverage-line
else ifeq ("$(COVERAGE_TYPE)", "toggle")
VERILATOR_COVERAGE = --coverage-toggle
else ifeq ("$(COVERAGE_TYPE)", "functional")
VERILATOR_COVERAGE = --coverage-user
else
VERILATOR_COVERAGE = ""
endif
# Enable processing of #delay statements
ifeq ($(SIM), verilator)
COMPILE_ARGS += --timing
COMPILE_ARGS += +define+DIGITAL_IO_I3C
COMPILE_ARGS += -Wall -Wno-fatal
COMPILE_ARGS += --x-assign unique --x-initial unique
EXTRA_ARGS += --trace --trace-structs
EXTRA_ARGS += $(VERILATOR_COVERAGE)
EXTRA_ARGS += -Wno-DECLFILENAME -Wno-TIMESCALEMOD
endif
ifeq ($(SIM), vcs)
COMPILE_ARGS += +libext+.sv +libext+.v
COMPILE_ARGS += +define+DIGITAL_IO_I3C
COMPILE_ARGS += $(foreach dir,$(VERILOG_INCLUDE_DIRS),-y $(dir))
COMPILE_ARGS += -debug_access+all +memcbk
SIM_ARGS += +dumpon
EXTRA_ARGS += +vcs+vcdpluson +vpdfile+dump.vpd
endif
COCOTB_HDL_TIMEUNIT = 1ns
COCOTB_HDL_TIMEPRECISION = 10ps
# Build directory
ifneq ($(COVERAGE_TYPE),)
SIM_BUILD := sim-build-$(COVERAGE_TYPE)
endif
include $(shell cocotb-config --makefiles)/Makefile.sim
ifeq ($(SIM), vcs)
.PHONY: convert-vpd2vcd
convert-vpd2vcd: $(COCOTB_RESULTS_FILE)
vpd2vcd -full64 dump.vpd dump.vcd +splitpacked
all: sim convert-vpd2vcd
endif