采用新的测试架构,使用python不仅生成测试用例的数据,也生成相关的固定无变化的代码

This commit is contained in:
2025-05-28 09:02:30 +08:00
parent c1839bb4e9
commit 131b388809
2 changed files with 44 additions and 61 deletions

View File

@@ -184,14 +184,48 @@ class GenPkt(object):
#def genAfterExc(gen, )
#+ '''//写入替换时间戳替换地址\n'''
#+ '''txBuf[0+3] = 8'h0c;\n'''
#+ '''txBuf[1+3] = 8'hc0;\n'''
#+ '''spi_trans( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''
def genWriteTransLenCode(gen_name, sm_idx):
return '''\n//写入发送长度\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,)
if __name__ == '__main__':
genPkt = GenPkt()
#-------------------------------------------------------------------------
#>>>>>>嗅探数据包
genPkt.setPktType(1)
genPkt.gen("./generated/shin/detect_pkt.vh", 1)
gen_file_def = "detect_pkt"
sm_idx = 0
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
+genWriteTransPktCode(gen_file_def, sm_idx)
+genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def, ), 1)
#-------------------------------------------------------------------------
#>>>>>>普通数据包 sm1
@@ -378,7 +412,7 @@ if __name__ == '__main__':
genPkt.clean()
genPkt.setPktType(0)
gen_file_def = "sync_sig2_pkt"
sm_idx = 0
sm_idx = 3
genPkt.addBeforeExc(
'''spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));\n'''
@@ -427,33 +461,15 @@ if __name__ == '__main__':
data[28] = 0x0 #sync1偏移
data[29] = 0x0
data[36] = 0x0#sync3偏移
data[36] = 0x0 #sync3偏移
data[37] = 0x0
genPkt.addSubPkt(3, 0, 0x120, 0x1, 0x28, data)
genPkt.addAfterExc(
'''\n//写入发送长度\n'''
+ '''`DEF_%s_sm(txBuf);\n'''%(gen_file_def, )
+ '''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,)
+ '''\n$fdisplay(spidata_file, "<<发包:");\n'''
+ '''`DEF_%s(txBuf);\n'''%(gen_file_def, )
+ '''spi_trans( (`MST_TX%d_ADDR), (`SPI_WRITE), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%(sm_idx, gen_file_def, )
#+ '''//写入替换时间戳替换地址\n'''
#+ '''txBuf[0+3] = 8'h0c;\n'''
#+ '''txBuf[1+3] = 8'hc0;\n'''
#+ '''spi_trans( (16'h24), (`SPI_WRITE), (2), (`IF_IDX(0)) );\n'''
+ '''\n//请求发送\n'''
+ '''txBuf[0+3] = `MST_TX_TRIGGER(%d);\n'''%(sm_idx, )
+ '''spi_trans( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );\n'''
+ '''\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_file_def,))
genPkt.addAfterExc(genWriteTransLenCode(gen_file_def, sm_idx)
+genWriteTransPktCode(gen_file_def, sm_idx)
+genTrgTransPktCode(gen_file_def, sm_idx)
+genReadAckPktCode(gen_file_def, sm_idx))
genPkt.gen("./generated/shin/%s.vh"%(gen_file_def,), 1)