保存测试用例

This commit is contained in:
2025-08-01 11:33:21 +08:00
parent 5eeeb98b58
commit f56ef8e077
5 changed files with 130 additions and 44 deletions

View File

@@ -26,7 +26,7 @@
//`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_RESET_TEST "generated/log/reset_tc.log"
//`define ENABLE_WD1_TEST "generated/log/wd1_tc.log"
@@ -1526,15 +1526,6 @@ initial begin
txBuf[0+3] = 8'h02;
`SPI_TRANS( (16'h00), (`SPI_WRITE), (1), (`IF_IDX(2)) );
`ifdef ENABLE_ENCRYPTION
$fdisplay(spidata_file, "-配置加密");
`SETTING_ENCRYPTION;
spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(0)) );
spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(1)) );
spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(2)) );
spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(3)) );
spi_trans( (16'h50), (`SPI_WRITE), (17), (`IF_IDX(4)) );
`endif
#1000
$fdisplay(spidata_file, "\n广播读使用SM2");

View File

@@ -30,11 +30,12 @@ if __name__ == '__main__':
sync.tc3()
sync.tc4()
#add_tc_2_runlist(ebmmu.tc1())
#add_tc_2_runlist(ebmmu.tc2())
#add_tc_2_runlist(ebmmu.tc3())
#add_tc_2_runlist(ebmmu.tc4())
ebmmu.tc5()
'''
add_tc_2_runlist(ebmmu.tc1())
add_tc_2_runlist(ebmmu.tc2())
add_tc_2_runlist(ebmmu.tc3())
add_tc_2_runlist(ebmmu.tc4())
add_tc_2_runlist(ebmmu.tc5())
add_tc_2_runlist(ebmmu.tc6())
add_tc_2_runlist(ebmmu.tc7())
add_tc_2_runlist(ebmmu.tc8())
@@ -44,8 +45,9 @@ if __name__ == '__main__':
add_tc_2_runlist(ebmmu.tc12())
add_tc_2_runlist(ebmmu.tc13())
add_tc_2_runlist(ebmmu.tc14())
#add_tc_2_runlist(ebmmu.tc15())
#add_tc_2_runlist(ebmmu.tc16())
add_tc_2_runlist(ebmmu.tc15())
add_tc_2_runlist(ebmmu.tc16())
'''
watchdog.tc1()

View File

@@ -365,7 +365,7 @@ def gen_tc_runlist():
def genTcStartFrameCode(tcname, des):
upper_name = tcname.upper()
code_str = f'''\tbegin:{upper_name}_TESTCASE\n'''\
+f'''\t\t`BEGIN_TESTCASE("{__pre_gen_log_path}/{tcname}_tc.log");\n'''\
+f'''\t\t`BEGIN_TESTCASE("{__pre_gen_log_path}/{tcname}_result.log");\n'''\
+'''\t\t_t_start = $realtime;\n'''\
+'''\t\t#1000\n'''\
+f'''\t\t$fdisplay(spidata_file,"\\n\\n测试用例{upper_name}");\n'''
@@ -380,6 +380,6 @@ def genTcEndFrameCode(tcname):
upper_name = tcname.upper()
return f'''\t\t_t_end = $realtime;\n'''\
+'''\t\t$fdisplay(spidata_file, "该测试用例运行时间:%t\\n", _t_end - _t_start);\n'''\
+f'''\t\t`END_TESTCASE("{__pre_gen_log_path}/{tcname}_tc.log");\n'''\
+f'''\t\t`END_TESTCASE("{__pre_gen_log_path}/{tcname}_result.log");\n'''\
+'''\tend\n'''

View File

@@ -267,6 +267,40 @@ def tc8():
genPkt.addSubPkt(0x0, 0, random.randint(0, 65535), 0xb, 2, data)
gen_file_def = "set_addr_pkt"
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)
return gen_file_def
def tc9():
genPkt = GenPkt()
gen_file_def = "base_tc09"
sm_idx = 0
tc_des = "测试8个ebmmu全配置下运行每两个ebmmu对应一个sm。每个ebmmu必须对齐、足长的写入\\n" \
+ "对应的sm才能正常工作。两次写入数据复位设备1的SM1SM1状态复原不能读取到有效的数据。\\n"\
+ "测试用例能成功运行完毕除设备1的SM1其余的SMx都能获得正确的数据。\\n\\n" \
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
#-------------------------------------------------------------------------
#>>>>>>设置顺序地址
genPkt.clean()
genPkt.setPktType(0)
data = bytearray(b"\0" * 2)
data[0] = 0x3f
data[1] = 0xff
#subPkt参数索引、索引类型、地址、命令、长度、数据
genPkt.addSubPkt(0x0, 0, random.randint(0, 65535), 0xb, 2, data)
gen_file_def = "set_addr_pkt"
sm_idx = 0

