From 33b2be5792dd53bb57e6c6a9501f6f9d1803723f Mon Sep 17 00:00:00 2001 From: abejgonzalez Date: Fri, 26 May 2023 17:37:29 -0700 Subject: [PATCH] Fix unittest makefile --- sim/make/cpp-lint.mk | 1 - sim/midas/src/main/cc/rtlsim/Makefrag-vcs | 2 +- .../src/main/cc/rtlsim/Makefrag-verilator | 2 +- sim/midas/src/main/cc/unittest/Makefrag | 30 ++++++++++++++----- 4 files changed, 24 insertions(+), 11 deletions(-) diff --git a/sim/make/cpp-lint.mk b/sim/make/cpp-lint.mk index 8277520f..c1bcf330 100644 --- a/sim/make/cpp-lint.mk +++ b/sim/make/cpp-lint.mk @@ -9,7 +9,6 @@ testchipip_csrc_dir = $(chipyard_dir)/generators/testchipip/src/main/resources/t clang_tidy_files := $(shell \ find $(firesim_base_dir) -name '*.cc' -or -name '*.h' \ - | grep -v generic_vharness.cc \ | grep -v TestPointerChaser.cc \ | grep -v simif_ \ | grep -v tracerv \ diff --git a/sim/midas/src/main/cc/rtlsim/Makefrag-vcs b/sim/midas/src/main/cc/rtlsim/Makefrag-vcs index e122a0bd..0adc01ae 100644 --- a/sim/midas/src/main/cc/rtlsim/Makefrag-vcs +++ b/sim/midas/src/main/cc/rtlsim/Makefrag-vcs @@ -19,7 +19,7 @@ vcs_flags := \ -Mdir=$(GEN_DIR)/$(DRIVER_NAME)-debug.csrc \ +vc+list \ -CFLAGS "$(CXXFLAGS) -D_GNU_SOURCE -DVCS -I$(VCS_HOME)/include" \ - -LDFLAGS "$(LDFLAGS)" \ + $(if $(LDFLAGS),-LDFLAGS "$(LDFLAGS)",) \ -sverilog \ -assert svaext \ $(SIM_PREPROC_DEFINES) \ diff --git a/sim/midas/src/main/cc/rtlsim/Makefrag-verilator b/sim/midas/src/main/cc/rtlsim/Makefrag-verilator index 48aaeb6f..f4d37296 100644 --- a/sim/midas/src/main/cc/rtlsim/Makefrag-verilator +++ b/sim/midas/src/main/cc/rtlsim/Makefrag-verilator @@ -38,7 +38,7 @@ override VERILATOR_FLAGS := \ -Wno-VARHIDDEN \ -Wno-UNDRIVEN \ -CFLAGS "$(CXXFLAGS) -DVERILATOR" \ - -LDFLAGS "$(LDFLAGS)" \ + $(if $(LDFLAGS),-LDFLAGS "$(LDFLAGS)",) \ $(SIM_PREPROC_DEFINES) \ $(VERILATOR_FLAGS) diff --git a/sim/midas/src/main/cc/unittest/Makefrag b/sim/midas/src/main/cc/unittest/Makefrag index fd076d9f..29832b4d 100644 --- a/sim/midas/src/main/cc/unittest/Makefrag +++ b/sim/midas/src/main/cc/unittest/Makefrag @@ -12,9 +12,7 @@ DESIGN := TestHarness CONFIG ?= AllUnitTests OUT_DIR ?= $(GEN_DIR) -TB ?= TestDriver EMUL ?= vcs -CLOCK_PERIOD ?= 1.0 default: $(GEN_DIR)/$(DESIGN).v @@ -47,16 +45,34 @@ $(GEN_DIR)/$(DESIGN).v: $(GEN_DIR)/$(DESIGN).fir -td $(GEN_DIR) \ -faf $(GEN_DIR)/$(DESIGN).anno.json -X verilog" +override CXXFLAGS += -std=c++20 + emul_v := $(GEN_DIR)/$(DESIGN).v emul_h := emul_cc := -# VCS Makefrag arguments +TB ?= TestDriver +CLOCK_PERIOD ?= 1.0 + +SIM_TIMESCALE ?= 1ps/1ps +SIM_PREPROC_DEFINES = \ + +define+CLOCK_PERIOD=$(CLOCK_PERIOD) \ + +define+RANDOMIZE_MEM_INIT \ + +define+RANDOMIZE_REG_INIT \ + +define+RANDOMIZE_GARBAGE_ASSIGN \ + +define+RANDOMIZE_INVALID_ASSIGN \ + +define+STOP_COND=!$(TB).reset \ + +define+PRINTF_COND=!$(TB).reset \ + +define+RANDOM=32\'b0 \ + +sim_wrapper_v := $(vsrc)/TestDriver.v # Since we're reusing the makefrags we use to build metasimulators, we need to # set DRIVER_NAME. We set it here so simulator binaries are named V$(DESIGN) / $(DESIGN) DRIVER_NAME := $(DESIGN) + ifeq ($(EMUL),vcs) -vcs_wrapper_v := $(vsrc)/TestDriver.v + +# VCS Makefrag arguments VCS_FLAGS = +verbose include $(sim_makefrag_dir)/Makefrag-vcs @@ -65,13 +81,11 @@ vcs_debug = $(OUT_DIR)/$(DESIGN)-debug vcs: $(vcs) vcs-debug: $(vcs_debug) + else # Verilator Makefrag arguments -top_module := TestHarness -override CXXFLAGS += -I$(csrc) -include $(csrc)/verilator.h -DTEST_HARNESS=V$(top_module) -std=c++11 -override emul_cc += $(sim_makefrag_dir)/generic_vharness.cc - +VERILATOR_FLAGS = -Wno-BLKSEQ # ignore TestDriver.v BLKSEQ warnings include $(sim_makefrag_dir)/Makefrag-verilator verilator = $(OUT_DIR)/V$(DESIGN)