From 0281a55bc98e92ff3fa30dc8d25f158a0b13f34c Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 6 Aug 2025 16:06:08 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0tc15=E7=9A=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 2 + tb/shinTest/testcase/base.py | 88 +++++++++++++++++++++++++++++++++++- 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index e38ae93..9b5e989 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -26,6 +26,8 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc12()) #add_tc_2_runlist(base.tc13()) #add_tc_2_runlist(base.tc14()) + add_tc_2_runlist(base.tc15()) + #add_tc_2_runlist(broadcast.tc1()) diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index ba396ba..bd5a07e 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -1126,4 +1126,90 @@ def tc14(): genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap) - return gen_file_def \ No newline at end of file + return gen_file_def + + +def tc15(): + genPkt = GenPkt() + + gen_file_def = "base_tc15" + sm_idx = 0 + tc_des = "读写SM缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + + "检查是否真的写入,子报文的状态。" + + #------------------------------------------------------------------------- + #>>>>>>普通数据包3 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + genPkt.addSubPkt(0, 0, 0x0302, 0xe, 2, [32, 0]) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(0, 32))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(32, 64))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(64, 96))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(96, 128))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(128, 160))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(160, 192))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(192, 224))) + genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(224, 256))) + + sm_idx = 0 + + 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) + + +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) + + +genSlvSMReadData(1, 0, 32) + +genSlvSMReadData(2, 0, 32) + +genSlvSMReadData(3, 0, 32) + +genSlvSMReadData(4, 0, 32) + + +genSlvSMReadData(1, 0, 32) + +genSlvSMReadData(2, 0, 32) + +genSlvSMReadData(3, 0, 32) + +genSlvSMReadData(4, 0, 32) + + +genSlvSMReadData(1, 0, 32) + +genSlvSMReadData(2, 0, 32) + +genSlvSMReadData(3, 0, 32) + +genSlvSMReadData(4, 0, 32) + + +genSlvSMReadData(1, 0, 32) + +genSlvSMReadData(2, 0, 32) + +genSlvSMReadData(3, 0, 32) + +genSlvSMReadData(4, 0, 32) + + +genSlvSMReadData(1, 0, 32) + +genSlvSMReadData(2, 0, 32) + +genSlvSMReadData(3, 0, 32) + +genSlvSMReadData(4, 0, 32) + + +genTcEndFrameCode(gen_file_def)) + + genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) + + return gen_file_def From 777760fc60d48ec36ed37f47ae08edfe3432598a Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 6 Aug 2025 16:52:11 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E7=94=A8=E4=BE=8B,=E6=B5=8B=E8=AF=95=E8=B6=85=E5=87=BASM?= =?UTF-8?q?=E4=B8=8A=E9=99=90=E5=90=8E=E7=9A=84=E8=AF=BB=E5=86=99=E6=95=88?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 7 ++ tb/shinTest/testcase/base.py | 187 +++++++++++++++++++++++++++++------ 2 files changed, 162 insertions(+), 32 deletions(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 9b5e989..2bcc905 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -27,6 +27,13 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc13()) #add_tc_2_runlist(base.tc14()) add_tc_2_runlist(base.tc15()) + add_tc_2_runlist(base.tc16()) + add_tc_2_runlist(base.tc17()) + add_tc_2_runlist(base.tc18()) + add_tc_2_runlist(base.tc19()) + add_tc_2_runlist(base.tc20()) + add_tc_2_runlist(base.tc21()) + add_tc_2_runlist(base.tc22()) diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index bd5a07e..5c541e2 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -1129,12 +1129,12 @@ def tc14(): return gen_file_def -def tc15(): +def tc_wr_sm(tc_id, wr_sm_idx): genPkt = GenPkt() - gen_file_def = "base_tc15" + gen_file_def = f"base_tc{tc_id}_wr_sm{wr_sm_idx}" sm_idx = 0 - tc_des = "读写SM缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + tc_des = f"读写SM{wr_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + "检查是否真的写入,子报文的状态。" #------------------------------------------------------------------------- @@ -1143,15 +1143,15 @@ def tc15(): genPkt.setPktType(0) #subPkt参数:索引、索引类型、地址、命令、长度、数据 - genPkt.addSubPkt(0, 0, 0x0302, 0xe, 2, [32, 0]) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(0, 32))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(32, 64))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(64, 96))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(96, 128))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(128, 160))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(160, 192))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(192, 224))) - genPkt.addSubPkt(0, 0, 0x0800, 0xe, 32, list(range(224, 256))) + genPkt.addSubPkt(0, 0, 0x0302 + wr_sm_idx * 0x4, 0xe, 2, [32, 0]) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(0, 32))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(32, 64))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(64, 96))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(96, 128))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(128, 160))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(160, 192))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(192, 224))) + genPkt.addSubPkt(0, 0, 0x0800 + wr_sm_idx * 0x0800, 0xe, 32, list(range(224, 256))) sm_idx = 0 @@ -1183,33 +1183,156 @@ def tc15(): +genIFRwDataCode(3, 0x74, False, 4) +genIFRwDataCode(4, 0x74, False, 4) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) - +genSlvSMReadData(1, 0, 32) - +genSlvSMReadData(2, 0, 32) - +genSlvSMReadData(3, 0, 32) - +genSlvSMReadData(4, 0, 32) + +genSlvSMReadData(1, wr_sm_idx, 32) + +genSlvSMReadData(2, wr_sm_idx, 32) + +genSlvSMReadData(3, wr_sm_idx, 32) + +genSlvSMReadData(4, wr_sm_idx, 32) +genTcEndFrameCode(gen_file_def)) genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1) return gen_file_def + + +def tc_rd_sm(tc_id, rd_sm_idx): + genPkt = GenPkt() + + gen_file_def = f"base_tc{tc_id}_rd_sm{rd_sm_idx}" + sm_idx = 0 + tc_des = f"读写SM{rd_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ + + "检查是否真的写入,子报文的状态。" + + #------------------------------------------------------------------------- + #>>>>>>普通数据包3 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + #genPkt.addSubPkt(0, 0, 0x0302, 0xd, 2, [32, 0]) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + genPkt.addSubPkt(0, 0, 0x0800 + rd_sm_idx * 0x0800, 0xd, 32, [0,]*32) + sm_idx = 0 + + genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(1, rd_sm_idx, 32, list(range(224, 256))) + + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(2, rd_sm_idx, 32, list(range(224, 256))) + + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(3, rd_sm_idx, 32, list(range(224, 256))) + + + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(0, 32))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(32, 64))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(64, 96))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(96, 128))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(128, 160))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(160, 192))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(192, 224))) + +genSlvSMWriteData(4, rd_sm_idx, 32, list(range(224, 256))) + ) + + 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, 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) + + return gen_file_def + + +def tc15(): + return tc_wr_sm(15, 0) + +def tc16(): + return tc_rd_sm(16, 1) + +def tc17(): + return tc_wr_sm(17, 2) + +def tc18(): + return tc_rd_sm(18, 3) + +def tc19(): + return tc_wr_sm(19, 4) + +def tc20(): + return tc_rd_sm(20, 5) + +def tc21(): + return tc_wr_sm(21, 6) + +def tc22(): + return tc_rd_sm(22, 7) + From bb28a005ed7fc93596ce6ca6e03d1e5b2b6f8642 Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 6 Aug 2025 17:46:08 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95workcnt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 19 ++++++------ tb/shinTest/testcase/base.py | 57 ++++++++++++++++++++++++++++++++++-- 2 files changed, 65 insertions(+), 11 deletions(-) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 2bcc905..6352af6 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -18,7 +18,7 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc4()) #add_tc_2_runlist(base.tc5()) #add_tc_2_runlist(base.tc6()) - #add_tc_2_runlist(base.tc7()) + add_tc_2_runlist(base.tc7()) #add_tc_2_runlist(base.tc8()) #add_tc_2_runlist(base.tc9()) #add_tc_2_runlist(base.tc10()) @@ -26,14 +26,15 @@ if __name__ == '__main__': #add_tc_2_runlist(base.tc12()) #add_tc_2_runlist(base.tc13()) #add_tc_2_runlist(base.tc14()) - add_tc_2_runlist(base.tc15()) - add_tc_2_runlist(base.tc16()) - add_tc_2_runlist(base.tc17()) - add_tc_2_runlist(base.tc18()) - add_tc_2_runlist(base.tc19()) - add_tc_2_runlist(base.tc20()) - add_tc_2_runlist(base.tc21()) - add_tc_2_runlist(base.tc22()) + #add_tc_2_runlist(base.tc15()) + #add_tc_2_runlist(base.tc16()) + #add_tc_2_runlist(base.tc17()) + #add_tc_2_runlist(base.tc18()) + #add_tc_2_runlist(base.tc19()) + #add_tc_2_runlist(base.tc20()) + #add_tc_2_runlist(base.tc21()) + #add_tc_2_runlist(base.tc22()) + add_tc_2_runlist(base.tc23()) diff --git a/tb/shinTest/testcase/base.py b/tb/shinTest/testcase/base.py index 5c541e2..8c55515 100644 --- a/tb/shinTest/testcase/base.py +++ b/tb/shinTest/testcase/base.py @@ -1135,7 +1135,8 @@ def tc_wr_sm(tc_id, wr_sm_idx): gen_file_def = f"base_tc{tc_id}_wr_sm{wr_sm_idx}" sm_idx = 0 tc_des = f"读写SM{wr_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ - + "检查是否真的写入,子报文的状态。" + + "检查是否真的写入,子报文的状态。目前即使SM0、2、4、6满了,处于溢出状态,硬件难以判断是否能提交数据。\\n"\ + + "目前只要地址、长度正确,即使无法写入,工作计数也会加1。工作计数不能反应报文与SMx的互动关系。" #------------------------------------------------------------------------- #>>>>>>普通数据包3 @@ -1221,7 +1222,8 @@ def tc_rd_sm(tc_id, rd_sm_idx): gen_file_def = f"base_tc{tc_id}_rd_sm{rd_sm_idx}" sm_idx = 0 tc_des = f"读写SM{rd_sm_idx}缓冲区超过缓冲区的元素上限,期望结果,超出缓冲区的数据不被接收,工作计数不加。\\n" \ - + "检查是否真的写入,子报文的状态。" + + "检查是否真的写入,子报文的状态。目前即使SM1、3、5、7空了,没有数据,硬件难以判断是否存在数据。\\n"\ + + "目前只要地址、长度正确,即使无法读取,工作计数也会加1。工作计数不能反应报文与SMx的互动关系。" #------------------------------------------------------------------------- #>>>>>>普通数据包3 @@ -1336,3 +1338,54 @@ def tc21(): def tc22(): return tc_rd_sm(22, 7) +def tc23(): + genPkt = GenPkt() + + gen_file_def = "base_tc23" + sm_idx = 0 + tc_des = "使用广播读写命令,读取SM0的长度寄存器;测试工作计数。\\n" + + #------------------------------------------------------------------------- + #>>>>>>普通数据包2 + genPkt.clean() + genPkt.setPktType(0) + + genPkt.addBeforeExc(genTcStartFrameCode(gen_file_def, tc_des) + ) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + genPkt.addSubPkt(0, 0, 0x0302, 0xf, 2, [32, 0]) + + 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, 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) + + return gen_file_def \ No newline at end of file