采用新的测试架构,使用python不仅生成测试用例的数据,也生成相关的固定无变化的代码
This commit is contained in:
@@ -666,24 +666,6 @@ initial begin
|
||||
$fdisplay(spidata_file, "--->>>嗅探");
|
||||
|
||||
`include "detect_pkt.vh"
|
||||
//设置SM1在写入0x4 len 触发enq
|
||||
//设置SM0在读出0x4 len 触发deq
|
||||
`DEF_detect_pkt_sm(txBuf);
|
||||
spi_trans( (`MST_TX_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||
spi_trans( (`MST_RX_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||
|
||||
//无子报文
|
||||
$fdisplay(spidata_file, "<<发包:");
|
||||
`DEF_detect_pkt(txBuf);
|
||||
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_detect_pkt_len), (`IF_IDX(0)) ); //写入SM1
|
||||
|
||||
//发布请求
|
||||
txBuf[0+3] = `MST_TX_TRG; //8'h01;
|
||||
spi_trans( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );//发送SM0 接收SM0, 请求发送
|
||||
@(posedge isResp) #5 begin end
|
||||
|
||||
$fdisplay(spidata_file, ">>回包:");
|
||||
spi_trans( (`MST_RX_ADDR), (`SPI_READ), (`DEF_detect_pkt_len), (`IF_IDX(0)) );//读一下SM0的切换地址,将fifo弹出
|
||||
|
||||
// 顺序索引
|
||||
//#50000
|
||||
@@ -776,22 +758,7 @@ initial begin
|
||||
$fdisplay(spidata_file, "--->>>嗅探");
|
||||
//设置SM1在写入0x3地址触发enq
|
||||
|
||||
`DEF_detect_pkt_sm(txBuf);
|
||||
spi_trans( (`MST_TX_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||
spi_trans( (`MST_RX_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
|
||||
|
||||
//无子报文
|
||||
$fdisplay(spidata_file, "<<发包:");
|
||||
`DEF_detect_pkt(txBuf);
|
||||
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_detect_pkt_len), (`IF_IDX(0)) ); //写入SM1
|
||||
|
||||
//发布请求
|
||||
|
||||
txBuf[0+3] = `MST_TX_TRG;
|
||||
spi_trans( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );//发送SM0 接收SM0, 请求发送
|
||||
@(posedge isResp) #5 begin end
|
||||
$fdisplay(spidata_file, ">>回包:");
|
||||
spi_trans( (`MST_RX_ADDR), (`SPI_READ), (`DEF_detect_pkt_len), (`IF_IDX(0)) );//读一下SM0的切换地址,将fifo弹出
|
||||
`include "detect_pkt.vh"
|
||||
|
||||
$fdisplay(spidata_file, "--->>>嗅探后,检查链路状态寄存器");
|
||||
//spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) );
|
||||
|
||||
@@ -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'''
|
||||
@@ -432,28 +466,10 @@ if __name__ == '__main__':
|
||||
|
||||
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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user