Skip to content

Commit c4d8c1e

Browse files
committed
chore: add soc compile target
1 parent 7e9590b commit c4d8c1e

File tree

1 file changed

+54
-7
lines changed

1 file changed

+54
-7
lines changed

rtl/Makefile

Lines changed: 54 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,40 @@ DIFFTEST_HOME := $(ROOT_PATH)/difftest
2121
DRAMSIM3_HOME := $(ROOT_PATH)/DRAMsim3
2222
YSYXSOC_HOME := $(ROOT_PATH)/ysyxSoC/ysyx
2323

24+
###### soc var ######
25+
SOC_CSRC_HOME += $(ROOT_PATH)/src/main/csrc
26+
SOC_CSRC_LIB_HOME += $(ROOT_PATH)/ysyxSoC/ysyx/peripheral/spiFlash
27+
SOC_CXXFILES += $(shell find $(SOC_CSRC_HOME) -name "*.cpp")
28+
SOC_CXXFILES += $(shell find $(SOC_CSRC_LIB_HOME) -name "*.cpp")
29+
30+
SOC_VSRC_HOME += $(BUILD_DIR)/soc
31+
SOC_COMPILE_HOME := $(SOC_VSRC_HOME)/emu-compile
32+
SOC_VSRC_TOP := ysyxSoCFull
33+
SOC_VSRC_LIB_HOME += $(ROOT_PATH)/ysyxSoC/ysyx/peripheral/
34+
SOC_VXXFILES += $(shell find $(SOC_VSRC_HOME) -name "*.v")
35+
SOC_VXXFILES += $(shell find $(SOC_VSRC_LIB_HOME) -name "*.v")
36+
37+
SOC_VSRC_INCLPATH += -I$(SOC_VSRC_HOME)
38+
SOC_VSRC_INCLPATH += -I$(ROOT_PATH)/ysyxSoC/ysyx/peripheral/uart16550/rtl
39+
SOC_VSRC_INCLPATH += -I$(ROOT_PATH)/ysyxSoC/ysyx/peripheral/spi/rtl
40+
SOC_CSRC_INCLPATH += -I$(SOC_CSRC_HOME)
41+
SOC_CSRC_INCLPATH += -I$(SOC_CSRC_LIB_HOME)
42+
43+
SOC_CXXFLAGS += -std=c++11 -static -Wall $(SOC_CSRC_INCLPATH)
44+
SOC_FLAGS += --cc --exe --top-module $(SOC_VSRC_TOP)
45+
SOC_FLAGS += --x-assign unique -O3 -CFLAGS "$(SOC_CXXFLAGS)"
46+
SOC_FLAGS += --trace --assert --stats-vars --output-split 30000 --output-split-cfuncs 30000
47+
SOC_FLAGS += --timescale "1ns/1ns" -Wno-fatal --trace
48+
SOC_FLAGS += -o $(BUILD_DIR)/soc/emu
49+
SOC_FLAGS += -Mdir $(BUILD_DIR)/soc/emu-compile
50+
SOC_FLAGS += $(SOC_VSRC_INCLPATH) $(SOC_CXXFILES) $(SOC_VXXFILES)
51+
52+
CCACHE := $(if $(shell which ccache),ccache,)
53+
ifneq ($(CCACHE),)
54+
export OBJCACHE = ccache
55+
endif
56+
57+
2458
export AM_HOME := $(AM_FOLDER_PATH)/abstract-machine
2559
export NEMU_HOME := $(ROOT_PATH)/NEMU
2660
export NOOP_HOME := $(ROOT_PATH)
@@ -185,17 +219,18 @@ $(cpuTestCaseName): cputest-%: $(CPUTEST_HOME)/build/%-riscv64-mycpu.bin
185219

186220
###### soc name rule test target ######
187221
socTopModify:
188-
@cp $(BUILD_DIR)/SoCTop.v $(BUILD_DIR)/ysyx_210324.v
189-
@sed -i 's/module ysyx_210324_SoCTop/module ysyx_210324/g' $(BUILD_DIR)/ysyx_210324.v
190-
@sed -i 's/io_\([a-z]*\)_\([a-z]*\)_[bits]*_*\([a-z]*\)/io_\1_\2\3/g' $(BUILD_DIR)/ysyx_210324.v
222+
@mkdir -p $(BUILD_DIR)/soc
223+
@cp $(BUILD_DIR)/SoCTop.v $(BUILD_DIR)/soc/ysyx_210324.v
224+
@sed -i 's/module ysyx_210324_SoCTop/module ysyx_210324/g' $(BUILD_DIR)/soc/ysyx_210324.v
225+
@sed -i 's/io_\([a-z]*\)_\([a-z]*\)_[bits]*_*\([a-z]*\)/io_\1_\2\3/g' $(BUILD_DIR)/soc/ysyx_210324.v
191226

192227
# FIMXE: need a better solution, not just copy to dir everytime
193228
socNameCheck: socTopModify
194-
@cp $(YSYXSOC_HOME)/soc/cpu-check.py $(BUILD_DIR)
195-
@cd $(BUILD_DIR) && echo 324 | python3 cpu-check.py
229+
@cp $(YSYXSOC_HOME)/soc/cpu-check.py $(BUILD_DIR)/soc
230+
@cd $(BUILD_DIR)/soc && echo 324 | python3 cpu-check.py
196231

197232
socLintCheck: socNameCheck
198-
@cp $(BUILD_DIR)/ysyx_210324.v $(YSYXSOC_HOME)/lint/
233+
@cp $(BUILD_DIR)/soc/ysyx_210324.v $(YSYXSOC_HOME)/lint/
199234
@sed -i 's/ID = \([0-9]*\)/ID = 210324/g' $(YSYXSOC_HOME)/lint/Makefile
200235
@echo -e "\033[1;32mstart lint check....\033[0m"
201236
$(MAKE) -C $(YSYXSOC_HOME)/lint/ lint
@@ -204,6 +239,18 @@ socLintCheck: socNameCheck
204239
$(MAKE) -C $(YSYXSOC_HOME)/lint/ lint-unused
205240
@echo -e "\033[1;32mlint-unused check done\033[0m"
206241

242+
socSimPrevBuild:
243+
# FIXME: if only need to moidfy core, commit it
244+
# @cp $(YSYXSOC_HOME)/soc/ysyxSoCFull.v $(BUILD_DIR)/soc
245+
@sed -i s/ysyx_000000/ysyx_210324/g $(BUILD_DIR)/soc/ysyxSoCFull.v
246+
verilator $(SOC_FLAGS)
247+
248+
socSimBuild: socSimPrevBuild
249+
$(MAKE) VM_PARALLEL_BUILDS=1 OPT_FAST="-O3" -C $(SOC_COMPILE_HOME) -f V$(SOC_VSRC_TOP).mk
250+
251+
socSimRun:
252+
$(SOC_VSRC_HOME)/emu -i $(YSYXSOC_HOME)/program/bin/flash/hello-flash.bin
253+
207254
###### clean target ######
208255
cleanBuild:
209256
rm -rf $(BUILD_DIR)
@@ -219,5 +266,5 @@ cleanAll: cleanBuild cleanMillOut cleanDepRepo
219266

220267
.PHONY: millTest diffBuild help compile bsp reformat checkformat \
221268
nemuBuild difftestBuild riscvTestBuild cpuTestBuild amTestBuild demoTest \
222-
socTopModify socNameCheck \
269+
socTopModify socNameCheck socSimBuild\
223270
cleanBuild cleanMillOut cleanDepRepo cleanAll

0 commit comments

Comments
 (0)