diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index e37f83c..e068922 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -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]; - length <= slength + 4 + 1; + if (sidx >=(`ALL_DEV_NUM * 3)) begin + length <= slength + 4 + 1; + end else begin + length <= slength + 4; + end `endif idx <= sidx; diff --git a/tb/shinTest/pyutils/GenPkt.py b/tb/shinTest/pyutils/GenPkt.py index 8abe0f6..677af51 100644 --- a/tb/shinTest/pyutils/GenPkt.py +++ b/tb/shinTest/pyutils/GenPkt.py @@ -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 diff --git a/tb/shinTest/testcase/sync.py b/tb/shinTest/testcase/sync.py index 19728ea..a0d15f7 100644 --- a/tb/shinTest/testcase/sync.py +++ b/tb/shinTest/testcase/sync.py @@ -413,16 +413,16 @@ 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) data[0] = 0x0f #地址0x120 @@ -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)