From 1dcb323e74b4cc1e9bcfaf117552768d6cb88251 Mon Sep 17 00:00:00 2001 From: bacon Date: Fri, 30 May 2025 10:18:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=90=88=E5=B9=B6shintop?= =?UTF-8?q?=E8=BD=AF=E4=BB=B6=E4=B8=AD=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/gen_pkt.py | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index a3a320d..fd26960 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -182,6 +182,52 @@ class GenPkt(object): f.write("txBuf[%d]=8'h%02X;\n"%(3 + _k, self.pkt_buf[_k])) f.close() + + +def genWriteTransLenCode(gen_name, sm_idx): + return '''\n//写入发送长度\n'''\ + + '''$fdisplay(spidata_file, "--写数据交换长度");\n'''\ + + '''`DEF_%s_sm(txBuf);\n'''%(gen_name, )\ + + '''spi_trans( (`MST_TX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%(sm_idx,)\ + + '''spi_trans( (`MST_RX%d_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''%(sm_idx,) + +def genWriteTransPktCode(gen_name, sm_idx): + return '''\n$fdisplay(spidata_file, "<<发包:");\n'''\ + + '''`DEF_%s(txBuf);\n'''%(gen_name, )\ + + '''spi_trans( (`MST_TX%d_ADDR), (`SPI_WRITE), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%(sm_idx, gen_name, ) + +def genTrgTransPktCode(gen_name, sm_idx): + return '''\n//请求发送\n'''\ + + '''$fdisplay(spidata_file, "--请求发送");\n'''\ + + '''txBuf[0+3] = `MST_TX_TRIGGER(%d);\n'''%(sm_idx, )\ + + '''spi_trans( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );\n''' + +def genReadAckPktCode(gen_name, sm_idx): + return '''\n//等待回包\n'''\ + + '''@(posedge isResp) #5 begin end\n'''\ + + '''$fdisplay(spidata_file, ">>回包:");\n'''\ + + '''spi_trans( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%(sm_idx, gen_name,) + +def genEnableInsertTimeCode(pos, enableTime=True, enableDelay=True): + data = pos & 0x3fff + if enableTime: + data = data | 0x8000 + if enableDelay: + data = data | 0x4000 + return '''//写入替换时间戳替换地址\n'''\ + + '''$fdisplay(spidata_file, "--增加时间戳插入");\n'''\ + + '''txBuf[0+3] = 8'h%x;\n'''%(data & 0xff, )\ + + '''txBuf[1+3] = 8'h%x;\n'''%((data >> 8) & 0xff, )\ + + '''spi_trans( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n''' + +def genDisableInsertTimeCode(): + return '''\n//清除替换时间戳替换地址\n'''\ + + '''$fdisplay(spidata_file, "--清除时间戳插入");\n'''\ + + '''txBuf[0+3] = 8'h00;\n'''\ + + '''txBuf[1+3] = 8'h00;\n'''\ + + '''spi_trans( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) ); //清除替换时间戳替换地址寄存器\n''' + + if __name__ == '__main__': genPkt = GenPkt() @@ -318,6 +364,7 @@ if __name__ == '__main__': data[14] = 64 data[15] = 0 + #subPkt参数:索引、索引类型、地址、命令、长度、数据 genPkt.addSubPkt(0x02, 0, 0x0300, 0x1, 4, data) #sm0 genPkt.addSubPkt(0x01, 0, 0x0308, 0x1, 4, data) #sm2