大部分测试用例通过

This commit is contained in:
2025-09-22 13:12:28 +08:00
parent 2c1627b215
commit 9530ede4e1
12 changed files with 52 additions and 256 deletions

View File

@@ -3,6 +3,7 @@
OUTPUT = shin_test
CPU_COUNT := $(shell nproc)
SPI_TYPE ?= -spi 0
TRANS_CODE ?=
VCS = vcs -sverilog +v2k -timescale=1ns/1ps \
-full64 \
@@ -15,7 +16,7 @@ VCS = vcs -sverilog +v2k -timescale=1ns/1ps \
SIM = ./${OUTPUT} -l run.log
testShin_vcs:
python3 ./shinTest/gen_pkt.py ${SPI_TYPE}
python3 ./shinTest/gen_pkt.py ${SPI_TYPE} ${TRANS_CODE}
mkdir -p generated/log
rm -rf generated/log/*
@echo "Available CPUs: ${CPU_COUNT}"
@@ -23,17 +24,6 @@ testShin_vcs:
${SIM}
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

View File

@@ -1,35 +1,5 @@
`timescale 1 ns / 1 ps
`define ENABLE_REG_RW1_TEST "generated/log/reg_rw1_tc.log"
//`define ENABLE_ENCRYPTION
//`define ENABLE_DET1_TEST "generated/log/det1_tc.log"
//`define ENABLE_DET2_TEST "generated/log/det2_tc.log"
//`define ENABLE_SET_ADDR_TEST "generated/log/set_addr_tc.log"
//`define ENABLE_INT_INIT_TEST "generated/log/int_init_tc.log"
//`define ENABLE_DET_ERR1_TEST "generated/log/det_err1_tc.log"
//`define ENABLE_SMx_SEND1_TEST "generated/log/sm_send1_tc.log"
//`define ENABLE_SMx_SEND2_TEST "generated/log/sm_send2_tc.log"
//`define ENABLE_SMx_SEND3_TEST "generated/log/sm_send3_tc.log"
//`define ENABLE_ERR_PKT1_TEST "generated/log/err_pkt1_tc.log"
//`define ENABLE_ERR_PKT2_TEST "generated/log/err_pkt2_tc.log"
//`define ENABLE_ERR_PKT3_TEST "generated/log/err_pkt3_tc.log"
//`define ENABLE_EXCHG_DATA_SEQ0_TEST "generated/log/exchg_data_seq0_tc.log"
//`define ENABLE_EXCHG_DATA_SEQ1_TEST "generated/log/exchg_data_seq1_tc.log"
//`define ENABLE_EXCHG_DATA_SEQ2_TEST "generated/log/exchg_data_seq2_tc.log"
//`define ENABLE_EXCHG_DATA_SEQ3_TEST "generated/log/exchg_data_seq3_tc.log"
//`define ENABLE_BC_R_TEST "generated/log/bc_r_tc.log"
//`define ENABLE_BC_W_TEST "generated/log/bc_w_tc.log"
//`define ENABLE_BC_RW_TEST "generated/log/bc_rw_tc.log"
//`define ENABLE_SYNC_TEST "generated/log/sync_tc.log"
//`define ENABLE_SYNC_SIG0_TEST "generated/log/sync_sig0_tc.log"
//`define ENABLE_SYNC_SIG1_TEST "generated/log/sync_sig1_tc.log"
//`define ENABLE_RESET_TEST "generated/log/reset_tc.log"
//`define ENABLE_WD1_TEST "generated/log/wd1_tc.log"
module ShinTopSpiTb(
);
@@ -416,6 +386,10 @@ initial begin
//#20000000
#1000000000
`ifdef USING_OSPI
#1000000000
#1000000000
`endif
//#5000000
$display("Time Out !!!");
@@ -943,30 +917,6 @@ task wait_comm_finished(input [16:0] dev_idx);
st = $realtime;
is_run = 1;
`ifdef enable_wait_clear_int
txBuf[0] = 8'h00;
txBuf[1] = 8'h78;
txBuf[2] = `SPI_WRITE;
txBuf[3] = 8'h03;
txBuf[4] = 8'h00;
txBuf[5] = 8'h00;
txBuf[6] = 8'h00;
length = 8'h07;
idx = dev_idx;
#5
@(negedge sck)
isReq <= 1;
@(posedge sck) #5
isReq <= 0;
@( negedge isBusy) #1000
begin
end
`endif
while (is_run == 1) begin
txBuf[0] = 8'h00;
txBuf[1] = 8'h74;
@@ -1019,162 +969,6 @@ initial begin
#1000
`ifdef ENABLE_REG_RW1_TEST
/*---------------------------------------------------------------------------------------------------------
测试用例
1. 从IP中读取寄存器上电后的寄存器期望值为0
---------------------------------------------------------------------------------------------------------*/
begin:READ_REG_TESTCASE
`BEGIN_TESTCASE(`ENABLE_REG_RW1_TEST);
_t_start = $realtime;
$fdisplay(spidata_file, "测试用例从IP中读取寄存器上电后的寄存器期望值为0");
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(0)) );
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(1)) );
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(2)) );
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(3)) );
`SPI_TRANS( (16'h00), (`SPI_READ), (64), (`IF_OSPI(4)) );
_t_end = $realtime;
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
`END_TESTCASE(`ENABLE_REG_RW1_TEST);
end
`endif
begin:SETTING_INTERFACE
if ((`INTERFACE_IDX) == `ALL_DEV_NUM) begin
$fdisplay(spidata_file, "\n\n从SPI配置使用SPI接口访问EasyBus");
txBuf[3] = 8'h01;
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 2)) begin
$fdisplay(spidata_file, "\n\n从SPI配置使用2 QSPI接口访问EasyBus");
txBuf[3] = 8'h02;
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
end else if ((`INTERFACE_IDX) == (`ALL_DEV_NUM * 3)) begin
$fdisplay(spidata_file, "\n\n从SPI配置使用ASPI接口访问EasyBus");
txBuf[3] = 8'h03;
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
end else begin
$fdisplay(spidata_file, "\n\n从SPI配置使用0 QSPI接口访问EasyBus");
txBuf[3] = 8'h00;
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(0)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(1)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(2)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(3)) );
spi_trans( (16'h09), (`SPI_WRITE), (1), (`IF_OSPI(4)) );
end
end
`ifdef ENABLE_INT_INIT_TEST
begin:CHECK_INTERRUPT_SIG
$fdisplay(spidata_file, "\n\n测试用例检查设备的INTERRUPT信号");
@(posedge clock) begin
if (io_int_sig[0]) $fdisplay(spidata_file, "**MST Interrupt.");
if (io_int_sig[1]) $fdisplay(spidata_file, "**SLV0 Interrupt.");
if (io_int_sig[2]) $fdisplay(spidata_file, "**SLV1 Interrupt.");
if (io_int_sig[3]) $fdisplay(spidata_file, "**SLV2 Interrupt.");
if (io_int_sig[4]) $fdisplay(spidata_file, "**SLV3 Interrupt.");
end
$fdisplay(spidata_file, "-检查中断");
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-清中断");
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
txBuf[`ARRAY_IDX_OFF+3] = 8'h80;
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(0)) );
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(1)) );
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(2)) );
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(3)) );
spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-检查中断");
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
end
begin:CHECK_INTERRUPT_CFG_REG
$fdisplay(spidata_file, "\n\n测试用例检查设备的INTERRUPT信号设置寄存器");
$fdisplay(spidata_file, "-检查中断");
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-设置中断");
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-检查中断");
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-设置中断");
txBuf[`ARRAY_IDX_OFF+0] = 8'h0F;
txBuf[`ARRAY_IDX_OFF+1] = 8'h00;
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(0)) );
txBuf[`ARRAY_IDX_OFF+0] = 8'h00;
txBuf[`ARRAY_IDX_OFF+1] = 8'hFF;
txBuf[`ARRAY_IDX_OFF+2] = 8'h00;
txBuf[`ARRAY_IDX_OFF+3] = 8'h00;
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-检查中断");
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) );
spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) );
$fdisplay(spidata_file, "-中断改为脉冲模式");
txBuf[`ARRAY_IDX_OFF+0] = 8'h10;
txBuf[`ARRAY_IDX_OFF+1] = 8'h8A;
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(0)) );
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(1)) );
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(2)) );
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(3)) );
spi_trans( (16'h7c), (`SPI_WRITE), (2), (`IF_IDX(4)) );
end
`endif
`include "tc_runlist.vh"

View File

@@ -17,9 +17,10 @@ if __name__ == '__main__':
#if args.use_8b10b:
# add_tc_2_runlist(rwregs.tc1())
#print(args.spi_type)
environment.gen_slv_dev_num(4)
environment.set_spi_interface(args.spi_type)
environment.set_using_8b10b(args.use_8b10b)
environment.gen_slv_dev_num(4)
environment.bringup()
'''
@@ -124,7 +125,7 @@ if __name__ == '__main__':
#'''
#add_tc_2_runlist(sync.tc8())
'''
#'''
add_tc_2_runlist(ebmmu.tc1())
add_tc_2_runlist(ebmmu.tc2())
add_tc_2_runlist(ebmmu.tc3())

View File

@@ -14,6 +14,7 @@ if __name__ == '__main__':
parser.add_argument("-d3", "--dev3", nargs=2, type=int, default=[0, 0], help="相位(度)、频率偏差ppm")
parser.add_argument("-d4", "--dev4", nargs=2, type=int, default=[0, 0], help="相位(度)、频率偏差ppm")
parser.add_argument("-8b10b", action="store_true", dest="use_8b10b", default=False, help="使用8b10b编码")
parser.add_argument("-spi", dest="spi_type", type=int, default=0, help="选择SPI0:ISPI;1:OSPI;2:OQSPI;3:AQSPI")
# 解析参数
args = parser.parse_args()
@@ -32,8 +33,11 @@ if __name__ == '__main__':
dev_clk_info[4] = args.dev4
environment.set_dev_clk(dev_clk_info)
environment.set_spi_interface(args.spi_type)
environment.set_using_8b10b(args.use_8b10b)
environment.gen_slv_dev_for_clk(4)
environment.bringup()
if args.use_8b10b:

View File

@@ -270,18 +270,24 @@ def genCheckInsertTimeCode(wlog=True, dev_idx=0):
+ '''%s( (16'h24), (`SPI_READ), (2), (`IF_IDX(%d)) ); //检查替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx)
def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=True, iface=5):
spi_api="IF_IQSPI"
def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=True, iface=4):
spi_api="IF_IDX"
spi_offset = "`ARRAY_IDX_OFF"
if iface == 0:
spi_api = "IF_IQSPI"
spi_offset = "3"
elif iface == 1:
spi_api = "IF_OSPI"
spi_offset = "3"
elif iface == 2:
spi_api = "IF_OQSPI"
spi_offset = "3"
elif iface == 3:
spi_api = "IF_AQSPI"
spi_offset = "4"
else:
spi_api = "IF_IDX"
spi_offset = "`ARRAY_IDX_OFF"
if isWrite == True:
if (data == None) or (len(data) == 0):
@@ -290,7 +296,7 @@ def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=Tr
code = ''
idx = 0
for item in data:
code = code + '''txBuf[`ARRAY_IDX_OFF+%d]=8'h%02x;\n'''%(idx, item & 0xff)
code = code + '''txBuf[%s+%d]=8'h%02x;\n'''%(spi_offset, idx, item & 0xff)
idx = idx + 1
code = code + '''%s( (16'h%04x), (`SPI_WRITE), (%d), (`%s(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", addr, data_len, spi_api, dev)

View File

@@ -508,8 +508,8 @@ def tc8():
+genIFRwDataCode(2, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+"\n#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+genIFRwDataCode(2, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(2, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+using_proper_workmode(2)
@@ -2118,8 +2118,8 @@ def tc28():
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+"#5000"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+using_proper_workmode(4)
@@ -2334,8 +2334,8 @@ def tc28():
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+"#5000"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+using_proper_workmode(4)
@@ -2626,7 +2626,7 @@ def tc31():
+genMessageCode("--复位4号设备")
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+"#5000"
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(4)
+genIFRwDataCode(4, 0x0, True, 1, [1, ])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
@@ -2824,7 +2824,7 @@ def tc31():
+"#100000\n"
+genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+"#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+genIFRwDataCode(0, 0x0, True, 1, [1, ])
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
@@ -3008,7 +3008,7 @@ def tc31():
genPkt.addBeforeExc(genMessageCode("--恢复系统")
+genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79])
+"#5000"
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(4)
+genIFRwDataCode(4, 0x00, True, 1, [2, ])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])

View File

@@ -18,6 +18,13 @@ def bringup():
genPkt.clean()
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des)
+genMessageCode("--设置合适的工作模式底层编码4b5b or 8b10b/设置CDR/SPI接口")
+using_proper_workmode(0)
+using_proper_workmode(1)
+using_proper_workmode(2)
+using_proper_workmode(3)
+using_proper_workmode(4)
+genMessageCode("--读取中断状态")
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(1, 0x74, False, 4)
@@ -30,12 +37,6 @@ 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_workmode(0)
+using_proper_workmode(1)
+using_proper_workmode(2)
+using_proper_workmode(3)
+using_proper_workmode(4)
)
main_dev = [0x01, ]
@@ -449,7 +450,7 @@ def set_using_8b10b(isUsing8b10b):
global global_using_8b10b
global_using_8b10b = isUsing8b10b
def using_proper_workmode(dev):
def using_proper_workmode(dev, iface=1):
global global_using_8b10b
global global_spi_type
@@ -458,6 +459,6 @@ def using_proper_workmode(dev):
if global_using_8b10b:
trans_code = 0x1
return genIFRwDataCode(dev, 0x004c, True, 2, [0x1, 0x59], wlog = False)+genIFRwDataCode(dev, 0x4e, True, 2, [global_spi_type, 0x60], wlog=False, iface=1)
return genIFRwDataCode(dev, 0x09, True, 1, [global_spi_type, ], wlog=False, iface=iface)+genIFRwDataCode(dev, 0x004c, True, 2, [trans_code, 0x59], wlog = False)

View File

@@ -58,7 +58,7 @@ def tc1():
default_trans_code = ""
for i in range(dev_num + 1):
default_trans_code = default_trans_code + using_proper_workmode(i)
default_trans_code = default_trans_code + using_proper_workmode(i, iface = 4)
genPkt.addAfterExc(genMessageCode("--正确的key")
+change_8b10b_code1

View File

@@ -833,7 +833,7 @@ def tc5():
+genIFRwDataCode(2, 0xc0, False, 4)
+genIFRwDataCode(3, 0xc0, False, 4)
+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(4)
+genIFRwDataCode(4, 0x00, True, 1, [0x2, ])
+genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
@@ -1337,7 +1337,7 @@ def tc7():
sm_idx = 1
genPkt.addBeforeExc("\n#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+genIFRwDataCode(0, 0x74, False, 4)
@@ -1770,14 +1770,14 @@ def tc8():
sm_idx = 1
genPkt.addBeforeExc("\n#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+genIFRwDataCode(0, 0x74, False, 4)
+genIFRwDataCode(0, 0x00, True, 1, [0x1, ])
+genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff])
+genIFRwDataCode(1, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(1, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(1)
+genIFRwDataCode(1, 0x74, False, 4)
+genIFRwDataCode(1, 0x00, True, 1, [0x2, ])
@@ -1862,7 +1862,7 @@ def tc8():
sm_idx = 1
genPkt.addBeforeExc("\n#5000\n"
+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
#+genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1)
+using_proper_workmode(0)
+genIFRwDataCode(0, 0x74, False, 4)

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'hxx 8'h00 8'h00 8'h00 8'h00 8'h87 8'h87 8'h00 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'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'hxx 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'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'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

View File

@@ -23,7 +23,7 @@
16'h0306 8'h00 16'h0002 8'h64 8'h00
16'h1000 8'h00 16'h0064 8'h06 8'h00 8'h00 8'h00 8'h00 8'h04 8'h00 8'h00 8'h00 8'h10 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'h08 8'h00 8'h00 8'h00 8'h10 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'h0c 8'h00 8'h00 8'h00 8'h10 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'h10 8'h00 8'h00 8'h00 8'h10 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'h0064 8'h06 8'h00 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'h00 8'h10 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'h01 8'h00 8'h08 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h10 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
16'h0800 8'h80 16'h0064 8'h06 8'h00 8'h00 8'h04 8'h00 8'h04 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h08 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h0c 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01 8'h00 8'h10 8'h00 8'h00 8'h00 8'h10 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h01
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
@@ -43,7 +43,7 @@
16'h0306 8'h00 16'h0002 8'h4c 8'h00
16'h1000 8'h00 16'h004c 8'h04 8'h80 8'h00 8'h00 8'h80 8'h02 8'h00 8'h00 8'h00 8'h40 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'h004c 8'h04 8'h80 8'h00 8'h04 8'h80 8'h02 8'h00 8'h00 8'h00 8'h40 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'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 8'h00 8'h04
16'h0800 8'h80 16'h004c 8'h04 8'h80 8'h00 8'h04 8'h80 8'h02 8'h00 8'h00 8'h00 8'h40 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h02 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h03 8'h00 8'h00 8'h00 8'h00 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h04 8'h00 8'h00 8'h00 8'h00 8'h00 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

@@ -23,7 +23,7 @@
16'h0306 8'h00 16'h0002 8'h64 8'h00
16'h1000 8'h00 16'h0064 8'h06 8'h00 8'h00 8'h00 8'h40 8'h02 8'h00 8'h00 8'h00 8'h58 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'h0064 8'h06 8'h00 8'h00 8'h04 8'h40 8'h02 8'h00 8'h00 8'h00 8'h58 8'h00 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h0a 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h14 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h1e 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 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'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h02 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h03 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'h00 8'h04 8'h00 8'h00 8'h04
16'h0800 8'h80 16'h0064 8'h06 8'h00 8'h00 8'h04 8'h40 8'h02 8'h00 8'h00 8'h00 8'h58 8'h00 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h0a 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h14 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h1e 8'h00 8'h00 8'h10 8'h00 8'h02 8'h0a 8'h00 8'h03 8'h01 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h01 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h02 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h03 8'h00 8'h02 8'h01 8'h4c 8'h58 8'h50 8'h30 8'h30 8'h31 8'h55 8'hxx 8'h04 8'h00 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