@@ -19,6 +19,7 @@ DHRYSTONE_HOME := $(AM_KERNEL_PATH)/benchmarks/dhrystone
1919MICROBENCH_HOME := $(AM_KERNEL_PATH ) /benchmarks/microbench
2020DIFFTEST_HOME := $(ROOT_PATH ) /difftest
2121DRAMSIM3_HOME := $(ROOT_PATH ) /DRAMsim3
22+ YSYXSOC_HOME := $(ROOT_PATH ) /ysyxSoC/ysyx
2223
2324export AM_HOME := $(AM_FOLDER_PATH ) /abstract-machine
2425export NEMU_HOME := $(ROOT_PATH ) /NEMU
4243millTest :
4344 mill -i __.test
4445
46+ diffPrvBuild :
47+ @cp $(ROOT_PATH ) /src/main/scala/top/SimTop.scala $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
48+ @sed -i ' s/class SimTop/class SoCTop/g' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
49+ @sed -i ' /val logCtrl/d' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
50+ @sed -i ' /val perfInfo/d' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
51+ @sed -i ' /val uart/d' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
52+ @sed -i ' /io.uart/d' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
53+ @sed -i ' s/memAXI_0/master/g' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
54+ @sed -i ' s/val master = new AXI4IO/val master = new AXI4IO/g' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
55+ @sed -i ' /val master/i\ val interrupt = Input(Bool())' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
56+ @sed -i ' /val master/a\ val slave = Flipped(new AXI4IO)' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
57+ @sed -i ' s/axiBridge.io.inst <> treeCoreL2.io.inst/axiBridge.io.inst <> treeCoreL2.io.inst/g' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
58+ @sed -i ' s/axiBridge.io.mem <> treeCoreL2.io.mem/axiBridge.io.mem <> treeCoreL2.io.mem/g' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
59+ @sed -i ' /protected val treeCoreL2/a\ treeCoreL2.io.uart.in.ch := DontCare' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
60+ @sed -i ' /axiBridge.io.mem/a\ io.slave.r.bits.user := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
61+ @sed -i ' /axiBridge.io.mem/a\ io.slave.r.bits.id := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
62+ @sed -i ' /axiBridge.io.mem/a\ io.slave.r.bits.last := false.B' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
63+ @sed -i ' /axiBridge.io.mem/a\ io.slave.r.bits.data := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
64+ @sed -i ' /axiBridge.io.mem/a\ io.slave.r.bits.resp := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
65+ @sed -i ' /axiBridge.io.mem/a\ io.slave.r.valid := false.B' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
66+ @sed -i ' /axiBridge.io.mem/a\ io.slave.ar.ready := false.B' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
67+ @sed -i ' /axiBridge.io.mem/a\ io.slave.b.bits.user := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
68+ @sed -i ' /axiBridge.io.mem/a\ io.slave.b.bits.id := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
69+ @sed -i ' /axiBridge.io.mem/a\ io.slave.b.bits.resp := 0.U' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
70+ @sed -i ' /axiBridge.io.mem/a\ io.slave.b.valid := false.B' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
71+ @sed -i ' /axiBridge.io.mem/a\ io.slave.w.ready := false.B' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
72+ @sed -i ' /axiBridge.io.mem/a\ io.slave.aw.ready := false.B' $(ROOT_PATH ) /src/main/scala/top/SoCTop.scala
73+
4574diffBuild :
4675 mkdir -p $(BUILD_DIR )
4776 mill -i tc_l2.runMain treecorel2.TopMain -td $(BUILD_DIR )
@@ -74,13 +103,12 @@ dramsim3Build:
74103# ##### difftest target ######
75104# if want to use the RamHelper, need to remove the 'WITH_DRAMSIM3=1'
76105difftestBuild :
77- sed -i ' s/io_memAXI_0_w_bits_data,/io_memAXI_0_w_bits_data[3:0],/g' $(BUILD_DIR ) /SimTop.v
78- sed -i ' s/io_memAXI_0_r_bits_data,/io_memAXI_0_r_bits_data[3:0],/g' $(BUILD_DIR ) /SimTop.v
79- sed -i ' s/io_memAXI_0_w_bits_data =/io_memAXI_0_w_bits_data[0] =/g' $(BUILD_DIR ) /SimTop.v
80- sed -i ' s/ io_memAXI_0_r_bits_data;/ io_memAXI_0_r_bits_data[0];/g' $(BUILD_DIR ) /SimTop.v
106+ @sed -i ' s/io_memAXI_0_\([a-z]*\)_bits_data,/io_memAXI_0_\1_bits_data[3:0],/g' $(BUILD_DIR ) /SimTop.v
107+ @sed -i ' s/io_memAXI_0_w_bits_data =/io_memAXI_0_w_bits_data[0] =/g' $(BUILD_DIR ) /SimTop.v
108+ @sed -i ' s/ io_memAXI_0_r_bits_data;/ io_memAXI_0_r_bits_data[0];/g' $(BUILD_DIR ) /SimTop.v
81109 $(MAKE ) -C $(DIFFTEST_HOME ) WITH_DRAMSIM3=1
82110
83- diffAllBuild : diffBuild difftestBuild
111+ diffAllBuild : diffPrvBuild diffBuild difftestBuild
84112
85113simpleTestBuild :
86114 $(MAKE ) -C $(SIMPLETEST_HOME ) ARCH=riscv64-mycpu
@@ -181,6 +209,26 @@ $(cpuTestLogFile):
181209$(cpuTestCaseName ) : cputest-% : $(CPUTEST_HOME ) /build/% -riscv64-mycpu.bin
182210 $(call getRecursiveTestRes, $(CPUTEST_HOME ) )
183211
212+ # ##### soc name rule test target ######
213+ socTopModify :
214+ @cp $(BUILD_DIR ) /SoCTop.v $(BUILD_DIR ) /ysyx_210324.v
215+ @sed -i ' s/module ysyx_210324_SoCTop/module ysyx_210324/g' $(BUILD_DIR ) /ysyx_210324.v
216+ @sed -i ' s/io_\([a-z]*\)_\([a-z]*\)_[bits]*_*\([a-z]*\)/io_\1_\2\3/g' $(BUILD_DIR ) /ysyx_210324.v
217+
218+ # FIMXE: need a better solution, not just copy to dir everytime
219+ socNameCheck : socTopModify
220+ @cp $(YSYXSOC_HOME ) /soc/cpu-check.py $(BUILD_DIR )
221+ @cd $(BUILD_DIR ) && echo 324 | python3 cpu-check.py
222+
223+ socLintCheck : socNameCheck
224+ @cp $(BUILD_DIR ) /ysyx_210324.v $(YSYXSOC_HOME ) /lint/
225+ @sed -i ' s/ID = \([0-9]*\)/ID = 210324/g' $(YSYXSOC_HOME ) /lint/Makefile
226+ @echo -e " \033[1;32mstart lint check....\033[0m"
227+ $(MAKE ) -C $(YSYXSOC_HOME ) /lint/ lint
228+ @echo -e " \033[1;32mlint check done\033[0m"
229+ @echo -e " \033[1;32mstart lint-unused check....\033[0m"
230+ $(MAKE ) -C $(YSYXSOC_HOME ) /lint/ lint-unused
231+ @echo -e " \033[1;32mlint-unused check done\033[0m"
184232
185233# ##### clean target ######
186234cleanBuild :
@@ -194,6 +242,8 @@ cleanDepRepo:
194242
195243cleanAll : cleanBuild cleanMillOut cleanDepRepo
196244
245+
197246.PHONY : millTest diffBuild help compile bsp reformat checkformat \
198- nemuBuild difftestBuild riscvTestBuild cpuTestBuild amTestBuild demoTest recursiveTest \
247+ nemuBuild difftestBuild riscvTestBuild cpuTestBuild amTestBuild demoTest \
248+ socTopModify socNameCheck \
199249 cleanBuild cleanMillOut cleanDepRepo cleanAll
0 commit comments