初步实现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_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);
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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,24 +155,35 @@ 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_"
|
||||||
|
|
||||||
pos1 = filename.rfind("/")
|
if appendgen and (gen_name == None):
|
||||||
if (pos1 < -1):
|
print("Error, gen_name not define.")
|
||||||
pos1 = 0
|
raise "Error, gen_name not define."
|
||||||
else:
|
|
||||||
pos1 = pos1 + 1
|
if not appendgen:
|
||||||
|
pos1 = filename.rfind("/")
|
||||||
|
if (pos1 < -1):
|
||||||
|
pos1 = 0
|
||||||
|
else:
|
||||||
|
pos1 = pos1 + 1
|
||||||
|
|
||||||
pos2 = filename.rfind(".")
|
pos2 = filename.rfind(".")
|
||||||
if (pos1 > pos2):
|
if (pos1 > pos2):
|
||||||
define_str = define_str + filename[pos1:]
|
define_str = define_str + filename[pos1:]
|
||||||
|
else:
|
||||||
|
define_str = define_str + filename[pos1:pos2]
|
||||||
else:
|
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 + "_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"%(
|
||||||
@@ -329,4 +340,46 @@ def setting_ebmmu_regs(regmap, index, vaddr, raddr, size, p, enable):
|
|||||||
regmap[index * 0xa + 7] = (size >> 8) & 0xff
|
regmap[index * 0xa + 7] = (size >> 8) & 0xff
|
||||||
|
|
||||||
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'''
|
||||||
|
|
||||||
@@ -24,6 +24,9 @@ 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():
|
||||||
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()
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
@@ -257,4 +275,6 @@ def tc8():
|
|||||||
+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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
@@ -1570,4 +1608,199 @@ def tc15():
|
|||||||
+genIFRwDataCode(4, 0x300, False, 0x20)
|
+genIFRwDataCode(4, 0x300, False, 0x20)
|
||||||
)
|
)
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -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()
|
||||||
@@ -98,4 +104,5 @@ def tc4():
|
|||||||
+genWriteTransPktCode(gen_file_def, sm_idx)
|
+genWriteTransPktCode(gen_file_def, sm_idx)
|
||||||
+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
|
||||||
|
|||||||
@@ -18,4 +18,5 @@ 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)
|
||||||
print("it's a test")
|
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)
|
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():
|
||||||
@@ -280,4 +285,5 @@ 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
|
||||||
|
|||||||
@@ -56,4 +56,5 @@ def tc1():
|
|||||||
+genIFRwDataCode(4, 0x074, False, 0x04)
|
+genIFRwDataCode(4, 0x074, False, 0x04)
|
||||||
+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
|
||||||
|
|||||||
Reference in New Issue
Block a user