firesim/sim/make/verilator.mk

38 lines
1.3 KiB
Makefile

# See LICENSE for license details.
####################################
# Verilator MIDAS-Level Simulators #
####################################
VERILATOR_CXXOPTS ?= -O2
VERILATOR_MAKEFLAGS ?= -j8 VM_PARALLEL_BUILDS=1
verilator = $(GENERATED_DIR)/V$(DESIGN)
verilator_debug = $(GENERATED_DIR)/V$(DESIGN)-debug
$(verilator) $(verilator_debug): export CXXFLAGS := $(CXXFLAGS) $(common_cxx_flags) $(VERILATOR_CXXOPTS) -D RTLSIM
$(verilator) $(verilator_debug): export LDFLAGS := $(LDFLAGS) $(common_ld_flags) -Wl,-rpath='$$$$ORIGIN'
verilator_driver_deps := $(header) $(DRIVER_CC) $(DRIVER_H) $(midas_cc) $(midas_h) $(simulator_verilog)
define make_verilator
$(MAKE) -C $(simif_dir) $(VERILATOR_MAKEFLAGS) $(1) \
PLATFORM=$(PLATFORM) \
DRIVER_NAME=$(DESIGN) \
GEN_FILE_BASENAME=$(BASE_FILE_NAME) \
GEN_DIR=$(GENERATED_DIR) \
DRIVER="$(DRIVER_CC)" \
TOP_DIR=$(chipyard_dir) \
VERILATOR_FLAGS="$(EXTRA_VERILATOR_FLAGS)"
endef
$(verilator): $(verilator_driver_deps)
$(call make_verilator, verilator)
$(verilator_debug): $(verilator_driver_deps)
$(call make_verilator, verilator-debug)
.PHONY: verilator verilator-debug
verilator: $(verilator)
verilator-debug: $(verilator_debug)