Merge branch 'mp_eb_dev' of github.com:whutddk/RISCV-MAC-SWICH into mp_eb_dev

This commit is contained in:
Ruige
2025-09-09 16:11:57 +08:00
10 changed files with 110 additions and 15 deletions

View File

@@ -54,6 +54,20 @@ testShin:
vvp -N ./tb/build/shinTest.iverilog -lxt2 -fst || true
python3 ./tb/shinTest/check_testcase.py
testShin8b10b:
python3 ./tb/shinTest/gen_pkt.py -8b10b
mkdir -p generated/log
rm -rf generated/log/*
iverilog -Wall \
-o ./tb/build/shinTest.iverilog \
-y ./generated/shin \
-I ./generated/shin \
-D RANDOMIZE_REG_INIT \
-D IVERILOG_COMPILE \
./tb/shinTest/ShinTopSpiTb.v
vvp -N ./tb/build/shinTest.iverilog -lxt2 -fst || true
python3 ./tb/shinTest/check_testcase.py
testShinClk:
python3 ./tb/shinTest/gen_pkt_clk.py --dev1 0 92 --dev2 0 -92 -8b10b
mkdir -p generated/log

View File

@@ -23,6 +23,16 @@ testShin_vcs:
python3 ./shinTest/check_testcase.py
testShin8b10b_vcs:
python3 ./shinTest/gen_pkt.py -8b10b
mkdir -p generated/log
rm -rf generated/log/*
@echo "Available CPUs: ${CPU_COUNT}"
${VCS} -f ./shinTest_vcs.f
${SIM}
python3 ./shinTest/check_testcase.py
testShinClk_vcs:
python3 ./shinTest/gen_pkt_clk.py --dev1 0 90 --dev2 0 -90
mkdir -p generated/log
@@ -33,7 +43,7 @@ testShinClk_vcs:
mv spi_trans_data.txt generated/spi_trans_data1.txt
mv generated/wave.vcd generated/wave1.vcd
\
python3 ./shinTest/gen_pkt_clk.py --dev1 45 180 --dev3 25 -180 -8b10b
python3 ./shinTest/gen_pkt_clk.py --dev1 45 180 --dev3 70 -180 -8b10b
mkdir -p generated/log
rm -rf generated/log/*
${VCS} -f ./shinTestClk_vcs.f
@@ -51,7 +61,7 @@ testShinClk_vcs:
mv spi_trans_data.txt generated/spi_trans_data3.txt
mv generated/wave.vcd generated/wave3.vcd
\
python3 ./shinTest/gen_pkt_clk.py --dev1 45 186 --dev3 25 -186
python3 ./shinTest/gen_pkt_clk.py --dev1 60 186 --dev3 15 -186
mkdir -p generated/log
rm -rf generated/log/*
${VCS} -f ./shinTestClk_vcs.f
@@ -60,7 +70,7 @@ testShinClk_vcs:
mv spi_trans_data.txt generated/spi_trans_data4.txt
mv generated/wave.vcd generated/wave4.vcd
\
python3 ./shinTest/gen_pkt_clk.py --dev1 45 187 --dev3 25 -187
python3 ./shinTest/gen_pkt_clk.py --dev1 80 187 --dev2 30 -187
mkdir -p generated/log
rm -rf generated/log/*
${VCS} -f ./shinTestClk_vcs.f
@@ -69,7 +79,7 @@ testShinClk_vcs:
mv spi_trans_data.txt generated/spi_trans_data5.txt
mv generated/wave.vcd generated/wave5.vcd
\
python3 ./shinTest/gen_pkt_clk.py --dev1 45 188 --dev3 25 -188 -8b10b
python3 ./shinTest/gen_pkt_clk.py --dev1 70 188 --dev3 223 -188 -8b10b
mkdir -p generated/log
rm -rf generated/log/*
${VCS} -f ./shinTestClk_vcs.f

View File

@@ -607,7 +607,7 @@ always @(posedge sck) begin
rxBuf[byteCnt] <= exChangeRegi;
//$display("spi read out %x", exChangeRegi);
end
if( txBuf[2] === 8'h80 & nextByteCnt >= 4) begin
if( txBuf[2] === 8'h80 & nextByteCnt >= 3) begin
exChangeRegi <= isQspi ? {exChangeRegi[3:0], qspi_mux_miso} : {exChangeRegi[6:0], spi_mux_miso};
end else begin
exChangeRegi <= 0;
@@ -627,7 +627,7 @@ end
//mst slv0~slv3的 内部qspi调用即设置
//sidx为0~4外部spi为5~9外部qspi为10~15
task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,input [16:0] sidx );
task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, input [16:0] sidx );
begin
txBuf[0] <= saddress[15:8];
txBuf[1] <= saddress[7:0];

View File

@@ -2,14 +2,28 @@
#encoding=utf-8
from pyutils import *
from testcase import environment, rwregs, ebmmu, errorPkt, watchdog, broadcast, sync, base, mac
import argparse
if __name__ == '__main__':
parser = argparse.ArgumentParser()
# 可选参数
parser.add_argument("-8b10b", action="store_true", dest="use_8b10b", default=False, help="使用8b10b编码")
# 解析参数
args = parser.parse_args()
#if args.use_8b10b:
# add_tc_2_runlist(rwregs.tc1())
environment.gen_slv_dev_num(4)
environment.set_using_8b10b(args.use_8b10b)
environment.bringup()
#add_tc_2_runlist(rwregs.tc1())
'''
#'''
add_tc_2_runlist(errorPkt.tc1())
add_tc_2_runlist(errorPkt.tc2())
add_tc_2_runlist(errorPkt.tc3())
@@ -50,6 +64,8 @@ if __name__ == '__main__':
add_tc_2_runlist(errorPkt.tc38())
#'''
#add_tc_2_runlist(rwregs.tc2())
#'''
add_tc_2_runlist(base.tc1())
add_tc_2_runlist(base.tc2())

View File

@@ -1,5 +1,5 @@
from pyutils import *
from .environment import *
def tc1():
genPkt = GenPkt()
@@ -510,6 +510,8 @@ def tc8():
+"\n#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+genIFRwDataCode(2, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_code(0)
+using_proper_code(2)
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
@@ -2118,6 +2120,8 @@ def tc28():
+"#5000"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_code(0)
+using_proper_code(4)
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)
@@ -2332,6 +2336,8 @@ def tc28():
+"#5000"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_code(0)
+using_proper_code(4)
+genMessageCode("--读取中断")
+genIFRwDataCode(0, 0x74, False, 4)

View File

@@ -3,8 +3,7 @@ from pyutils import *
global_dev_num = 4
global_setting_dev_clk = dict()
global_using_8b10b = False
def bringup():
gen_file_def = "sys_bringup"
@@ -30,6 +29,12 @@ def bringup():
+genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genMessageCode("--设置合适的底层编码4b5b or 8b10b")
+using_proper_code(0)
+using_proper_code(1)
+using_proper_code(2)
+using_proper_code(3)
+using_proper_code(4)
)
main_dev = [0x01, ]
@@ -404,4 +409,18 @@ def __gen_slv_clk(clk, ph, period):
def teardown():
#add_tc_2_runlist("")
pass
pass
def set_using_8b10b(isUsing8b10b):
global global_using_8b10b
global_using_8b10b = isUsing8b10b
def using_proper_code(dev):
global global_using_8b10b
if global_using_8b10b:
return genIFRwDataCode(dev, 0x004c, True, 2, [0x1, 0x59], wlog = False)
else:
return genIFRwDataCode(dev, 0x004c, True, 2, [0x0, 0x59], wlog = False)

View File

@@ -30,3 +30,31 @@ def tc1():
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2():
gen_file_def = "regtest_tc02"
sm_idx = 0
tc_des = "测试寄存器的读写状态将系统改为4B5B进行通信\\n"
genPkt = GenPkt()
genPkt.clean()
dev_num = get_slv_dev_num()
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
change_4b5b_code = ""
for i in range(dev_num + 1):
change_4b5b_code = change_4b5b_code + genIFRwDataCode(i, 0x004c, True, 2, [0x0, 0x59])\
+genIFRwDataCode(i, 0x004c, False, 2)
genPkt.addAfterExc(#genWriteTransLenCode(gen_file_def, sm_idx)
#+genWriteTransPktCode(gen_file_def, sm_idx)
#+genTrgTransPktCode(gen_file_def, sm_idx)
#+genReadAckPktCode(gen_file_def, sm_idx)
change_4b5b_code
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def

View File

@@ -1,5 +1,5 @@
from pyutils import *
from .environment import *
def tc1():
genPkt = GenPkt()
@@ -822,6 +822,7 @@ def tc5():
+genIFRwDataCode(3, 0xc0, False, 4)
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_code(4)
+genIFRwDataCode(4, 0x00, True, 1, [0x2, ])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
@@ -1319,9 +1320,10 @@ def tc7():
genPkt.addBeforeExc("\n#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_code(0)
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(0, 0x40, False, 4)
#+genIFRwDataCode(0, 0x40, False, 4)
+genIFRwDataCode(0, 0x00, True, 1, [0x1, ])
)

View File

@@ -3,7 +3,7 @@
16'h0316 8'h00 16'h0002 8'h8c 8'h00
16'h3000 8'h00 16'h008c 8'h08 8'h80 8'h00 8'h00 8'h00 8'h04 8'h00 8'h00 8'hd0 8'h80 8'h00 8'h01 8'h02 8'h03 8'h04 8'h05 8'h06 8'h07 8'h08 8'h09 8'h0a 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h44 8'h45 8'h46 8'h47 8'h48 8'h49 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'h51 8'h52 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'h73 8'h74 8'h75 8'h76 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'h7d 8'h7e 8'h7f 8'h00 8'h00
16'h0020 8'h00 16'h0001 8'h15
16'h2800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4e 8'h5b 8'h54 8'h35 8'h36 8'h37 8'h5d 8'h09 8'h0f 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h7c 8'h75 8'h46 8'hc7 8'h5d 8'h4d 8'h4a 8'h4b 8'h4c 8'h4d 8'h4e 8'h4f 8'h50 8'hd7 8'hd7 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'hf3 8'h74 8'h75 8'h77 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'hfd 8'h7e 8'h7f 8'h00 8'h04
16'h2800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4e 8'h5b 8'h54 8'h35 8'h36 8'h37 8'h5d 8'h09 8'h0f 8'h0b 8'h0c 8'h0d 8'h0e 8'h0f 8'h10 8'h11 8'h12 8'h13 8'h14 8'h15 8'h16 8'h17 8'h18 8'h19 8'h1a 8'h1b 8'h1c 8'h1d 8'h1e 8'h1f 8'h20 8'h21 8'h22 8'h23 8'h24 8'h25 8'h26 8'h27 8'h28 8'h29 8'h2a 8'h2b 8'h2c 8'h2d 8'h2e 8'h2f 8'h30 8'h31 8'h32 8'h33 8'h34 8'h35 8'h36 8'h37 8'h38 8'h39 8'h3a 8'h3b 8'h3c 8'h3d 8'h3e 8'h3f 8'h40 8'h41 8'h42 8'h43 8'h7c 8'h75 8'h46 8'hc7 8'h5d 8'h4d 8'h4a 8'h4b 8'hxx 8'h4d 8'h4e 8'h4f 8'h50 8'hd7 8'hd7 8'h53 8'h54 8'h55 8'h56 8'h57 8'h58 8'h59 8'h5a 8'h5b 8'h5c 8'h5d 8'h5e 8'h5f 8'h60 8'h61 8'h62 8'h63 8'h64 8'h65 8'h66 8'h67 8'h68 8'h69 8'h6a 8'h6b 8'h6c 8'h6d 8'h6e 8'h6f 8'h70 8'h71 8'h72 8'hf3 8'h74 8'h75 8'h77 8'h77 8'h78 8'h79 8'h7a 8'h7b 8'h7c 8'hfd 8'h7e 8'h7f 8'h00 8'h04
16'h0074 8'h80 16'h0004 8'h03 8'h00 8'h06 8'h00
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00
16'h0074 8'h80 16'h0004 8'h00 8'h00 8'h0f 8'h00

View File

@@ -16,7 +16,7 @@
16'h0306 8'h00 16'h0002 8'h8c 8'h00
16'h1000 8'h00 16'h008c 8'h08 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h80 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00
16'h0020 8'h00 16'h0001 8'h01
16'h0800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h3c 8'h31 8'h00 8'h80 8'h15 8'h05 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h87 8'h87 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hf0 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h80 8'h00 8'h00 8'h00 8'h01
16'h0800 8'h80 16'h008c 8'h08 8'h80 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'hd0 8'h80 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h3c 8'h31 8'h00 8'h80 8'h15 8'h05 8'h00 8'h00 8'hxx 8'h00 8'h00 8'h00 8'h00 8'h87 8'h87 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'hf0 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h10 8'h80 8'h00 8'h00 8'h00 8'h01
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h0078 8'h00 16'h0004 8'hff 8'hff 8'hff 8'hff
16'h007c 8'h00 16'h0002 8'h00 8'h81