整理测试代码
This commit is contained in:
@@ -6,13 +6,13 @@ class GenPkt(object):
|
||||
def __init__(self):
|
||||
super(GenPkt, self).__init__()
|
||||
|
||||
self.pkt_buf = bytearray(b'\0' * 2048)
|
||||
self.pkt_buf = list() #bytearray(b'\0' * 2048)
|
||||
self.pkt_type = 0
|
||||
self.pkt_sub_pkt = 0
|
||||
self.sub_pkt = list()
|
||||
|
||||
def clean(self):
|
||||
self.pkt_buf = bytearray(b'\0' * 2048)
|
||||
self.pkt_buf = list() #bytearray(b'\0' * 2048)
|
||||
self.pkt_type = 0
|
||||
self.pkt_sub_pkt = 0
|
||||
self.sub_pkt = list()
|
||||
@@ -23,6 +23,9 @@ class GenPkt(object):
|
||||
else:
|
||||
self.pkt_type = type
|
||||
|
||||
def addSentence(self, str):
|
||||
self.sub_pkt.append([1, str])
|
||||
|
||||
def addSubPkt(self, dev_idx, ptype, addr, cmd, len, data):
|
||||
if (len > 2032):
|
||||
print('Error, bad subpkt len:%d', len)
|
||||
@@ -35,12 +38,15 @@ class GenPkt(object):
|
||||
return
|
||||
|
||||
self.pkt_sub_pkt = self.pkt_sub_pkt + 1
|
||||
self.sub_pkt.append([dev_idx, ptype, addr, cmd, len, data])
|
||||
self.sub_pkt.append([0, dev_idx, ptype, addr, cmd, len, data])
|
||||
|
||||
def gen(self, filename="pkt_verilog_test.v", filetype=0):
|
||||
pkt_len = 4
|
||||
for sp in self.sub_pkt:
|
||||
pkt_len = pkt_len + sp[4] + 8
|
||||
if sp[0] != 0:
|
||||
pass
|
||||
else:
|
||||
pkt_len = pkt_len + sp[5] + 8
|
||||
|
||||
if pkt_len > 2048:
|
||||
print('Error, bad pkt_len:', pkt_len)
|
||||
@@ -51,58 +57,87 @@ class GenPkt(object):
|
||||
i = 4
|
||||
if self.pkt_type == 1:
|
||||
pkt_len = 4
|
||||
'''
|
||||
self.pkt_buf[0] = 0
|
||||
self.pkt_buf[1] = (self.pkt_type & 0x3)
|
||||
self.pkt_buf[2] = 0x3f
|
||||
self.pkt_buf[3] = 0xff
|
||||
'''
|
||||
self.pkt_buf.append(0)
|
||||
self.pkt_buf.append(self.pkt_type & 0x3)
|
||||
self.pkt_buf.append(0x3f)
|
||||
self.pkt_buf.append(0xff)
|
||||
else:
|
||||
#for i in range(pkt_len):
|
||||
'''
|
||||
self.pkt_buf[0] = ((pkt_len - 4) >> 4) & 0xff
|
||||
self.pkt_buf[1] = (((pkt_len - 4) << 4) & 0xf0) | (self.pkt_type & 0x3)
|
||||
self.pkt_buf[2] = 0
|
||||
self.pkt_buf[3] = 0
|
||||
'''
|
||||
self.pkt_buf.append(((pkt_len - 4) >> 4) & 0xff)
|
||||
self.pkt_buf.append((((pkt_len - 4) << 4) & 0xf0) | (self.pkt_type & 0x3))
|
||||
self.pkt_buf.append(0)
|
||||
self.pkt_buf.append(0)
|
||||
|
||||
for sp in self.sub_pkt:
|
||||
#设备索引(14bit)+类型(2bit)
|
||||
temp = ((sp[0] & 0x3fff) << 2) | (sp[1] & 0x3)
|
||||
|
||||
self.pkt_buf[i] = (temp >> 8) & 0xff
|
||||
i = i + 1
|
||||
self.pkt_buf[i] = temp & 0xff
|
||||
i = i + 1
|
||||
|
||||
#地址
|
||||
self.pkt_buf[i] = (sp[2] >> 8) & 0xff
|
||||
i = i + 1
|
||||
self.pkt_buf[i] = sp[2] & 0xff
|
||||
i = i + 1
|
||||
|
||||
#命令类型(4bit)+长度(12bit)
|
||||
temp = (sp[3] << 12) | (sp[4] & 0xfff)
|
||||
|
||||
self.pkt_buf[i] = (temp >> 8) & 0xff
|
||||
i = i + 1
|
||||
self.pkt_buf[i] = temp & 0xff
|
||||
i = i + 1
|
||||
|
||||
#工作计数
|
||||
self.pkt_buf[i] = 0
|
||||
i = i + 1
|
||||
self.pkt_buf[i] = 0
|
||||
i = i + 1
|
||||
|
||||
#数据
|
||||
if sp[5] == None:
|
||||
for _k in range(sp[4]):
|
||||
self.pkt_buf[_k + i] = random.randint(0, 255)
|
||||
if sp[0] != 0:
|
||||
pass
|
||||
#elif sp[0] == 0:
|
||||
else:
|
||||
for _k in range(sp[4]):
|
||||
self.pkt_buf[_k + i] = sp[5][_k]
|
||||
#设备索引(14bit)+类型(2bit)
|
||||
temp = ((sp[1] & 0x3fff) << 2) | (sp[2] & 0x3)
|
||||
|
||||
#self.pkt_buf[i] = (temp >> 8) & 0xff
|
||||
self.pkt_buf.append((temp >> 8) & 0xff)
|
||||
i = i + 1
|
||||
#self.pkt_buf[i] = temp & 0xff
|
||||
self.pkt_buf.append(temp & 0xff)
|
||||
i = i + 1
|
||||
|
||||
#地址
|
||||
#self.pkt_buf[i] = (sp[3] >> 8) & 0xff
|
||||
self.pkt_buf.append((sp[3] >> 8) & 0xff)
|
||||
i = i + 1
|
||||
#self.pkt_buf[i] = sp[3] & 0xff
|
||||
self.pkt_buf.append(sp[3] & 0xff)
|
||||
i = i + 1
|
||||
|
||||
i = i + sp[4]
|
||||
#命令类型(4bit)+长度(12bit)
|
||||
temp = (sp[4] << 12) | (sp[5] & 0xfff)
|
||||
|
||||
#self.pkt_buf[i] = (temp >> 8) & 0xff
|
||||
self.pkt_buf.append((temp >> 8) & 0xff)
|
||||
i = i + 1
|
||||
#self.pkt_buf[i] = temp & 0xff
|
||||
self.pkt_buf.append(temp & 0xff)
|
||||
i = i + 1
|
||||
|
||||
#工作计数
|
||||
#self.pkt_buf[i] = 0
|
||||
self.pkt_buf.append(0)
|
||||
i = i + 1
|
||||
#self.pkt_buf[i] = 0
|
||||
self.pkt_buf.append(0)
|
||||
i = i + 1
|
||||
|
||||
#数据
|
||||
if sp[6] == None:
|
||||
for _k in range(sp[5]):
|
||||
#self.pkt_buf[_k + i] = random.randint(0, 255)
|
||||
self.pkt_buf.append(random.randint(0, 255))
|
||||
else:
|
||||
for _k in range(sp[5]):
|
||||
#self.pkt_buf[_k + i] = sp[6][_k]
|
||||
self.pkt_buf.append(sp[6][_k])
|
||||
|
||||
i = i + sp[5]
|
||||
|
||||
f = open(filename, "wt+")
|
||||
if filetype == 1:
|
||||
for md in self.sub_pkt:
|
||||
if md[0] == 1:
|
||||
f.write("%s\n"%(md[1],))
|
||||
define_str = "`define DEF_"
|
||||
|
||||
pos1 = filename.rfind("/")
|
||||
@@ -131,7 +166,10 @@ class GenPkt(object):
|
||||
f.write("\tarray``[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
else:
|
||||
for _k in range(i):
|
||||
f.write("txBuf[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
if type(self.pkt_buf[_k]) == int:
|
||||
f.write("txBuf[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
else:
|
||||
f.write("txBuf[%d]=`%s;\n"%(3 + _k, self.pkt_buf[_k]))
|
||||
f.close()
|
||||
|
||||
if __name__ == '__main__':
|
||||
@@ -297,7 +335,7 @@ if __name__ == '__main__':
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = bytearray(b"\0" * 100)
|
||||
data[0] = 0x0f #地址0x120
|
||||
data[0] = 0xff #地址0x120
|
||||
data[2] = 0xa
|
||||
data[4] = 0xa
|
||||
data[6] = 0xa
|
||||
@@ -320,6 +358,41 @@ if __name__ == '__main__':
|
||||
|
||||
|
||||
genPkt.gen("./generated/shin/sync_sig_pkt.vh", 1)
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#>>>>>>设置同步信号的数据包2
|
||||
genPkt.clean()
|
||||
genPkt.setPktType(0)
|
||||
|
||||
genPkt.addSentence(''' ''')
|
||||
|
||||
#subPkt参数:索引、索引类型、地址、命令、长度、数据
|
||||
data = [0,] * 100 #bytearray(b"\0" * 100)
|
||||
data[0] = 0x0f #地址0x120
|
||||
data[2] = 0xa
|
||||
data[4] = 0xa
|
||||
data[6] = 0xa
|
||||
data[8] = 0xa
|
||||
|
||||
data[16] = 0x00 #地址0x130, sync同步点
|
||||
data[17] = 0x00 #地址0x131
|
||||
#data[18] = 0x10
|
||||
|
||||
data[24] = 0x80 #地址0x138, sync周期 4B
|
||||
data[25] = 0x00 #地址0x139
|
||||
|
||||
data[28] = 0x81 #sync1偏移
|
||||
data[29] = 0x0
|
||||
|
||||
data[36] = 0x20#sync3偏移
|
||||
data[37] = 0x00
|
||||
|
||||
genPkt.addSubPkt(0, 0, 0x120, 0xe, 0x28, data)
|
||||
genPkt.addSubPkt(3, 0, 0x120, 0x1, 0x28, data)
|
||||
|
||||
genPkt.gen("./generated/shin/sync_sig2_pkt.vh", 1)
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user