初步实现python生成测试用例,并挂接.v文件,无需手工写.v文件

This commit is contained in:
2025-07-30 22:59:06 +08:00
parent 2968b6d546
commit 9cf5346b3d
11 changed files with 359 additions and 24 deletions

View File

@@ -42,7 +42,7 @@
//`define ENABLE_EBMMU_TR12_TEST "generated/log/ebmmu_tr12_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_TR13_TEST "generated/log/ebmmu_tr13_tc.log"
//`define ENABLE_EBMMU_TR14_TEST "generated/log/ebmmu_tr14_tc.log" //`define ENABLE_EBMMU_TR14_TEST "generated/log/ebmmu_tr14_tc.log"
`define ENABLE_EBMMU_TR15_TEST "generated/log/ebmmu_tr15_tc.log" //`define ENABLE_EBMMU_TR15_TEST "generated/log/ebmmu_tr15_tc.log"
//`define ENABLE_EBMMU_TR16_TEST "generated/log/ebmmu_tr16_tc.log" //`define ENABLE_EBMMU_TR16_TEST "generated/log/ebmmu_tr16_tc.log"
//`define ENABLE_EBMMU_TR17_TEST "generated/log/ebmmu_tr17_tc.log" //`define ENABLE_EBMMU_TR17_TEST "generated/log/ebmmu_tr17_tc.log"
//`define ENABLE_EBMMU_TR18_TEST "generated/log/ebmmu_tr18_tc.log" //`define ENABLE_EBMMU_TR18_TEST "generated/log/ebmmu_tr18_tc.log"
@@ -1976,6 +1976,8 @@ initial begin
end end
`endif `endif
`include "tc_runlist.vh"
#1000000 #1000000
$display("Testcase Finished! Time Out !!!"); $display("Testcase Finished! Time Out !!!");
$fclose(spidata_file); $fclose(spidata_file);

View File

@@ -38,14 +38,16 @@ if __name__ == '__main__':
ebmmu.tc6() ebmmu.tc6()
ebmmu.tc7() ebmmu.tc7()
ebmmu.tc8() ebmmu.tc8()
ebmmu.tc9()
ebmmu.tc10() ebmmu.tc10()
ebmmu.tc11() ebmmu.tc11()
ebmmu.tc12() ebmmu.tc12()
ebmmu.tc13() ebmmu.tc13()
ebmmu.tc14() ebmmu.tc14()
ebmmu.tc15() ebmmu.tc15()
add_tc_2_runlist(ebmmu.tc16())
watchdog.tc1() watchdog.tc1()
gen_tc_runlist()

View File

@@ -56,7 +56,7 @@ class GenPkt(object):
self.pkt_sub_pkt = self.pkt_sub_pkt + 1 self.pkt_sub_pkt = self.pkt_sub_pkt + 1
self.sub_pkt.append([0, dev_idx, ptype, addr, cmd, len, data]) self.sub_pkt.append([0, dev_idx, ptype, addr, cmd, len, data])
def gen(self, filename="pkt_verilog_test.v", filetype=0): def gen(self, filename="pkt_verilog_test.v", filetype=0, appendgen=False, gen_name=None):
pkt_len = 4 pkt_len = 4
for sp in self.sub_pkt: for sp in self.sub_pkt:
if sp[0] != 0: if sp[0] != 0:
@@ -155,13 +155,21 @@ class GenPkt(object):
i = i + 1 i = i + 1
#print("pkt_len:%d, data_len:%d"%(pkt_len, pkt_len - 4)) #print("pkt_len:%d, data_len:%d"%(pkt_len, pkt_len - 4))
f = open(filename, "wt+") open_mode = "wt+"
if appendgen:
open_mode = "at"
f = open(filename, open_mode)
if filetype == 1: if filetype == 1:
for md in self.sub_pkt: for md in self.sub_pkt:
if md[0] == 1: if md[0] == 1:
f.write("%s\n"%(md[1],)) f.write("%s\n"%(md[1],))
define_str = "`define DEF_" define_str = "`define DEF_"
if appendgen and (gen_name == None):
print("Error, gen_name not define.")
raise "Error, gen_name not define."
if not appendgen:
pos1 = filename.rfind("/") pos1 = filename.rfind("/")
if (pos1 < -1): if (pos1 < -1):
pos1 = 0 pos1 = 0
@@ -173,6 +181,9 @@ class GenPkt(object):
define_str = define_str + filename[pos1:] define_str = define_str + filename[pos1:]
else: else:
define_str = define_str + filename[pos1:pos2] define_str = define_str + filename[pos1:pos2]
else:
define_str = define_str + gen_name
f.write(define_str + "_len \t%d\n"%(pkt_len)) f.write(define_str + "_len \t%d\n"%(pkt_len))
f.write(define_str + "_sm(array) \\\n\tarray``[%d]=8'h%02X;\\\n\tarray``[%d]=8'h%02X;\n"%( f.write(define_str + "_sm(array) \\\n\tarray``[%d]=8'h%02X;\\\n\tarray``[%d]=8'h%02X;\n"%(
@@ -330,3 +341,45 @@ def setting_ebmmu_regs(regmap, index, vaddr, raddr, size, p, enable):
regmap[index * 0xa + 8] = p & 0x3 regmap[index * 0xa + 8] = p & 0x3
regmap[index * 0xa + 9] = enable & 0x1 regmap[index * 0xa + 9] = enable & 0x1
__run_list=list()
__pre_include_path='./generated/shin'
__pre_gen_log_path='./generated/log'
def add_tc_2_runlist(filename):
code_f = filename + '.vh'
if code_f in __run_list:
print("Error, Testcase duplicate name")
raise "DUPLICATE NAME"
__run_list.append(code_f)
def gen_tc_runlist():
runlist_file = __pre_include_path + '/tc_runlist.vh'
f = open(runlist_file, "wt+")
for tc in __run_list:
f.write(f'\t`include "{tc}"\n')
f.close()
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'''\
+'''\t\t_t_start = $realtime;\n'''\
+'''\t\t#1000\n'''\
+f'''\t\t$fdisplay(spidata_file,"\\n\\n测试用例{upper_name}");\n'''
if len(des) > 0:
code_str = code_str + '''\t\t$fdisplay(spidata_file,"''' + '-' * 80 + '''");\n'''
code_str = code_str + f'''\t\t$fdisplay(spidata_file,"{des}");\n'''
code_str = code_str + '''\t\t$fdisplay(spidata_file,"''' + '-' * 80 + '''");\n'''
return code_str
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'''\
+'''\tend\n'''

View File

@@ -25,6 +25,9 @@ def tc1():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2(): def tc2():
genPkt = GenPkt() genPkt = GenPkt()
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@@ -48,6 +51,9 @@ def tc2():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc3(): def tc3():
genPkt = GenPkt() genPkt = GenPkt()
@@ -77,6 +83,9 @@ def tc3():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc4(): def tc4():
genPkt = GenPkt() genPkt = GenPkt()
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@@ -105,6 +114,7 @@ def tc4():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc5(): def tc5():
genPkt = GenPkt() genPkt = GenPkt()
@@ -176,6 +186,8 @@ def tc5():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc6(): def tc6():
genPkt = GenPkt() genPkt = GenPkt()
@@ -209,6 +221,9 @@ def tc6():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc7(): def tc7():
genPkt = GenPkt() genPkt = GenPkt()
@@ -235,6 +250,9 @@ def tc7():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc8(): def tc8():
genPkt = GenPkt() genPkt = GenPkt()
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
@@ -258,3 +276,5 @@ def tc8():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def

View File

@@ -29,6 +29,8 @@ def tc1():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2(): def tc2():
@@ -58,6 +60,8 @@ def tc2():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc3(): def tc3():
genPkt = GenPkt() genPkt = GenPkt()
@@ -81,3 +85,5 @@ def tc3():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def

View File

@@ -14,6 +14,7 @@ def tc1():
+genTrgTransPktCode(gen_file_def, sm_idx) +genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2(): def tc2():
genPkt = GenPkt() genPkt = GenPkt()
@@ -30,3 +31,6 @@ def tc2():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def

View File

@@ -79,6 +79,9 @@ def tc1():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2(): def tc2():
genPkt = GenPkt() genPkt = GenPkt()
@@ -157,6 +160,8 @@ def tc2():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc3(): def tc3():
@@ -215,6 +220,8 @@ def tc3():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc4(): def tc4():
genPkt = GenPkt() genPkt = GenPkt()
@@ -280,6 +287,8 @@ def tc4():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc5(): def tc5():
@@ -304,6 +313,8 @@ def tc5():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc6(): def tc6():
genPkt = GenPkt() genPkt = GenPkt()
@@ -385,6 +396,8 @@ def tc6():
+genSlvSMReadData(4, 0, 0x80)) +genSlvSMReadData(4, 0, 0x80))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc7(): def tc7():
genPkt = GenPkt() genPkt = GenPkt()
@@ -468,6 +481,8 @@ def tc7():
+genSlvSMReadData(4, 0, 0x80)) +genSlvSMReadData(4, 0, 0x80))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc8(): def tc8():
genPkt = GenPkt() genPkt = GenPkt()
@@ -528,6 +543,8 @@ def tc8():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc9(): def tc9():
@@ -590,6 +607,8 @@ def tc9():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc10(): def tc10():
@@ -680,6 +699,8 @@ def tc10():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc11(): def tc11():
@@ -754,13 +775,22 @@ def tc11():
genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, 0x100, data0) genPkt.addBeforeExc( genIFRwDataCode(1, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(1, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data1) + genIFRwDataCode(2, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data0) + genIFRwDataCode(3, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data1) + genIFRwDataCode(4, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data0)) + genIFRwDataCode(1, 0x300, False, 0x20)
+ genIFRwDataCode(2, 0x300, False, 0x20)
+ genIFRwDataCode(3, 0x300, False, 0x20)
+ genIFRwDataCode(4, 0x300, False, 0x20)
+ genIFRwDataCode(1, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(2, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(3, 0x1000, True, 0x100, data1)
+ genIFRwDataCode(4, 0x1000, True, 0x100, data0)
+ genIFRwDataCode(1, 0x300, False, 0x20)
+ genIFRwDataCode(2, 0x300, False, 0x20)
+ genIFRwDataCode(3, 0x300, False, 0x20)
+ genIFRwDataCode(4, 0x300, False, 0x20)
)
#subPkt参数索引、索引类型、地址、命令、长度、数据 #subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0, ] * 0x100 * 4 data = [0, ] * 0x100 * 4
@@ -804,6 +834,8 @@ def tc11():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc12(): def tc12():
genPkt = GenPkt() genPkt = GenPkt()
@@ -1004,6 +1036,8 @@ def tc12():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc13(): def tc13():
@@ -1209,6 +1243,8 @@ def tc13():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc14(): def tc14():
genPkt = GenPkt() genPkt = GenPkt()
@@ -1382,6 +1418,8 @@ def tc14():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc15(): def tc15():
genPkt = GenPkt() genPkt = GenPkt()
@@ -1571,3 +1609,198 @@ def tc15():
) )
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc16():
genPkt = GenPkt()
#--------------------------------------------------------------------------
#>>>>>>设置EB-MMU,测试用例15检查权限
genPkt.clean()
genPkt.setPktType(0)
addr = 0x10000000
addr_off = 0x0
sm_size = 16
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x1, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x2, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x3, 0, 0x0200, 0x1, 80, data)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 256
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 1, taddr + sm_size / 2, 0x0800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 2, taddr, 0x1800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 3, taddr + sm_size / 2, 0x1800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 4, taddr, 0x2800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 5, taddr + sm_size / 2, 0x2800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
addr_off = addr_off + sm_size
taddr = addr + addr_off
setting_ebmmu_regs(data, 6, taddr, 0x3800, sm_size / 2, 0x2, 0x1)
setting_ebmmu_regs(data, 7, taddr + sm_size / 2, 0x3800 + sm_size / 2, sm_size / 2, 0x2, 0x1)
genPkt.addSubPkt(0x4, 0, 0x0200, 0x1, 80, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x302, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x30a, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x312, 0xe, 2, data)
data = [0,] * 2
data[0] = (sm_size >> 0) & 0xff
data[1] = (sm_size >> 8) & 0xff
genPkt.addSubPkt(0x0, 0, 0x31a, 0xe, 2, data)
gen_file_def = "ebmmu_tc16"
sm_idx = 0
tc_des = "一个非常牛叉的测试用例"
genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des))
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设置, 15
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [(i & 0xff) for i in range(sm_size * 16)]
gen_file_def_ap = "ebmmu_tc16_rw"
sm_idx = 0
genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data)
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)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genSlvSMReadData(1, 0, sm_size)
+genSlvSMReadData(1, 2, sm_size)
+genSlvSMReadData(1, 4, sm_size)
+genSlvSMReadData(1, 6, sm_size)
+genSlvSMReadData(2, 0, sm_size)
+genSlvSMReadData(2, 2, sm_size)
+genSlvSMReadData(2, 4, sm_size)
+genSlvSMReadData(2, 6, sm_size)
+genSlvSMReadData(3, 0, sm_size)
+genSlvSMReadData(3, 2, sm_size)
+genSlvSMReadData(3, 4, sm_size)
+genSlvSMReadData(3, 6, sm_size)
+genSlvSMReadData(4, 0, sm_size)
+genSlvSMReadData(4, 2, sm_size)
+genSlvSMReadData(4, 4, sm_size)
+genSlvSMReadData(4, 6, sm_size)
+genIFRwDataCode(1, 0x300, False, 0x20)
+genIFRwDataCode(2, 0x300, False, 0x20)
+genIFRwDataCode(3, 0x300, False, 0x20)
+genIFRwDataCode(4, 0x300, False, 0x20)
+genTcEndFrameCode(gen_file_def))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def

View File

@@ -31,6 +31,8 @@ def tc1():
+genTrgTransPktCode(gen_file_def, sm_idx) +genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2(): def tc2():
random.seed(int(time.time() * 1000)) random.seed(int(time.time() * 1000))
@@ -62,6 +64,8 @@ def tc2():
+genTrgTransPktCode(gen_file_def, sm_idx) +genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc3(): def tc3():
random.seed(int(time.time() * 1000)) random.seed(int(time.time() * 1000))
@@ -83,6 +87,8 @@ def tc3():
+genTrgTransPktCode(gen_file_def, sm_idx) +genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc4(): def tc4():
genPkt = GenPkt() genPkt = GenPkt()
@@ -99,3 +105,4 @@ def tc4():
+genTrgTransPktCode(gen_file_def, sm_idx) +genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def

View File

@@ -19,3 +19,4 @@ def tc1():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
print("it's a test") print("it's a test")
return gen_file_def

View File

@@ -25,6 +25,7 @@ def tc1():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc2(): def tc2():
@@ -73,6 +74,8 @@ def tc2():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def
def tc3(): def tc3():
@@ -166,6 +169,8 @@ def tc3():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1)
return gen_file_def
def tc4(): def tc4():
@@ -281,3 +286,4 @@ def tc4():
+genReadAckPktCode(gen_file_def, sm_idx)) +genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1)
return gen_file_def

View File

@@ -57,3 +57,4 @@ def tc1():
+genIFRwDataCode(1, 0x400, False, 0x04)) +genIFRwDataCode(1, 0x400, False, 0x04))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
return gen_file_def