调整同步的测试用例

This commit is contained in:
2025-05-28 10:34:26 +08:00
parent af0c0ec8fc
commit f42e4c3dfa
2 changed files with 31 additions and 46 deletions

View File

@@ -11,6 +11,8 @@
//`define ENABLE_EXCHG_DATA_SEQ2_TEST
//`define ENABLE_EXCHG_DATA_BC_TEST
`define ENABLE_SYNC_TEST
`define ENABLE_SYNC_SIG0_TEST
`define ENABLE_SYNC_SIG1_TEST
module ShinTopSpiTb(
@@ -950,7 +952,7 @@ initial begin
---------------------------------------------------------------------------------------------------------*/
// 同步
begin:SYNC_TESTCASE
begin:SYNC_TESTCASE0
_t_start = $time;
#1000
@@ -986,40 +988,16 @@ initial begin
spi_trans( (16'h25), (`SPI_WRITE), (2), (`IF_IDX(0)) ); //清除替换时间戳替换地址寄存器
_t_end = $time;
$fdisplay(spidata_file, "该测试用例运行时间:%2tns", (_t_end - _t_start) / 1000);
end
`endif
`ifdef ENABLE_SYNC_SIG0_TEST
begin:SYNC_TESTCASE1
_t_start = $time;
#1000
`include "sync_sig_pkt.vh"
`DEF_sync_sig_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)) );
spi_trans( (16'h0100), (`SPI_READ), (8), (`IF_IDX(0)));
_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);
/*
$fdisplay(spidata_file, "读取时间:%d\n", _temp_time);
*/
_temp_time = _temp_time + 32'h3000;
/*
$fdisplay(spidata_file, "读取时间:%2h %2h %2h\n",
(_temp_time & 8'hff),
((_temp_time >> 8) & 8'hff),
((_temp_time >> 16) & 8'hff));
*/
$fdisplay(spidata_file, "<<发包:");
`DEF_sync_sig_pkt(txBuf);
txBuf[16 + 3 + 12] = (_temp_time & 8'hff);
txBuf[17 + 3 + 12] = (_temp_time >> 8) & 8'hff;
txBuf[18 + 3 + 12] = (_temp_time >> 16) & 8'hff;
spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_sync_sig_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_sync_sig_pkt_len), (`IF_IDX(0)) );//读一下SM0的切换地址将fifo弹出
//spi_trans( (16'h0100), (`SPI_READ), (32), (`IF_IDX(0)) );
spi_trans( (16'h0100), (`SPI_READ), (16'h48), (`IF_IDX(1)) );
@@ -1027,8 +1005,8 @@ initial begin
spi_trans( (16'h0100), (`SPI_READ), (16'h48), (`IF_IDX(3)) );
spi_trans( (16'h0100), (`SPI_READ), (16'h48), (`IF_IDX(4)) );
/*
#10000
#100000
//清脉冲
txBuf[0+3] = 0; //负载0x122 sync0脉冲宽度
txBuf[1+3] = 0; //负载0x123
@@ -1042,11 +1020,14 @@ initial begin
spi_trans( (16'h0122), (`SPI_WRITE), (8), (`IF_IDX(2)) ); //slv2
spi_trans( (16'h0122), (`SPI_WRITE), (8), (`IF_IDX(3)) ); //slv2
spi_trans( (16'h0122), (`SPI_WRITE), (8), (`IF_IDX(4)) ); //slv2
*/
#100000
_t_end = $time;
$fdisplay(spidata_file, "该测试用例运行时间:%2tns", (_t_end - _t_start) / 1000);
end
`endif
`ifdef ENABLE_SYNC_SIG1_TEST
begin:SYNC_TESTCASE2
_t_start = $time;
#1000
@@ -1075,7 +1056,7 @@ initial begin
spi_trans( (16'h40), (`SPI_WRITE), (1), (`IF_IDX(1)) );//复位从站2
*/
#2000000
#1000000
$display("Testcase Finished! Time Out !!!");
$fclose(spidata_file);
$stop;