diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 6051030..0a223b1 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -39,9 +39,26 @@ //`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_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_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" +//`define ENABLE_EBMMU_TR19_TEST "generated/log/ebmmu_tr19_tc.log" +//`define ENABLE_EBMMU_TR20_TEST "generated/log/ebmmu_tr20_tc.log" +//`define ENABLE_EBMMU_TR21_TEST "generated/log/ebmmu_tr21_tc.log" +//`define ENABLE_EBMMU_TR22_TEST "generated/log/ebmmu_tr22_tc.log" +//`define ENABLE_EBMMU_TR23_TEST "generated/log/ebmmu_tr23_tc.log" +//`define ENABLE_EBMMU_TR24_TEST "generated/log/ebmmu_tr24_tc.log" +//`define ENABLE_EBMMU_TR25_TEST "generated/log/ebmmu_tr25_tc.log" +//`define ENABLE_EBMMU_TR26_TEST "generated/log/ebmmu_tr26_tc.log" +//`define ENABLE_EBMMU_TR27_TEST "generated/log/ebmmu_tr27_tc.log" +//`define ENABLE_EBMMU_TR28_TEST "generated/log/ebmmu_tr28_tc.log" +//`define ENABLE_EBMMU_TR29_TEST "generated/log/ebmmu_tr29_tc.log" +//`define ENABLE_EBMMU_TR30_TEST "generated/log/ebmmu_tr30_tc.log" + //`define ENABLE_WD1_TEST "generated/log/wd1_tc.log" @@ -1905,6 +1922,44 @@ initial begin end `endif +`ifdef ENABLE_EBMMU_TR14_TEST + begin:EBMMU_TR14_TEST + `BEGIN_TESTCASE(`ENABLE_EBMMU_TR14_TEST); + _t_start = $realtime; + #1000 + $fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用14"); + $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); + + `include "ebmmu_tc14_settings.vh" + + `include "ebmmu_tc14_write.vh" + + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); + `END_TESTCASE(`ENABLE_EBMMU_TR14_TEST); + end +`endif + + +`ifdef ENABLE_EBMMU_TR15_TEST + begin:EBMMU_TR15_TEST + `BEGIN_TESTCASE(`ENABLE_EBMMU_TR15_TEST); + _t_start = $realtime; + #1000 + $fdisplay(spidata_file, "\n\n测试用例: ebmmu 测试用15"); + $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); + + `include "ebmmu_tc15_settings.vh" + + `include "ebmmu_tc15_write.vh" + + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); + `END_TESTCASE(`ENABLE_EBMMU_TR15_TEST); + end +`endif + + `ifdef ENABLE_WD1_TEST begin:WD1_TEST `BEGIN_TESTCASE(`ENABLE_WD1_TEST); diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 531499d..6eb2ae1 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -1085,7 +1085,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>读取EB-MMU的设置 genPkt.clean() genPkt.setPktType(0) @@ -1108,8 +1107,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置 genPkt.clean() genPkt.setPktType(0) @@ -1164,7 +1161,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>读取数据 genPkt.clean() genPkt.setPktType(0) @@ -1187,8 +1183,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置 genPkt.clean() genPkt.setPktType(0) @@ -1211,7 +1205,7 @@ if __name__ == '__main__': #------------------------------------------------------------------------- - #>>>>>>设置EB-MMU + #>>>>>>设置EB-MMU 3 genPkt.clean() genPkt.setPktType(0) @@ -1245,8 +1239,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置 genPkt.clean() genPkt.setPktType(0) @@ -1267,7 +1259,7 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) #------------------------------------------------------------------------- - #>>>>>>设置EB-MMU + #>>>>>>设置EB-MMU 4 genPkt.clean() genPkt.setPktType(0) @@ -1310,8 +1302,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置 genPkt.clean() genPkt.setPktType(0) @@ -1333,7 +1323,7 @@ if __name__ == '__main__': #------------------------------------------------------------------------- - #>>>>>>用EB-MMU方式读取EB-MMU设置 + #>>>>>>用EB-MMU方式读取EB-MMU设置 5 genPkt.clean() genPkt.setPktType(0) @@ -1398,7 +1388,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置 genPkt.clean() genPkt.setPktType(0) @@ -1479,7 +1468,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置 genPkt.clean() genPkt.setPktType(0) @@ -1541,7 +1529,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置, 8 genPkt.clean() genPkt.setPktType(0) @@ -1600,7 +1587,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置, 9 genPkt.clean() genPkt.setPktType(0) @@ -1660,7 +1646,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置, 10,两次写入em-mmu genPkt.clean() genPkt.setPktType(0) @@ -1780,7 +1765,6 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) - #------------------------------------------------------------------------- #>>>>>>用EB-MMU方式读取EB-MMU设置, 11,两次读出eb-mmu genPkt.clean() genPkt.setPktType(0) @@ -2241,6 +2225,361 @@ if __name__ == '__main__': genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + #-------------------------------------------------------------------------- + #>>>>>>设置EB-MMU,测试用例14,读,检查权限 + genPkt.clean() + genPkt.setPktType(0) + + addr = 0x10000000 + addr_off = 0x0 + sm_size = 0x8 + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + data = [0,] * 256 + + taddr = addr + addr_off + setting_ebmmu_regs(data, 0, taddr, 0x0800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 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, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 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, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 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, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 1, taddr, 0x1800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 2, taddr, 0x2800, sm_size, 0x2, 0x1) + + addr_off = addr_off + sm_size + taddr = addr + addr_off + setting_ebmmu_regs(data, 3, taddr, 0x3800, sm_size, 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_tc14_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设置, 14 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + data = [(i & 0xff) for i in range(sm_size * 16)] + + gen_file_def = "ebmmu_tc14_write" + sm_idx = 0 + + genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data) + + 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, 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) + ) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + + #-------------------------------------------------------------------------- + #>>>>>>设置EB-MMU,测试用例13,读,检查权限 + 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_tc15_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设置, 12 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + data = [(i & 0xff) for i in range(sm_size * 16)] + + gen_file_def = "ebmmu_tc15_write" + sm_idx = 0 + + genPkt.addSubPkt(0x1000, 2, 0, 0x1, sm_size * 16, data) + + 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, 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) + ) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) #-------------------------------------------------------------------------- #>>>>>> 测试用例1 看门狗测试