From f8065c79c95f505a6471d8301ab0d9be7672c9c1 Mon Sep 17 00:00:00 2001 From: bacon Date: Mon, 25 Aug 2025 22:43:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=9F=BA=E7=A1=80=E5=BA=93?= =?UTF-8?q?=E9=87=8C=E7=94=9F=E6=88=90=E4=BB=A3=E7=A0=81=E7=9A=84=E6=96=B9?= =?UTF-8?q?=E5=BC=8F=EF=BC=8C=E5=88=A0=E9=99=A4=E4=B8=8D=E5=BF=85=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E5=BA=9F=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/pyutils/GenPkt.py | 38 +++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/tb/shinTest/pyutils/GenPkt.py b/tb/shinTest/pyutils/GenPkt.py index ee5c759..067fe38 100644 --- a/tb/shinTest/pyutils/GenPkt.py +++ b/tb/shinTest/pyutils/GenPkt.py @@ -57,6 +57,7 @@ class GenPkt(object): self.sub_pkt.append([0, dev_idx, ptype, addr, cmd, len, data]) def gen(self, filename="pkt_verilog_test.v", filetype=0, appendgen=False, gen_name=None): + gen_pkt_type = 0 pkt_len = 4 for sp in self.sub_pkt: if sp[0] != 0: @@ -81,12 +82,14 @@ class GenPkt(object): self.pkt_buf.append(self.pkt_type & 0x3) self.pkt_buf.append(0x3f) self.pkt_buf.append(0xff) + gen_pkt_type = 1 elif (self.pkt_type == 2): pkt_len = len(self.pkt_data) for d in self.pkt_data: self.pkt_buf.append(d) i = pkt_len + gen_pkt_type = 2 #print("-----------------------------", filename, self.pkt_type, pkt_len, self.pkt_buf) else: #for i in range(pkt_len): @@ -106,6 +109,7 @@ class GenPkt(object): pass #elif sp[0] == 0: else: + gen_pkt_type = 3 #设备索引(14bit)+类型(2bit) temp = ((sp[1] & 0x3fff) << 2) | (sp[2] & 0x3) @@ -187,25 +191,25 @@ class GenPkt(object): else: define_str = define_str + gen_name + if gen_pkt_type != 0: + f.write(define_str + "_len \t%d\n"%(pkt_len)) + f.write(define_str + "_sm(array) \\\n\tarray``[%d]=8'h%02X;\\\n\tarray``[%d]=8'h%02X;\n"%( + 3, pkt_len & 0xff, + 4, pkt_len >> 8 + )) - f.write(define_str + "_len \t%d\n"%(pkt_len)) - f.write(define_str + "_sm(array) \\\n\tarray``[%d]=8'h%02X;\\\n\tarray``[%d]=8'h%02X;\n"%( - 3, pkt_len & 0xff, - 4, pkt_len >> 8 - )) - - f.write(define_str + "(array) \\\n") - for _k in range(i): - if _k < (i - 1): - if type(self.pkt_buf[_k]) == int: - f.write("\tarray``[%d]=8'h%02X;\\\n"%(3 + _k, self.pkt_buf[_k])) + f.write(define_str + "(array) \\\n") + for _k in range(i): + if _k < (i - 1): + if type(self.pkt_buf[_k]) == int: + f.write("\tarray``[%d]=8'h%02X;\\\n"%(3 + _k, self.pkt_buf[_k])) + else: + f.write("\tarray``[%d]=%s;\\\n"%(3 + _k, self.pkt_buf[_k])) else: - f.write("\tarray``[%d]=%s;\\\n"%(3 + _k, self.pkt_buf[_k])) - else: - if type(self.pkt_buf[_k]) == int: - f.write("\tarray``[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k])) - else: - f.write("\tarray``[%d]=%s;\n"%(3 + _k, self.pkt_buf[_k])) + if type(self.pkt_buf[_k]) == int: + f.write("\tarray``[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k])) + else: + f.write("\tarray``[%d]=%s;\n"%(3 + _k, self.pkt_buf[_k])) for md in self.sub_pkt: if md[0] == 2: