修正python生成包的顺序错误,导致硬件发包错误

This commit is contained in:
2026-02-03 16:14:11 +08:00
parent 4cbd223786
commit 78810c5a5e
3 changed files with 18 additions and 13 deletions

View File

@@ -690,7 +690,11 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength, i
`else
txBuf[2] <= (scmd | slength[12:8]);
txBuf[3] <= slength[7:0];
if (sidx >=(`ALL_DEV_NUM * 3)) begin
length <= slength + 4 + 1;
end else begin
length <= slength + 4;
end
`endif
idx <= sidx;

View File

@@ -7,17 +7,17 @@ class GenPkt(object):
def __init__(self):
super(GenPkt, self).__init__()
self.pkt_buf = list() #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()
self.sub_pkt = [] #list()
self.pkt_data = None
def clean(self):
self.pkt_buf = list() #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()
self.sub_pkt = []#list()
self.pkt_data = None
def setPktType(self, type):
@@ -42,9 +42,9 @@ class GenPkt(object):
def addAfterExc(self, str):
self.sub_pkt.append([2, str])
def addSubPkt(self, dev_idx, ptype, addr, cmd, len, data):
if (len > 2032):
print('Error, bad subpkt len:%d', len)
def addSubPkt(self, dev_idx, ptype, addr, cmd, l, data):
if (l > 2032):
print('Error, bad subpkt len:%d', l)
return
if not (ptype in [0, 2]):
print('Error, bad subpkt type:', ptype)
@@ -54,7 +54,8 @@ class GenPkt(object):
return
self.pkt_sub_pkt = self.pkt_sub_pkt + 1
self.sub_pkt.append([0, dev_idx, ptype, addr, cmd, len, data])
self.sub_pkt.append([0, dev_idx, ptype, addr, cmd, l, data])
#print(len(self.sub_pkt), hex(cmd))
def gen(self, filename="pkt_verilog_test.v", filetype=0, appendgen=False, gen_name=None):
gen_pkt_type = 0

View File

@@ -413,15 +413,15 @@ def tc4():
genPkt.clean()
genPkt.setPktType(0)
sm_idx = 3
#print('------------')
genPkt.addBeforeExc(genEnableInsertTimeCode(0xa)
+ '''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
#+ '''_temp_time = rxBuf[3] + (rxBuf[4] << 8) + (rxBuf[5] << 16) + (rxBuf[6] << 24) + (rxBuf[7] << 32) + (rxBuf[8] << 40) + (rxBuf[9] << 48) + (rxBuf[10] << 56);\n'''
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100 #bytearray(b"\0" * 100)
@@ -649,8 +649,8 @@ def tc5():
+ '''_temp_time = rxBuf[`ARRAY_IDX_OFF] + (rxBuf[`ARRAY_IDX_OFF+1] << 8) + (rxBuf[`ARRAY_IDX_OFF+2] << 16) + (rxBuf[`ARRAY_IDX_OFF+3] << 24) + (rxBuf[`ARRAY_IDX_OFF+4] << 32) + (rxBuf[`ARRAY_IDX_OFF+5] << 40) + (rxBuf[`ARRAY_IDX_OFF+6] << 48) + (rxBuf[`ARRAY_IDX_OFF+7] << 56);\n'''
+ '''_temp_time = _temp_time + 32'h3000;\n\n''')
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
genPkt.addSubPkt(0x0, 0, 0x0, 0xc, 12, b'\0'*12)
genPkt.addSubPkt(0, 0, 0x18, 0xe, 2, [0x1, 0x58])
#subPkt参数索引、索引类型、地址、命令、长度、数据
data = [0,] * 100 #bytearray(b"\0" * 100)