2019-02-06 22:33:01 +08:00
|
|
|
TOP = TopMain
|
|
|
|
BUILD_DIR = ./build
|
|
|
|
TOP_V = $(BUILD_DIR)/$(TOP).v
|
|
|
|
SCALA_FILE = $(shell find ./src/main/scala -name '*.scala')
|
|
|
|
|
2019-02-09 11:09:57 +08:00
|
|
|
SIMTOP = top.TestMain
|
2019-02-08 00:34:53 +08:00
|
|
|
IMAGE = ""
|
2019-02-09 11:09:57 +08:00
|
|
|
SIMCMD = test:runMain $(SIMTOP) -td $(BUILD_DIR) --image $(IMAGE)
|
2019-02-08 00:34:53 +08:00
|
|
|
|
2019-02-10 01:46:53 +08:00
|
|
|
.DEFAULT_GOAL = verilog
|
|
|
|
|
2019-02-09 11:17:16 +08:00
|
|
|
LIBDEVICE_PATH = ./src/test/cpp/libdevice
|
|
|
|
libdevice:
|
|
|
|
make -C $(LIBDEVICE_PATH)
|
|
|
|
|
2019-02-06 22:33:01 +08:00
|
|
|
$(TOP_V): $(SCALA_FILE)
|
|
|
|
mkdir -p $(@D)
|
|
|
|
sbt 'runMain top.$(TOP) -td $(@D) --output-file $@'
|
2019-02-21 20:09:40 +08:00
|
|
|
sed -i -e 's/_\(aw\|ar\|w\|r\|b\)_\(\|bits_\)/_\1/g' $@
|
2019-02-06 22:33:01 +08:00
|
|
|
|
2019-02-10 01:46:53 +08:00
|
|
|
verilog: $(TOP_V)
|
|
|
|
|
2019-02-09 11:17:16 +08:00
|
|
|
test: libdevice
|
2019-02-16 11:06:24 +08:00
|
|
|
sbt '$(SIMCMD) --tr-rollback-buffers 0'
|
2019-02-06 22:33:01 +08:00
|
|
|
|
2019-02-09 11:17:16 +08:00
|
|
|
emu: libdevice
|
2019-02-09 11:09:57 +08:00
|
|
|
sbt '$(SIMCMD) --backend-name verilator --generate-vcd-output off'
|
2019-02-08 00:35:29 +08:00
|
|
|
|
2019-02-06 22:33:01 +08:00
|
|
|
clean:
|
2019-02-13 23:16:13 +08:00
|
|
|
rm -rf $(BUILD_DIR)
|
2019-02-10 01:46:53 +08:00
|
|
|
|
|
|
|
.PHONY: libdevice verilog test emu clean
|