改变调试输出的模式,讲包中的子包按照逻辑分开,便于调试查看

This commit is contained in:
2025-05-23 12:56:24 +08:00
parent 77a037a17e
commit c1067f48e1

View File

@@ -25,6 +25,8 @@ module ShinTopSpiTb(
integer spidata_file;
integer c_line;
integer _pos;
integer _len;
wire [4:0] isSoftReset;
@@ -395,6 +397,55 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
$time/1000, ((sidx >= 5)? ((sidx >= 10)? (sidx - 10):(sidx - 5)):sidx), txBuf[1], txBuf[0],
((txBuf[2] == 0)? "Write":" Read"), slength);
if ( ((saddress == 16'h0800)
|| (saddress == 16'h1000)
|| (saddress == 16'h1800)
|| (saddress == 16'h2000)
|| (saddress == 16'h2800)
|| (saddress == 16'h3000)
|| (saddress == 16'h3800)
|| (saddress == 16'h4000))
&& ((sidx == 0) || (sidx == 5) || (sidx == 10))) begin
_pos = 3;
for (integer _k = 0; _k < 4; _k++) begin
if (scmd == 0) begin
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
end else begin
$fwrite(spidata_file, "%02h ", rxBuf[_k + _pos]);
end
end
$fwrite(spidata_file, "\n");
_pos = 4 + _pos;
for (; _pos < slength; ) begin
for (integer _k = 0; _k < 8; _k++) begin
if (scmd == 0) begin
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
_len = txBuf[_pos + 5] + (txBuf[_pos + 4] & 8'h0f) * 256;
end else begin
$fwrite(spidata_file, "%02h ", rxBuf[_k + _pos]);
_len = rxBuf[_pos + 5] + (rxBuf[_pos + 4] & 8'h0f) * 256;
end
end
$fwrite(spidata_file, "\n{{ ");
_pos = _pos + 8;
for (integer _k = 0; _k < _len; _k++) begin
if (scmd == 0) begin
$fwrite(spidata_file, "%02h ", txBuf[_k + _pos]);
end else begin
$fwrite(spidata_file, "%02h ", rxBuf[_k + _pos]);
end
c_line = 0;
if ((_k + 2)%16 == 0) begin
$fwrite(spidata_file, "\n");
c_line = 1;
end
end
$fwrite(spidata_file, "}}\n");
_pos = _pos + _len;
end
end else begin
for (integer i=0; i<slength; i++) begin
if (scmd == 0) begin
$fwrite(spidata_file, "%02h ", txBuf[i + 3]);
@@ -414,6 +465,7 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in
c_line = 0;
end
end
end
endtask
@@ -549,6 +601,7 @@ initial begin
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
@@ -597,6 +650,7 @@ initial begin
spi_trans( (`MST_RX_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
//子报文
$fdisplay(spidata_file, "<<发包:");
`DEF_set_addr_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_set_addr_pkt_len), (`IF_IDX(0)) ); //写入SM1
@@ -644,14 +698,13 @@ initial begin
$fdisplay(spidata_file, "--->>>嗅探");
//设置SM1在写入0x3地址触发enq
//txBuf[0+3] = 8'h04;
//txBuf[1+3] = 8'h00;
`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)) );
//无子报文
//`include "detect_pkt.vh"
$fdisplay(spidata_file, "<<发包:");
`DEF_detect_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_detect_pkt_len), (`IF_IDX(0)) ); //写入SM1
@@ -685,14 +738,12 @@ initial begin
$fdisplay(spidata_file, "--->>>嗅探");
//设置SM1在写入0x3地址触发enq
//txBuf[0+3] = 8'h04;
//txBuf[1+3] = 8'h00;
`DEF_detect_pkt_sm(txBuf);
spi_trans( (`MST_TX1_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
spi_trans( (`MST_RX1_LEN_ADDR), (`SPI_WRITE), (2), (`IF_IDX(0)) );
//无子报文MST_TX1_LEN_ADDR
//`include "detect_pkt.vh"
$fdisplay(spidata_file, "<<发包:");
`DEF_detect_pkt(txBuf);
spi_trans( (`MST_TX1_ADDR), (`SPI_WRITE), (`DEF_detect_pkt_len), (`IF_IDX(0)) ); //写入SM1
@@ -736,6 +787,7 @@ initial begin
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_seq_0_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_seq_0_pkt_len), (`IF_IDX(0)) ); //写入SM1
//发布请求
@@ -756,6 +808,7 @@ initial begin
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_seq_1_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_seq_1_pkt_len), (`IF_IDX(0)) ); //写入SM1
//发布请求
@@ -817,6 +870,7 @@ initial begin
`include "seq_2_pkt.vh"
$fdisplay(spidata_file, "<<发包:");
`DEF_seq_2_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)) );
@@ -842,6 +896,7 @@ initial begin
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_bc_r_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_bc_r_pkt_len), (`IF_IDX(0)) ); //写入SM1
//发布请求
@@ -864,6 +919,7 @@ initial begin
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_bc_w_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_bc_w_pkt_len), (`IF_IDX(0)) ); //写入SM1
//发布请求
@@ -897,6 +953,7 @@ initial begin
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_sync_pkt(txBuf);
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_sync_pkt_len), (`IF_IDX(0)) ); //写入SM1
@@ -924,6 +981,7 @@ initial begin
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_sync_sig_pkt(txBuf);
//spi_trans( (16'h1000), (`SPI_WRITE), (8'h94), (`IF_IDX(0)) ); //写入SM1
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_sync_sig_pkt_len), (`IF_IDX(0)) ); //写入SM1