From 139035e79e7addda87d4feae250537f3d3c2b0df Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 10 Sep 2025 23:42:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B=EF=BC=9B=E9=94=99=E8=AF=AF=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E5=A2=9E=E5=8A=A0=E5=AF=B9=E4=B8=BB=E7=AB=99?= =?UTF-8?q?=E7=9A=84=E5=AF=B9=E5=BA=94=E7=9A=84SM=E5=A4=8D=E4=BD=8D?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/pyutils/GenPkt.py | 3 +- tb/shinTest/testcase/base.py | 457 +++++++++++++++++++++++++++++++ tb/shinTest/testcase/errorPkt.py | 20 ++ 3 files changed, 479 insertions(+), 1 deletion(-) diff --git a/tb/shinTest/pyutils/GenPkt.py b/tb/shinTest/pyutils/GenPkt.py index b7c2877..aa21d21 100644 --- a/tb/shinTest/pyutils/GenPkt.py +++ b/tb/shinTest/pyutils/GenPkt.py @@ -378,9 +378,10 @@ def gen_tc_runlist(): f.close() -def genTcStartFrameCode(tcname, des): +def genTcStartFrameCode(tcname, des, vardef="\n"): upper_name = tcname.upper() code_str = f'''\tbegin:{upper_name}_TESTCASE\n'''\ + +vardef \ +f'''\t\t`BEGIN_TESTCASE("{__pre_gen_log_path}/{tcname}_result.log");\n'''\ +'''\t\t_t_start = $realtime;\n'''\ +f'''\t\t$fdisplay(spidata_file,"\\n\\n测试用例:{upper_name}");\n''' diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index c55e0d9..cc2fc7f 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -2605,3 +2605,460 @@ def tc30(): genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) return gen_file_def + +def tc31(): + genPkt = GenPkt() + + gen_file_def = "base_tc31" + sm_idx = 0 + tc_des = "测试主站之间的同步,利用latch信号进行主站间的同步。\\n" + + genPkt.clean() + genPkt.setPktType(1) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + #genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12) + + + genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des, "reg [63:0] latch_t1;\n reg [63:0] latch_t2;\n") + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genMessageCode("--复位4号设备") + +genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +"#5000" + +genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1) + +using_proper_code(4) + +genIFRwDataCode(4, 0x0, True, 1, [1, ]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + #+genEnableInsertTimeCode(0xa) + ) + + 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) + +genMessageCode("--清除中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + ) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + #------------------------------------------------------------------------- + genPkt.clean() + genPkt.setPktType(0) + + gen_file_def_ap = gen_file_def + "_rw01" + genPkt.addBeforeExc(genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + +genMessageCode("--设置事件") + +genIFRwDataCode(0, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(1, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(2, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(3, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(4, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + +genIFRwDataCode(0, 0x148, True, 8, [0,] * 8) + +genIFRwDataCode(4, 0x148, True, 8, [0,] * 8) + ) + + genPkt.addAfterExc( "latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +"#5000\n" + +"latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +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) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + + '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(0)));\n''' + + '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n''' + + '''latch_t1 = _temp_time;\n\n''' + + + '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(4)));\n''' + + '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n''' + + '''latch_t2 = _temp_time;\n''' + + '''_temp_time = latch_t1 - latch_t2;\n\n''' + + + '''txBuf[3] = _temp_time[7:0];\n''' + + '''txBuf[4] = _temp_time[15:8];\n''' + + '''txBuf[5] = _temp_time[23:16];\n''' + + '''txBuf[6] = _temp_time[31:24];\n''' + + '''txBuf[7] = _temp_time[39:32];\n''' + + '''txBuf[8] = _temp_time[47:40];\n''' + + '''txBuf[9] = _temp_time[55:48];\n''' + + '''txBuf[10] = _temp_time[63:56];\n''' + + '''spi_trans( (16'h0148), (`SPI_WRITE), (8), (`IF_IDX(4)));\n''' + ) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + + #------------------------------------------------------------------------- + genPkt.clean() + genPkt.setPktType(0) + + gen_file_def_ap = gen_file_def + "_rw02" + genPkt.addBeforeExc(genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + +genMessageCode("--设置事件") + +genIFRwDataCode(0, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(1, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(2, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(3, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(4, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + ) + + genPkt.addAfterExc( "latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +"#5000\n" + +"latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +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) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + ) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + #-------------------------------------------------------------------- + genPkt.clean() + genPkt.setPktType(0) + + gen_file_def_ap = gen_file_def + "_rw03" + genPkt.addBeforeExc(genMessageCode("--复位0号设备") + +"#100000\n" + +genIFRwDataCode(0, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +"#5000\n" + +genIFRwDataCode(0, 0x09, True, 1, [0, ], False, iface=1) + +using_proper_code(0) + +genIFRwDataCode(0, 0x0, True, 1, [1, ]) + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genIFRwDataCode(0, 0x7c, True, 2, [0x10, 0x80]) + +genIFRwDataCode(0, 0x70, True, 4, [0x03, 0x00, 0x00, 0xf0]) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + +genMessageCode("--设置事件") + +genIFRwDataCode(0, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(1, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(2, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(3, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(4, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + +genIFRwDataCode(0, 0x148, True, 8, [0,] * 8) + +genIFRwDataCode(4, 0x148, True, 8, [0,] * 8) + ) + + genPkt.addAfterExc( "latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +"#5000\n" + +"latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +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) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + + '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(0)));\n''' + + '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n''' + + '''latch_t1 = _temp_time;\n\n''' + + + '''spi_trans( (16'h0518), (`SPI_READ), (8), (`IF_IDX(4)));\n''' + + '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n''' + + '''latch_t2 = _temp_time;\n''' + + '''_temp_time = latch_t1 - latch_t2;\n\n''' + + + '''txBuf[3] = _temp_time[7:0];\n''' + + '''txBuf[4] = _temp_time[15:8];\n''' + + '''txBuf[5] = _temp_time[23:16];\n''' + + '''txBuf[6] = _temp_time[31:24];\n''' + + '''txBuf[7] = _temp_time[39:32];\n''' + + '''txBuf[8] = _temp_time[47:40];\n''' + + '''txBuf[9] = _temp_time[55:48];\n''' + + '''txBuf[10] = _temp_time[63:56];\n''' + + '''spi_trans( (16'h0148), (`SPI_WRITE), (8), (`IF_IDX(4)));\n''' + ) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + + #------------------------------------------------------------------------- + genPkt.clean() + genPkt.setPktType(0) + + gen_file_def_ap = gen_file_def + "_rw04" + genPkt.addBeforeExc(genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + + +genMessageCode("--设置事件") + +genIFRwDataCode(0, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(1, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(2, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + +genIFRwDataCode(3, 0x500, True, 4, [0x0F, 0x00, 0x03, 0x00] ) + +genIFRwDataCode(4, 0x500, True, 4, [0x03, 0x00, 0x0F, 0x00] ) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + ) + + genPkt.addAfterExc( "latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +"#5000\n" + +"latch0 <= 1;\n" + +"latch1 <= 1;\n" + + +"#5000\n" + +"latch0 <= 0;\n" + +"latch1 <= 0;\n" + + +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) + + +genMessageCode("--读取事件寄存器组") + +genIFRwDataCode(0, 0x500, False, 0x48) + +genIFRwDataCode(1, 0x500, False, 0x48) + +genIFRwDataCode(2, 0x500, False, 0x48) + +genIFRwDataCode(3, 0x500, False, 0x48) + +genIFRwDataCode(4, 0x500, False, 0x48) + ) + + 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.addBeforeExc(genMessageCode("--恢复系统") + +genIFRwDataCode(4, 0x40, True, 4, [0x01, 0x00, 0x66, 0x79]) + +"#5000" + +genIFRwDataCode(4, 0x09, True, 1, [0, ], False, iface=1) + +using_proper_code(4) + +genIFRwDataCode(4, 0x00, True, 1, [2, ]) + +genIFRwDataCode(4, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + ) + + 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) + + + +genMessageCode("--清除主中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + genPkt.clean() + genPkt.setPktType(0) + gen_file_def_ap = gen_file_def+"_rw06" + sm_idx = 0 + + #genPkt.addBeforeExc(genMessageCode("--设置环境,进行第一次嗅探")) + + genPkt.addSubPkt(0x0, 0, 0x0, 0xb, 2, [0x3f, 0xff]) + + 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) + + + +genMessageCode("--清除主中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + ) + 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+"_rw07" + sm_idx = 0 + + + 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) + + + +genMessageCode("--清除主中断") + +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genTcEndFrameCode(gen_file_def) + ) + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) + + return gen_file_def + diff --git a/tb/shinTest/testcase/errorPkt.py b/tb/shinTest/testcase/errorPkt.py index a85fd35..6fc1bd5 100644 --- a/tb/shinTest/testcase/errorPkt.py +++ b/tb/shinTest/testcase/errorPkt.py @@ -44,6 +44,9 @@ def tc1(): +genMessageCode("--清除中断") +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genMessageCode("--清除主站错误") + +genIFRwDataCode(0, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) + +genMessageCode("--读取统计寄存器") +genIFRwDataCode(0, 0x80, False, 24) +genIFRwDataCode(0, 0xa0, False, 24) @@ -185,6 +188,9 @@ def tc2(): +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, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) +genMessageCode("--读取中断") +genIFRwDataCode(0, 0x74, False, 4) @@ -254,6 +260,9 @@ def tc3(): +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, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) +genMessageCode("--读取中断") +genIFRwDataCode(0, 0x74, False, 4) @@ -292,6 +301,8 @@ def tc4(): +genReadAckPktCode(gen_file_def, sm_idx) +genMessageCode("--清除中断") +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genMessageCode("--清除主站错误") + +genIFRwDataCode(0, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) ) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) @@ -387,6 +398,9 @@ def tc5(): +genMessageCode("--清除中断") +genIFRwDataCode(0, 0x78, True, 4, [0xff, 0xff, 0xff, 0xff]) + +genMessageCode("--清除主站错误") + +genIFRwDataCode(0, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) + +genMessageCode("--数据包状态寄存器") +genIFRwDataCode(0, 0x22, False, 2) @@ -617,6 +631,9 @@ def tc6(): +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, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) +genMessageCode("--读取中断") +genIFRwDataCode(0, 0x74, False, 4) @@ -802,6 +819,9 @@ def sm_wr_err_test(tc_id, sm_id, pre_g_pkt = 1, good_pkt_in_bad = 1, after_g_pkt +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, 0x300 + sm_idx * 4, True, 1, [0x1, ], wlog = False) +genMessageCode("--读取中断") +genIFRwDataCode(0, 0x74, False, 4)