diff --git a/tb/shinTest/Makefile_vcs b/tb/shinTest/Makefile_vcs index d1beb28..82e7790 100644 --- a/tb/shinTest/Makefile_vcs +++ b/tb/shinTest/Makefile_vcs @@ -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 diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 40b93eb..cf1cf71 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -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( ); @@ -415,7 +385,11 @@ initial begin reset <= 0; //#20000000 - #1000000000 + #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" diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 4bb35cb..6173f54 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -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()) diff --git a/tb/shinTest/gen_pkt_clk.py b/tb/shinTest/gen_pkt_clk.py index 3ad0a70..6a2fb2c 100755 --- a/tb/shinTest/gen_pkt_clk.py +++ b/tb/shinTest/gen_pkt_clk.py @@ -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="选择SPI,0: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: diff --git a/tb/shinTest/pyutils/GenPkt.py b/tb/shinTest/pyutils/GenPkt.py index 054d7de..b95c703 100644 --- a/tb/shinTest/pyutils/GenPkt.py +++ b/tb/shinTest/pyutils/GenPkt.py @@ -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) diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index a0afedc..32e3933 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -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]) diff --git a/tb/shinTest/testcase/environment.py b/tb/shinTest/testcase/environment.py index 1524c5e..d3be832 100644 --- a/tb/shinTest/testcase/environment.py +++ b/tb/shinTest/testcase/environment.py @@ -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, ] @@ -282,7 +283,7 @@ def __gen_slv_dev_predef(num): else: spi_type_str = "USING_IQSPI" - code_predef =("`define %s\n"%(spi_type_str, ) + code_predef =("`define %s \n"%(spi_type_str, ) +"`define DEV_NUM %d //slave num\n"%(num, ) +"`define ALL_DEV_NUM (`DEV_NUM + 1) // slave + master\n" +"`define SPI_CSN_NUM (`ALL_DEV_NUM * 4)\n\n" @@ -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) \ No newline at end of file diff --git a/tb/shinTest/testcase/rwregs.py b/tb/shinTest/testcase/rwregs.py index ab25ee2..0241c7b 100644 --- a/tb/shinTest/testcase/rwregs.py +++ b/tb/shinTest/testcase/rwregs.py @@ -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 diff --git a/tb/shinTest/testcase/sync.py b/tb/shinTest/testcase/sync.py index 0f533b6..6cf8f68 100644 --- a/tb/shinTest/testcase/sync.py +++ b/tb/shinTest/testcase/sync.py @@ -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) diff --git a/tb/shinTest/testcase_result/base_tc08_result.log b/tb/shinTest/testcase_result/base_tc08_result.log index e9b366e..dde9c5e 100644 --- a/tb/shinTest/testcase_result/base_tc08_result.log +++ b/tb/shinTest/testcase_result/base_tc08_result.log @@ -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 diff --git a/tb/shinTest/testcase_result/ebmmu_tc02_result.log b/tb/shinTest/testcase_result/ebmmu_tc02_result.log index d268780..168e801 100644 --- a/tb/shinTest/testcase_result/ebmmu_tc02_result.log +++ b/tb/shinTest/testcase_result/ebmmu_tc02_result.log @@ -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 diff --git a/tb/shinTest/testcase_result/ebmmu_tc03_result.log b/tb/shinTest/testcase_result/ebmmu_tc03_result.log index 542681b..05927fc 100644 --- a/tb/shinTest/testcase_result/ebmmu_tc03_result.log +++ b/tb/shinTest/testcase_result/ebmmu_tc03_result.log @@ -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