View File

@@ -5,8 +5,8 @@ def tc1():
gen_file_def = "ebmmu_tc01"
sm_idx = 0
tc_des = "每个从站测试1个ebmmu[0]共4个mmu从0x1000_0000位置向后对齐每个设备占10个字节\\n" \
+ "使用1包数据将4个设备的数据一次性读上来。\\n"\
tc_des = "每个从站都使用ebmmu[0]共4个mmu从0x1000_0000位置向后对齐每个设备占10个字节\\n" \
+ "映射0x200~0x20a中间无字节空洞。主站使用1包数据将4个设备的数据一次性读上来。\\n"\
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
#-------------------------------------------------------------------------
@@ -54,7 +54,7 @@ def tc1():
genPkt.addSubPkt(0x03, 0, 0x0200, 0x0, 10, data)
genPkt.addSubPkt(0x04, 0, 0x0200, 0x0, 10, data)
gen_file_def_ap = "ebmmu_tc01_rw1"
gen_file_def_ap = gen_file_def + "_rw1"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
@@ -73,7 +73,7 @@ def tc1():
genPkt.addSubPkt(0x1000, 2, 0x0000, 0x0, 40, data)
gen_file_def_ap = "ebmmu_tc1_rw2"
gen_file_def_ap = gen_file_def + "_rw2"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
@@ -93,8 +93,8 @@ def tc2():
gen_file_def = "ebmmu_tc02"
sm_idx = 0
tc_des = "每个从站测试1个ebmmu[1]共4个mmu从0x2000_0000位置向后对齐每个设备占16个字节\\n" \
+ "使用1包数据将4个设备的数据一次性读上来。并采用顺序读出一样的数据,以做对比。\\n"\
tc_des = "每个从站都使用ebmmu[1]共4个mmu从0x2000_0000位置向后对齐每个设备占16个字节\\n" \
+ "映射0x00~0x10中间无字节空洞。主站使用1包数据将4个设备的数据一次性读上来。\\n"\
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
#-------------------------------------------------------------------------
@@ -142,7 +142,7 @@ def tc2():
genPkt.addSubPkt(0x03, 0, 0x0000, 0x0, 16, data)
genPkt.addSubPkt(0x04, 0, 0x0000, 0x0, 16, data)
gen_file_def_ap = "ebmmu_tc02_rw01"
gen_file_def_ap = gen_file_def + "_rw1"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
@@ -161,7 +161,7 @@ def tc2():
genPkt.addSubPkt(0x2000, 2, 0x0000, 0x0, 0x40, data)
gen_file_def_ap = "ebmmu_tc02_rw02"
gen_file_def_ap = gen_file_def + "_rw2"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
@@ -180,8 +180,9 @@ def tc3():
gen_file_def = "ebmmu_tc03"
sm_idx = 0
tc_des = "每个从站测试1个ebmmu[2]共4个mmu从0x2000_0000位置向后对齐每个设备占12个字节\\n" \
+ "使用1包数据将4个设备的数据一次性读上来。\\n"\
tc_des = "每个从站都使用ebmmu[2]共4个mmu从0x1000_0028位置向后对齐每个设备占12个字节\\n" \
+ "映射0x00~0x0c, 中间无字节空洞。使用1包数据将4个设备的数据一次性读上来。\\n"\
+ "注意该测试用例读取时是从0x1000_0000开始读取的\\n"\
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
#-------------------------------------------------------------------------
@@ -189,6 +190,24 @@ def tc3():
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000000, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000000a, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000014, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 10, data)
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e, 0x0200, 0x0a, 0x3, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 10, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x1000001e+0xa, 0x0000, 0x0c, 0x1, 0x1)
@@ -245,8 +264,8 @@ def tc4():
gen_file_def = "ebmmu_tc04"
sm_idx = 0
tc_des = "每个从站测试1个ebmmu[2]共4个mmu从0x2000_0000位置向后对齐,每个设备占12个字节。\\n" \
+ "使用1包数据将4个设备的数据一次性读上来。\\n"\
tc_des = "每个从站使用ebmmu[3]共4个mmu从0x1000_0058位置向后对齐,\\n" \
+ "分别占用不同大小的空间。使用1包数据将4个设备的数据一次性读上来。\\n"\
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
#-------------------------------------------------------------------------
@@ -284,7 +303,6 @@ def tc4():
genPkt.addSubPkt(0x4, 0, 0x021e, 0x1, 10, data)
#gen_file_def = "ebmmu_tc4_settings"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
@@ -303,7 +321,7 @@ def tc4():
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
gen_file_def_ap = "ebmmu_tc4_rw"
gen_file_def_ap = gen_file_def + "_rw"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
@@ -321,15 +339,55 @@ def tc4():
def tc5():
genPkt = GenPkt()
'''
gen_file_def = "ebmmu_tc05"
sm_idx = 0
tc_des = "每个从站测试1个ebmmu[2]共4个mmu从0x2000_0000位置向后对齐,每个设备占12个字节。\\n" \
+ "使用1包数据将4个设备的数据一次性读上来。\\n"\
+ "检查内容ebmmu工作状态、回包工作计数、SMx的状态、中断状态、统计信息、相关时序"
tc_des = "每个从站使用ebmmu[3]共4个mmu从0x1000_0058位置向后对齐,\\n" \
+ "分别占用不同大小的空间。使用1包数据将4个设备的数据一次性读上来。由于从站没有数据,读上来全是随机数据。\\n"
genPkt.clean()
genPkt.setPktType(0)
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
'''
+ genSlvSMWriteData(1, 1, 0x80)
+ genSlvSMWriteData(2, 3, 0x98)
+ genSlvSMWriteData(3, 5, 0x81)
+ genSlvSMWriteData(4, 7, 0x8c))
'''
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 30
setting_ebmmu_regs(data, 0, 0x10000058, 0x1000, 0x80, 0x1, 0x1)
genPkt.addSubPkt(0x1, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x2000, 0x98, 0x1, 0x1)
genPkt.addSubPkt(0x2, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80 + 0x98
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x3000, 0x81, 0x1, 0x1)
genPkt.addSubPkt(0x3, 0, 0x021e, 0x1, 10, data)
data = [0,] * 30
addr = 0x58 + 0x80 + 0x98 + 0x81
setting_ebmmu_regs(data, 0, 0x10000000+addr, 0x4000, 0x8c, 0x1, 0x1)
genPkt.addSubPkt(0x4, 0, 0x021e, 0x1, 10, data)
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设置 5
@@ -341,15 +399,16 @@ def tc5():
genPkt.addSubPkt(0x1000, 2, 0x0058, 0x0, 0x80+0x98+0x81+0x8c, data)
gen_file_def = "ebmmu_tc5_read"
gen_file_def_ap = gen_file_def + "_rw"
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.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx)
+genWriteTransPktCode(gen_file_def_ap, sm_idx)
+genTrgTransPktCode(gen_file_def_ap, sm_idx)
+genReadAckPktCode(gen_file_def_ap, sm_idx)
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def