增加新的测试用例

This commit is contained in:
2025-07-29 00:46:33 +08:00
parent f6ea9410ad
commit 2f589c1244
2 changed files with 354 additions and 36 deletions

View File

@@ -6,37 +6,44 @@
`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_ERR_TEST
`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_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_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_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_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_EBMMU_TR1_TEST "generated/log/ebmmu_tr1_tc.log"
`define ENABLE_EBMMU_TR2_TEST "generated/log/ebmmu_tr2_tc.log"
`define ENABLE_EBMMU_TR3_TEST "generated/log/ebmmu_tr3_tc.log"
`define ENABLE_EBMMU_TR4_TEST "generated/log/ebmmu_tr4_tc.log"
`define ENABLE_EBMMU_TR5_TEST "generated/log/ebmmu_tr5_tc.log"
`define ENABLE_EBMMU_TR6_TEST "generated/log/ebmmu_tr6_tc.log"
`define ENABLE_EBMMU_TR7_TEST "generated/log/ebmmu_tr7_tc.log"
//`define ENABLE_EBMMU_TR1_TEST "generated/log/ebmmu_tr1_tc.log"
//`define ENABLE_EBMMU_TR2_TEST "generated/log/ebmmu_tr2_tc.log"
//`define ENABLE_EBMMU_TR3_TEST "generated/log/ebmmu_tr3_tc.log"
//`define ENABLE_EBMMU_TR4_TEST "generated/log/ebmmu_tr4_tc.log"
//`define ENABLE_EBMMU_TR5_TEST "generated/log/ebmmu_tr5_tc.log"
//`define ENABLE_EBMMU_TR6_TEST "generated/log/ebmmu_tr6_tc.log"
//`define ENABLE_EBMMU_TR7_TEST "generated/log/ebmmu_tr7_tc.log"
//`define ENABLE_EBMMU_TR8_TEST "generated/log/ebmmu_tr8_tc.log"
//`define ENABLE_EBMMU_TR9_TEST "generated/log/ebmmu_tr9_tc.log"
`define ENABLE_EBMMU_TR10_TEST "generated/log/ebmmu_tr10_tc.log"
//`define ENABLE_EBMMU_TR11_TEST "generated/log/ebmmu_tr11_tc.log"
//`define ENABLE_EBMMU_TR12_TEST "generated/log/ebmmu_tr12_tc.log"
//`define ENABLE_EBMMU_TR13_TEST "generated/log/ebmmu_tr13_tc.log"
//`define ENABLE_EBMMU_TR14_TEST "generated/log/ebmmu_tr14_tc.log"
`define ENABLE_WD1_TEST "generated/log/wd1_tc.log"
//`define ENABLE_WD1_TEST "generated/log/wd1_tc.log"
module ShinTopSpiTb(
@@ -1040,9 +1047,9 @@ initial begin
end
`endif
`ifdef ENABLE_DET_ERR_TEST
`ifdef ENABLE_DET_ERR1_TEST
begin:DET_ERR_TEST
`BEGIN_TESTCASE(`ENABLE_DET_ERR_TEST);
`BEGIN_TESTCASE(`ENABLE_DET_ERR1_TEST);
//嗅探
_t_start = $realtime;
#1000
@@ -1078,7 +1085,7 @@ initial begin
`SPI_TRANS( (16'h74), (`SPI_READ), (4), (`IF_IDX(2)) );
`SPI_TRANS( (16'h74), (`SPI_READ), (4), (`IF_IDX(3)) );
`SPI_TRANS( (16'h74), (`SPI_READ), (4), (`IF_IDX(4)) );
`END_TESTCASE(`ENABLE_DET_ERR_TEST);
`END_TESTCASE(`ENABLE_DET_ERR1_TEST);
end
`endif
@@ -1784,6 +1791,65 @@ initial begin
end
`endif
`ifdef ENABLE_EBMMU_TR8_TEST
begin:EBMMU_TR8_TEST
`BEGIN_TESTCASE(`ENABLE_EBMMU_TR8_TEST);
_t_start = $realtime;
#1000
$fdisplay(spidata_file, "\n\n测试用例 ebmmu 测试用8");
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
`include "ebmmu_tc8_settings.vh"
`include "ebmmu_tc8_write.vh"
_t_end = $realtime;
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
`END_TESTCASE(`ENABLE_EBMMU_TR8_TEST);
end
`endif
`ifdef ENABLE_EBMMU_TR9_TEST
begin:EBMMU_TR9_TEST
`BEGIN_TESTCASE(`ENABLE_EBMMU_TR9_TEST);
_t_start = $realtime;
#1000
$fdisplay(spidata_file, "\n\n测试用例 ebmmu 测试用9");
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
`include "ebmmu_tc9_settings.vh"
`include "ebmmu_tc9_write.vh"
_t_end = $realtime;
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
`END_TESTCASE(`ENABLE_EBMMU_TR9_TEST);
end
`endif
`ifdef ENABLE_EBMMU_TR10_TEST
begin:EBMMU_TR10_TEST
`BEGIN_TESTCASE(`ENABLE_EBMMU_TR10_TEST);
_t_start = $realtime;
#1000
$fdisplay(spidata_file, "\n\n测试用例 ebmmu 测试用10");
$display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp);
`include "ebmmu_tc10_settings.vh"
`include "ebmmu_tc10_write.vh"
`include "ebmmu_tc10b_write.vh"
_t_end = $realtime;
$fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start);
`END_TESTCASE(`ENABLE_EBMMU_TR10_TEST);
end
`endif
`ifdef ENABLE_WD1_TEST
begin:WD1_TEST
`BEGIN_TESTCASE(`ENABLE_WD1_TEST);

View File

@@ -318,7 +318,8 @@ if __name__ == '__main__':
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>嗅探数据包
#>>>>>>嗅探数据包1正常的嗅探数据包
genPkt.clean()
genPkt.setPktType(1)
gen_file_def = "detect_pkt"
sm_idx = 0
@@ -331,7 +332,7 @@ if __name__ == '__main__':
#-------------------------------------------------------------------------
#>>>>>>嗅探数据包2
#>>>>>>嗅探数据包2,正常的嗅探数据包
genPkt.clean()
genPkt.setPktType(1)
gen_file_def = "detect_pkt2"
@@ -431,7 +432,7 @@ if __name__ == '__main__':
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>普通数据包 sm1
#>>>>>>普通数据包 sm12个读
genPkt.clean()
genPkt.setPktType(0)
@@ -454,7 +455,7 @@ if __name__ == '__main__':
#-------------------------------------------------------------------------
#>>>>>>普通数据包 sm2
#>>>>>>普通数据包 sm2,广播读
genPkt.clean()
genPkt.setPktType(0)
@@ -476,7 +477,7 @@ if __name__ == '__main__':
#-------------------------------------------------------------------------
#>>>>>>交换数据 SMx
#>>>>>>交换数据 SMx 两个广播写
genPkt.clean()
genPkt.setPktType(0)
@@ -503,7 +504,7 @@ if __name__ == '__main__':
#-------------------------------------------------------------------------
#>>>>>>普通数据包
#>>>>>>普通数据包一个读、一个写增加5个随机包需要在文件里确认)
genPkt.clean()
genPkt.setPktType(0)
@@ -528,6 +529,7 @@ if __name__ == '__main__':
+genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>普通数据包0,用来操作sync
genPkt.clean()
@@ -679,7 +681,7 @@ if __name__ == '__main__':
#-------------------------------------------------------------------------
#>>>>>>设置同步信号的数据包
#>>>>>>设置同步信号的数据包,在波形中确认定时的有效性
genPkt.clean()
genPkt.setPktType(0)
@@ -1029,7 +1031,7 @@ if __name__ == '__main__':
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU
#>>>>>>设置EB-MMU 1
genPkt.clean()
genPkt.setPktType(0)
@@ -1160,7 +1162,7 @@ if __name__ == '__main__':
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU
#>>>>>>设置EB-MMU 2
genPkt.clean()
genPkt.setPktType(0)
@@ -1537,7 +1539,6 @@ if __name__ == '__main__':
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#-------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例6
genPkt.clean()
genPkt.setPktType(0)
@@ -1801,6 +1802,257 @@ if __name__ == '__main__':
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例8广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
#print(hex(addr))
data[0] = (addr & 0xff)
data[1] = (addr >> 8) & 0xff
data[2] = 0x00
data[3] = 0x10
data[4] = 0x00
data[5] = 0x08
data[6] = 0x80
data[7] = 0x00
data[8] = 0x01
data[9] = 0x01
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x80
data[1] = 0x00
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc8_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>用EB-MMU方式读取EB-MMU设置, 8
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [1,] * 0x80
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x80, data)
gen_file_def = "ebmmu_tc8_write"
sm_idx = 0
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x80)
+genSlvSMReadData(2, 0, 0x80)
+genSlvSMReadData(3, 0, 0x80)
+genSlvSMReadData(4, 0, 0x80)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例9广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
#print(hex(addr))
data[0] = (addr & 0xff)
data[1] = (addr >> 8) & 0xff
data[2] = 0x00
data[3] = 0x10
data[4] = 0x00
data[5] = 0x08
data[6] = 0x00
data[7] = 0x01
data[8] = 0x02
data[9] = 0x01
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc9_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>用EB-MMU方式读取EB-MMU设置, 9
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0xa5,] * 0x100
data[-1] = 0x5a
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc9_write"
sm_idx = 0
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例10广播写检查权限
genPkt.clean()
genPkt.setPktType(0)
addr_off = 0x0
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr = addr_off + 0x0
#print(hex(addr))
data[0] = (addr & 0xff)
data[1] = (addr >> 8) & 0xff
data[2] = 0x00
data[3] = 0x10
data[4] = 0x00
data[5] = 0x08
data[6] = 0x00
data[7] = 0x01
data[8] = 0x02
data[9] = 0x01
genPkt.addSubPkt(0x1, 0, 0x0200, 0xe, 80, data)
data = [0,] * 2
data[0] = 0x00
data[1] = 0x01
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
gen_file_def = "ebmmu_tc10_settings"
sm_idx = 0
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))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>用EB-MMU方式读取EB-MMU设置, 10
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0xc3,] * 0x100
data[-1] = 0x3c
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc10_write"
sm_idx = 0
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)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>用EB-MMU方式读取EB-MMU设置, 10
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0x81,] * 0x100
data[-1] = 0x18
genPkt.addSubPkt(0x1000, 2, addr_off, 0x1, 0x100, data)
gen_file_def = "ebmmu_tc10b_write"
sm_idx = 0
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(1, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(2, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(3, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
+genSlvSMReadData(4, 0, 0x100)
)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#--------------------------------------------------------------------------
#>>>>>> 测试用例1 看门狗测试