Merge branch 'eb_dev' into bug56

This commit is contained in:
2025-08-06 17:47:14 +08:00
2 changed files with 273 additions and 1 deletions

View File

@@ -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,6 +26,16 @@ 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.tc23())
#add_tc_2_runlist(broadcast.tc1())

View File

@@ -1126,4 +1126,266 @@ def tc14():
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1, True, gen_file_def_ap)
return gen_file_def
def tc_wr_sm(tc_id, wr_sm_idx):
genPkt = GenPkt()
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
genPkt.clean()
genPkt.setPktType(0)
#subPkt参数索引、索引类型、地址、命令、长度、数据
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
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, wr_sm_idx, 32)
+genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, wr_sm_idx, 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, wr_sm_idx, 32)
+genSlvSMReadData(2, wr_sm_idx, 32)
+genSlvSMReadData(3, wr_sm_idx, 32)
+genSlvSMReadData(4, wr_sm_idx, 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, 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" \
+ "检查是否真的写入子报文的状态。目前即使SM1、3、5、7空了没有数据硬件难以判断是否存在数据。\\n"\
+ "目前只要地址、长度正确即使无法读取工作计数也会加1。工作计数不能反应报文与SMx的互动关系。"
#-------------------------------------------------------------------------
#>>>>>>普通数据包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)
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