diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 5eebe58..b565ea3 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -850,7 +850,7 @@ task f_write(input [31:0] logh, input [15:0] saddress, input [7:0] scmd, input [ end endtask -task wait_comm_finished(); +task wait_comm_finished(input [16:0] dev_idx); begin:WAIT_COMM_FINISHED_CODE real st; integer is_run; @@ -867,7 +867,7 @@ task wait_comm_finished(); txBuf[6] = 8'h00; length = 8'h07; - idx = `IF_IQSPI(0); + idx = `IF_IQSPI(dev_idx); #5 @(negedge sck) @@ -887,7 +887,7 @@ task wait_comm_finished(); txBuf[2] = `SPI_READ; length = 8'h07; - idx = `IF_IQSPI(0); + idx = `IF_IQSPI(dev_idx); #5 @(negedge sck) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index ba30940..9675908 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -14,7 +14,7 @@ if __name__ == '__main__': #add_tc_2_runlist(errorPkt.tc5()) #add_tc_2_runlist(errorPkt.tc6()) - #add_tc_2_runlist(base.tc1()) + add_tc_2_runlist(base.tc1()) #add_tc_2_runlist(base.tc2()) #add_tc_2_runlist(base.tc3()) #add_tc_2_runlist(base.tc4()) @@ -41,6 +41,7 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc25()) #add_tc_2_runlist(base.tc26()) #add_tc_2_runlist(base.tc27()) + add_tc_2_runlist(base.tc28()) #add_tc_2_runlist(broadcast.tc1()) #add_tc_2_runlist(broadcast.tc2()) @@ -53,7 +54,7 @@ if __name__ == '__main__': #add_tc_2_runlist(sync.tc4()) #add_tc_2_runlist(sync.tc5()) #add_tc_2_runlist(sync.tc6()) - add_tc_2_runlist(sync.tc7()) + #add_tc_2_runlist(sync.tc7()) diff --git a/tb/shinTest/pyutils/GenPkt.py b/tb/shinTest/pyutils/GenPkt.py index 067fe38..18108a8 100644 --- a/tb/shinTest/pyutils/GenPkt.py +++ b/tb/shinTest/pyutils/GenPkt.py @@ -221,31 +221,31 @@ class GenPkt(object): -def genWriteTransLenCode(gen_name, sm_idx, wlog=True): +def genWriteTransLenCode(gen_name, sm_idx, wlog=True, dev_idx=0): return '''\n//写入发送长度\n'''\ + '''$fdisplay(spidata_file, "--写数据交换长度");\n'''\ + '''`DEF_%s_sm(txBuf);\n'''%(gen_name, )\ - + '''%s( (`MST_TX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx,)\ - + '''%s( (`MST_RX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx,) + + '''%s( (`MST_TX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, dev_idx)\ + + '''%s( (`MST_RX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, dev_idx) -def genWriteTransPktCode(gen_name, sm_idx, wlog=True): +def genWriteTransPktCode(gen_name, sm_idx, wlog=True, dev_idx=0): return f'''\n$fdisplay(spidata_file, "<<准备发包,使用SM{sm_idx}:");\n'''\ + '''`DEF_%s(txBuf);\n'''%(gen_name, )\ - + '''%s( (`MST_TX%d_ADDR), (`SPI_WRITE), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name, ) + + '''%s( (`MST_TX%d_ADDR), (`SPI_WRITE), (`DEF_%s_len), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name, dev_idx) -def genTrgTransPktCode(gen_name, sm_idx, wlog=True): +def genTrgTransPktCode(gen_name, sm_idx, wlog=True, dev_idx=0): return '''\n//请求发送\n'''\ + '''$fdisplay(spidata_file, "--请求发送");\n'''\ + '''txBuf[0+3] = `MST_TX_TRIGGER(%d);\n'''%(sm_idx, )\ - + '''%s( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", ) + + '''%s( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx) -def genReadAckPktCode(gen_name, sm_idx, wlog=True): +def genReadAckPktCode(gen_name, sm_idx, wlog=True, dev_idx=0): return '''\n//等待回包\n'''\ - + '''wait_comm_finished();\n'''\ + + '''wait_comm_finished(%d);\n'''%(dev_idx, )\ + f'''$fdisplay(spidata_file, ">>读取回包,使用SM{sm_idx}:");\n'''\ - + '''%s( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name,) + + '''%s( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", sm_idx, gen_name, dev_idx) -def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True): +def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True, dev_idx=0): data = pos & 0x3fff if enableTime: data = data | 0x8000 @@ -255,19 +255,19 @@ def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True, wlog=True): + '''$fdisplay(spidata_file, "--增加时间戳插入");\n'''\ + '''txBuf[0+3] = 8'h%x;\n'''%(data & 0xff, )\ + '''txBuf[1+3] = 8'h%x;\n'''%((data >> 8) & 0xff, )\ - + '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans",) + + '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(%d)) );\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx) -def genDisableInsertTimeCode(wlog=True): +def genDisableInsertTimeCode(wlog=True, dev_idx=0): return '''\n//清除替换时间戳替换地址\n'''\ + '''$fdisplay(spidata_file, "--清除时间戳插入");\n'''\ + '''txBuf[0+3] = 8'h00;\n'''\ + '''txBuf[1+3] = 8'h00;\n'''\ - + '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) ); //清除替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", ) + + '''%s( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(%d)) ); //清除替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx) -def genCheckInsertTimeCode(wlog=True): +def genCheckInsertTimeCode(wlog=True, dev_idx=0): return '''\n//检查替换时间戳替换地址\n'''\ + '''$fdisplay(spidata_file, "--检查时间戳插入");\n'''\ - + '''%s( (16'h24), (`SPI_READ), (2), (`IF_IDX(0)) ); //检查替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", ) + + '''%s( (16'h24), (`SPI_READ), (2), (`IF_IDX(%d)) ); //检查替换时间戳替换地址寄存器\n'''%("`SPI_TRANS" if wlog else "spi_trans", dev_idx) def genIFRwDataCode(dev, addr, isWrite = False, data_len=0, data = None, wlog=True, iface=5): diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index 1c403b1..3506b9b 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -1962,4 +1962,347 @@ def tc27(): genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap03) + return gen_file_def + +def tc28(): + genPkt = GenPkt() + + + gen_file_def = "base_tc28" + sm_idx = 0 + tc_des = ("测试IO交换特性,为环网通信做准备。\\n" + ) + + genPkt.clean() + genPkt.setPktType(0) + + genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) + +genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +"#5000" + +genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1) + +genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--读取中断使能") + +genIFRwDataCode(0, 0x70, False, 4) + +genIFRwDataCode(4, 0x70, False, 4) + + +genMessageCode("--配置主从站") + +genIFRwDataCode(0, 0x00, True, 1, [0x02, ]) + +genIFRwDataCode(4, 0x00, True, 1, [0x01, ]) + ) + + genPkt.addAfterExc(genIFRwDataCode(0, 0x4a, False, 2) + +genIFRwDataCode(1, 0x4a, False, 2) + +genIFRwDataCode(2, 0x4a, False, 2) + +genIFRwDataCode(3, 0x4a, False, 2) + +genIFRwDataCode(4, 0x4a, False, 2) + + +genIFRwDataCode(0, 0x4a, True, 2, [1, 0x58]) + +genIFRwDataCode(1, 0x4a, True, 2, [1, 0x58]) + +genIFRwDataCode(2, 0x4a, True, 2, [1, 0x58]) + +genIFRwDataCode(3, 0x4a, True, 2, [1, 0x58]) + +genIFRwDataCode(4, 0x4a, True, 2, [1, 0x58]) + + +genIFRwDataCode(0, 0, False, 1) + +genIFRwDataCode(1, 0, False, 1) + +genIFRwDataCode(2, 0, False, 1) + +genIFRwDataCode(3, 0, False, 1) + +genIFRwDataCode(4, 0, False, 1) + #genWriteTransLenCode(gen_file_def, sm_idx) + #+genWriteTransPktCode(gen_file_def, sm_idx) + #+genTrgTransPktCode(gen_file_def, sm_idx) + #+genReadAckPktCode(gen_file_def, sm_idx) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + #+genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + + genPkt.clean() + genPkt.setPktType(1) + + gen_file_def_ap = gen_file_def + "_rw01" + sm_idx = 0 + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + #+genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + genPkt.clean() + genPkt.setPktType(0) + + + data = [0x3f, 0xff] + genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data) + + gen_file_def_ap = gen_file_def + "_rw02" + sm_idx = 0 + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + #+genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + + genPkt.clean() + genPkt.setPktType(1) + + gen_file_def_ap = gen_file_def + "_rw03" + sm_idx = 0 + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + #+genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + + genPkt.clean() + genPkt.setPktType(0) + + genPkt.addSubPkt(0x1, 0, 0x180, 0, 32, [0, ]*32) + genPkt.addSubPkt(0x2, 0, 0x180, 0, 32, [0, ]*32) + genPkt.addSubPkt(0x3, 0, 0x180, 0, 32, [0, ]*32) + genPkt.addSubPkt(0x4, 0, 0x180, 0, 32, [0, ]*32) + + gen_file_def_ap = gen_file_def + "_rw04" + sm_idx = 0 + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + +genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=4) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + + +genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +"#5000" + +genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1) + +genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--读取中断使能") + +genIFRwDataCode(0, 0x70, False, 4) + +genIFRwDataCode(4, 0x70, False, 4) + + +genMessageCode("--配置主从站") + +genIFRwDataCode(0, 0x00, True, 1, [0x01, ]) + +genIFRwDataCode(4, 0x00, True, 1, [0x02, ]) + + +genIFRwDataCode(0, 0x4a, False, 2) + +genIFRwDataCode(1, 0x4a, False, 2) + +genIFRwDataCode(2, 0x4a, False, 2) + +genIFRwDataCode(3, 0x4a, False, 2) + +genIFRwDataCode(4, 0x4a, False, 2) + + +genIFRwDataCode(0, 0x4a, True, 2, [0, 0x58]) + +genIFRwDataCode(1, 0x4a, True, 2, [0, 0x58]) + +genIFRwDataCode(2, 0x4a, True, 2, [0, 0x58]) + +genIFRwDataCode(3, 0x4a, True, 2, [0, 0x58]) + +genIFRwDataCode(4, 0x4a, True, 2, [0, 0x58]) + + +genIFRwDataCode(0, 0, False, 1) + +genIFRwDataCode(1, 0, False, 1) + +genIFRwDataCode(2, 0, False, 1) + +genIFRwDataCode(3, 0, False, 1) + +genIFRwDataCode(4, 0, False, 1) + + #+genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + genPkt.clean() + genPkt.setPktType(1) + + gen_file_def_ap = gen_file_def + "_rw05" + sm_idx = 0 + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=0) + +genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0) + +genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0) + +genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=0) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + #+genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + genPkt.clean() + genPkt.setPktType(0) + + + data = [0x3f, 0xff] + genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, data) + + gen_file_def_ap = gen_file_def + "_rw06" + sm_idx = 0 + genPkt.addAfterExc(genWriteTransLenCode(gen_file_def_ap, sm_idx, dev_idx=0) + +genWriteTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0) + +genTrgTransPktCode(gen_file_def_ap, sm_idx, dev_idx=0) + +genReadAckPktCode(gen_file_def_ap, sm_idx, dev_idx=0) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(1, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(2, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(3, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + + +genMessageCode("--读取中断") + +genIFRwDataCode(0, 0x74, False, 4) + +genIFRwDataCode(1, 0x74, False, 4) + +genIFRwDataCode(2, 0x74, False, 4) + +genIFRwDataCode(3, 0x74, False, 4) + +genIFRwDataCode(4, 0x74, False, 4) + + +genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + return gen_file_def