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: