xref: /XiangShan/Makefile (revision 5a7b942b030b799f8086bf9a6096981200fb8b46)
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
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
27test: libdevice
28	sbt '$(SIMCMD) --tr-rollback-buffers 0'
29
30emu: libdevice
31	sbt '$(SIMCMD) --backend-name verilator --generate-vcd-output off'
32
33clean:
34	rm -rf $(BUILD_DIR)
35
36.PHONY: libdevice verilog test emu clean help
37