Makefile (6c83971f152dd38cc3b8ed58204a3bd447d2d35a) | Makefile (19dedbf6196e7c26afb2e885cca2bb8004f288b6) |
---|---|
1TOP = TopMain 2BUILD_DIR = ./build 3TOP_V = $(BUILD_DIR)/$(TOP).v 4SCALA_FILE = $(shell find ./src/main/scala -name '*.scala') 5 6SIMTOP = top.TestMain 7IMAGE = "" 8SIMCMD = test:runMain $(SIMTOP) -td $(BUILD_DIR) --image $(IMAGE) \ 9 --more-vcs-flags "+define+RANDOMIZE_REG_INIT" 10 11.DEFAULT_GOAL = verilog 12 13help: 14 sbt 'test:runMain gcd.GCDMain --help' 15 | 1TOP = TopMain 2BUILD_DIR = ./build 3TOP_V = $(BUILD_DIR)/$(TOP).v 4SCALA_FILE = $(shell find ./src/main/scala -name '*.scala') 5 6SIMTOP = top.TestMain 7IMAGE = "" 8SIMCMD = test:runMain $(SIMTOP) -td $(BUILD_DIR) --image $(IMAGE) \ 9 --more-vcs-flags "+define+RANDOMIZE_REG_INIT" 10 11.DEFAULT_GOAL = verilog 12 13help: 14 sbt 'test:runMain gcd.GCDMain --help' 15 |
16LIBDEVICE_PATH = ./src/test/cpp/libdevice | 16LIBDEVICE_PATH = ./src/test/libdevice |
17libdevice: 18 make -C $(LIBDEVICE_PATH) 19 20$(TOP_V): $(SCALA_FILE) 21 mkdir -p $(@D) 22 sbt 'runMain top.$(TOP) -td $(@D) --output-file $@' 23 sed -i -e 's/_\(aw\|ar\|w\|r\|b\)_\(\|bits_\)/_\1/g' $@ 24 25verilog: $(TOP_V) 26 | 17libdevice: 18 make -C $(LIBDEVICE_PATH) 19 20$(TOP_V): $(SCALA_FILE) 21 mkdir -p $(@D) 22 sbt 'runMain top.$(TOP) -td $(@D) --output-file $@' 23 sed -i -e 's/_\(aw\|ar\|w\|r\|b\)_\(\|bits_\)/_\1/g' $@ 24 25verilog: $(TOP_V) 26 |
27SIM_TOP = NOOPSimTop 28SIM_TOP_V = $(BUILD_DIR)/$(SIM_TOP).v 29$(SIM_TOP_V): $(SCALA_FILE) 30 mkdir -p $(@D) 31 sbt 'test:runMain $(SIMTOP) -td $(BUILD_DIR) --image $(IMAGE) --output-file $@' 32 |
|
27test: libdevice 28 sbt '$(SIMCMD) --tr-rollback-buffers 0' 29 | 33test: libdevice 34 sbt '$(SIMCMD) --tr-rollback-buffers 0' 35 |
30emu: libdevice 31 sbt '$(SIMCMD) --backend-name verilator --generate-vcd-output off' | |
32 | 36 |
37EMU_CSRC_DIR = $(abspath ./src/test/csrc) 38EMU_VSRC_DIR = $(abspath ./src/test/vsrc) 39EMU_CXXFILES = $(shell find $(EMU_CSRC_DIR) -name "*.cpp") 40EMU_VFILES = $(shell find $(EMU_VSRC_DIR) -name "*.v" -or -name "*.sv") 41 42EMU_CXXFLAGS = -O3 -std=c++11 -static -g -Wall -I$(EMU_CSRC_DIR) 43EMU_CXXFLAGS += -DVERILATOR -Wno-maybe-uninitialized 44EMU_LDFLAGS = -lpthread -lreadline -lSDL 45 46VERILATOR_FLAGS = --top-module $(SIM_TOP) \ 47 +define+PRINTF_COND=1 \ 48 +define+RANDOMIZE_REG_INIT \ 49 --assert --output-split 20000 \ 50 --x-assign unique -O3 -CFLAGS "$(EMU_CXXFLAGS)" \ 51 -LDFLAGS "$(EMU_LDFLAGS)" 52 53EMU_MK := $(BUILD_DIR)/emu-compile/V$(SIM_TOP).mk 54EMU_DEPS := $(EMU_VFILES) $(EMU_CXXFILES) 55EMU_HEADERS := $(shell find $(EMU_CSRC_DIR) -name "*.h") 56EMU := $(BUILD_DIR)/emu 57 58$(EMU_MK): $(SIM_TOP_V) | $(EMU_DEPS) 59 @mkdir -p $(@D) 60 verilator --cc --exe $(VERILATOR_FLAGS) \ 61 -o $(abspath $(EMU)) -Mdir $(@D) \ 62 $^ $(EMU_DEPS) 63 64$(EMU): $(EMU_MK) $(EMU_DEPS) $(EMU_HEADERS) 65 $(MAKE) -C $(dir $(EMU_MK)) -f $(abspath $(EMU_MK)) 66 67emu: $(EMU) 68 $(EMU) 69 70#emu: libdevice 71# sbt '$(SIMCMD) --backend-name verilator --generate-vcd-output off' 72 |
|
33clean: 34 rm -rf $(BUILD_DIR) 35 36.PHONY: libdevice verilog test emu clean help | 73clean: 74 rm -rf $(BUILD_DIR) 75 76.PHONY: libdevice verilog test emu clean help |