初步实现python生成测试用例,并挂接.v文件,无需手工写.v文件
This commit is contained in:
@@ -42,7 +42,7 @@
|
||||
//`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_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_TR17_TEST "generated/log/ebmmu_tr17_tc.log"
|
||||
//`define ENABLE_EBMMU_TR18_TEST "generated/log/ebmmu_tr18_tc.log"
|
||||
@@ -1976,6 +1976,8 @@ initial begin
|
||||
end
|
||||
`endif
|
||||
|
||||
`include "tc_runlist.vh"
|
||||
|
||||
#1000000
|
||||
$display("Testcase Finished! Time Out !!!");
|
||||
$fclose(spidata_file);
|
||||
|
||||
@@ -38,14 +38,16 @@ if __name__ == '__main__':
|
||||
ebmmu.tc6()
|
||||
ebmmu.tc7()
|
||||
ebmmu.tc8()
|
||||
ebmmu.tc9()
|
||||
ebmmu.tc10()
|
||||
ebmmu.tc11()
|
||||
ebmmu.tc12()
|
||||
ebmmu.tc13()
|
||||
ebmmu.tc14()
|
||||
ebmmu.tc15()
|
||||
add_tc_2_runlist(ebmmu.tc16())
|
||||
|
||||
watchdog.tc1()
|
||||
|
||||
|
||||
gen_tc_runlist()
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ class GenPkt(object):
|
||||
self.pkt_sub_pkt = self.pkt_sub_pkt + 1
|
||||
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
|
||||
for sp in self.sub_pkt:
|
||||
if sp[0] != 0:
|
||||
@@ -155,24 +155,35 @@ class GenPkt(object):
|
||||
i = i + 1
|
||||
|
||||
#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:
|
||||
for md in self.sub_pkt:
|
||||
if md[0] == 1:
|
||||
f.write("%s\n"%(md[1],))
|
||||
define_str = "`define DEF_"
|
||||
|
||||
pos1 = filename.rfind("/")
|
||||
if (pos1 < -1):
|
||||
pos1 = 0
|
||||
else:
|
||||
pos1 = pos1 + 1
|
||||
if appendgen and (gen_name == None):
|
||||
print("Error, gen_name not define.")
|
||||
raise "Error, gen_name not define."
|
||||
|
||||
pos2 = filename.rfind(".")
|
||||
if (pos1 > pos2):
|
||||
define_str = define_str + filename[pos1:]
|
||||
if not appendgen:
|
||||
pos1 = filename.rfind("/")
|
||||
if (pos1 < -1):
|
||||
pos1 = 0
|
||||
else:
|
||||
pos1 = pos1 + 1
|
||||
|
||||
pos2 = filename.rfind(".")
|
||||
if (pos1 > pos2):
|
||||
define_str = define_str + filename[pos1:]
|
||||
else:
|
||||
define_str = define_str + filename[pos1:pos2]
|
||||
else:
|
||||
define_str = define_str + filename[pos1:pos2]
|
||||
define_str = define_str + gen_name
|
||||
|
||||
|
||||
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"%(
|
||||
@@ -330,3 +341,45 @@ def setting_ebmmu_regs(regmap, index, vaddr, raddr, size, p, enable):
|
||||
|
||||
regmap[index * 0xa + 8] = p & 0x3
|
||||
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'''
|
||||
|
||||
@@ -25,6 +25,9 @@ def tc1():
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc2():
|
||||
genPkt = GenPkt()
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -48,6 +51,9 @@ def tc2():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc3():
|
||||
genPkt = GenPkt()
|
||||
@@ -77,6 +83,9 @@ def tc3():
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc4():
|
||||
genPkt = GenPkt()
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -105,6 +114,7 @@ def tc4():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
def tc5():
|
||||
genPkt = GenPkt()
|
||||
@@ -176,6 +186,8 @@ def tc5():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc6():
|
||||
genPkt = GenPkt()
|
||||
@@ -209,6 +221,9 @@ def tc6():
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc7():
|
||||
genPkt = GenPkt()
|
||||
@@ -235,6 +250,9 @@ def tc7():
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc8():
|
||||
genPkt = GenPkt()
|
||||
#-------------------------------------------------------------------------
|
||||
@@ -258,3 +276,5 @@ def tc8():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
@@ -29,6 +29,8 @@ def tc1():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc2():
|
||||
@@ -58,6 +60,8 @@ def tc2():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc3():
|
||||
genPkt = GenPkt()
|
||||
@@ -81,3 +85,5 @@ def tc3():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ def tc1():
|
||||
+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 tc2():
|
||||
genPkt = GenPkt()
|
||||
@@ -30,3 +31,6 @@ def tc2():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
@@ -79,6 +79,9 @@ def tc1():
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc2():
|
||||
genPkt = GenPkt()
|
||||
|
||||
@@ -157,6 +160,8 @@ def tc2():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc3():
|
||||
@@ -215,6 +220,8 @@ def tc3():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc4():
|
||||
genPkt = GenPkt()
|
||||
@@ -280,6 +287,8 @@ def tc4():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc5():
|
||||
@@ -304,6 +313,8 @@ def tc5():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc6():
|
||||
genPkt = GenPkt()
|
||||
@@ -385,6 +396,8 @@ def tc6():
|
||||
+genSlvSMReadData(4, 0, 0x80))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc7():
|
||||
genPkt = GenPkt()
|
||||
@@ -468,6 +481,8 @@ def tc7():
|
||||
+genSlvSMReadData(4, 0, 0x80))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc8():
|
||||
genPkt = GenPkt()
|
||||
@@ -528,6 +543,8 @@ def tc8():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc9():
|
||||
@@ -590,6 +607,8 @@ def tc9():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc10():
|
||||
@@ -680,6 +699,8 @@ def tc10():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc11():
|
||||
@@ -754,13 +775,22 @@ def tc11():
|
||||
|
||||
|
||||
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, data0)
|
||||
+ genIFRwDataCode(3, 0x1000, True, 0x100, data0)
|
||||
+ genIFRwDataCode(3, 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参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0, ] * 0x100 * 4
|
||||
@@ -804,6 +834,8 @@ def tc11():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc12():
|
||||
genPkt = GenPkt()
|
||||
@@ -1004,6 +1036,8 @@ def tc12():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc13():
|
||||
@@ -1209,6 +1243,8 @@ def tc13():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc14():
|
||||
genPkt = GenPkt()
|
||||
@@ -1382,6 +1418,8 @@ def tc14():
|
||||
)
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc15():
|
||||
genPkt = GenPkt()
|
||||
@@ -1571,3 +1609,198 @@ def tc15():
|
||||
)
|
||||
|
||||
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
|
||||
|
||||
@@ -31,6 +31,8 @@ def tc1():
|
||||
+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 tc2():
|
||||
random.seed(int(time.time() * 1000))
|
||||
@@ -62,6 +64,8 @@ def tc2():
|
||||
+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 tc3():
|
||||
random.seed(int(time.time() * 1000))
|
||||
@@ -83,6 +87,8 @@ def tc3():
|
||||
+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 tc4():
|
||||
genPkt = GenPkt()
|
||||
@@ -99,3 +105,4 @@ def tc4():
|
||||
+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
|
||||
|
||||
@@ -19,3 +19,4 @@ def tc1():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
print("it's a test")
|
||||
return gen_file_def
|
||||
|
||||
@@ -25,6 +25,7 @@ def tc1():
|
||||
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
def tc2():
|
||||
@@ -73,6 +74,8 @@ def tc2():
|
||||
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc3():
|
||||
@@ -166,6 +169,8 @@ def tc3():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1)
|
||||
return gen_file_def
|
||||
|
||||
|
||||
|
||||
def tc4():
|
||||
@@ -281,3 +286,4 @@ def tc4():
|
||||
+genReadAckPktCode(gen_file_def, sm_idx))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1)
|
||||
return gen_file_def
|
||||
|
||||
@@ -57,3 +57,4 @@ def tc1():
|
||||
+genIFRwDataCode(1, 0x400, False, 0x04))
|
||||
|
||||
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
|
||||
return gen_file_def
|
||||
|
||||
Reference in New Issue
Block a user