From 73e02aa0acf917c6e936237f56d196d1e47120c2 Mon Sep 17 00:00:00 2001 From: bacon Date: Wed, 4 Jun 2025 10:56:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3INT=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E8=BE=93=E5=87=BA=E4=BB=A5=E5=8F=8A=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E7=9A=84=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/ShinTopSpiTb.v | 198 ++++++++++++++++++------------------- 1 file changed, 95 insertions(+), 103 deletions(-) diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 589c04b..d8c4790 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -236,6 +236,8 @@ initial begin _reset_deactive = 1'b0; + $timeformat(-9, 2, " ns", 8); + spi_csn = ~15'b0; #100 @@ -278,24 +280,6 @@ always @(negedge reset) begin _reset_deactive <= 1'b1; end - - - - - - - - - - - - - - - - - - `define SCKFRE #640 reg sck = 0; @@ -432,9 +416,9 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in @( negedge isBusy) #1000 begin - //$fwrite(spidata_file, "------------%5t------------\n", $time); - $fwrite(spidata_file, "T:%2tns \tdev:%4d, addr:0x%02h%02h, %s, len:%4d\n", - $time/1000, ((sidx >= 5)? ((sidx >= 10)? (sidx - 10):(sidx - 5)):sidx), txBuf[0], txBuf[1], + //$fwrite(spidata_file, "------------%5t------------\n", $realtime); + $fwrite(spidata_file, "T:%t \tdev:%4d, addr:0x%02h%02h, %s, len:%4d\n", + $realtime, ((sidx >= 5)? ((sidx >= 10)? (sidx - 10):(sidx - 5)):sidx), txBuf[0], txBuf[1], ((txBuf[2] == 0)? "Write":" Read"), slength); if ( ((saddress == 16'h0800) @@ -509,54 +493,62 @@ task spi_trans( input [15:0] saddress, input [7:0] scmd, input [12:0] slength,in endtask +always @(posedge _reset_deactive) begin + if (io_int_sig[0]) $fdisplay(spidata_file, "MST INT SETUP: %t", $realtime); + if (io_int_sig[1]) $fdisplay(spidata_file, "SLV0 INT SETUP: %t", $realtime); + if (io_int_sig[2]) $fdisplay(spidata_file, "SLV1 INT SETUP: %t", $realtime); + if (io_int_sig[3]) $fdisplay(spidata_file, "SLV2 INT SETUP: %t", $realtime); + if (io_int_sig[4]) $fdisplay(spidata_file, "SLV3 INT SETUP: %t", $realtime); +end + always @(posedge io_int_sig[0]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "MST INT SETUP: %tns", $time / 1000); + $fdisplay(spidata_file, "MST INT SETUP: %t", $realtime); end always @(posedge io_int_sig[1]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV0 INT SETUP: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV0 INT SETUP: %t", $realtime); end always @(posedge io_int_sig[2]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV1 INT SETUP: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV1 INT SETUP: %t", $realtime); end always @(posedge io_int_sig[3]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV2 INT SETUP: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV2 INT SETUP: %t", $realtime); end always @(posedge io_int_sig[4]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV3 INT SETUP: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV3 INT SETUP: %t", $realtime); end always @(negedge io_int_sig[0]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "MST INT CLEAR: %tns", $time / 1000); + $fdisplay(spidata_file, "MST INT CLEAR: %t", $realtime); end always @(negedge io_int_sig[1]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV0 INT CLEAR: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV0 INT CLEAR: %t", $realtime); end always @(negedge io_int_sig[2]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV1 INT CLEAR: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV1 INT CLEAR: %t", $realtime); end always @(negedge io_int_sig[3]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV2 INT CLEAR: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV2 INT CLEAR: %t", $realtime); end always @(negedge io_int_sig[4]) begin if (_reset_deactive == 1'b1) - $fdisplay(spidata_file, "SLV3 INT CLEAR: %tns", $time / 1000); + $fdisplay(spidata_file, "SLV3 INT CLEAR: %t", $realtime); end @@ -603,15 +595,15 @@ initial begin 1. 从IP中读取寄存器,上电后的寄存器期望值为0 ---------------------------------------------------------------------------------------------------------*/ begin:READ_REG_TESTCASE - _t_start = $time; + _t_start = $realtime; $fdisplay(spidata_file, "测试用例:从IP中读取寄存器,上电后的寄存器期望值为0"); spi_trans( (16'h00), (`SPI_READ), (64), (`IF_IQSPI(0)) ); spi_trans( (16'h00), (`SPI_READ), (64), (`IF_IQSPI(1)) ); spi_trans( (16'h00), (`SPI_READ), (64), (`IF_IQSPI(2)) ); spi_trans( (16'h00), (`SPI_READ), (64), (`IF_IQSPI(3)) ); spi_trans( (16'h00), (`SPI_READ), (64), (`IF_IQSPI(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif @@ -661,7 +653,7 @@ initial begin #1000 spi_trans( (16'h0), (`SPI_WRITE), (1), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>设置完毕,检查接口寄存器"); + $fdisplay(spidata_file, "-设置完毕,检查接口寄存器"); spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(0)) ); spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(1)) ); spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(2)) ); @@ -681,14 +673,14 @@ initial begin if (io_int_sig[4]) $fdisplay(spidata_file, "SLV3 Interrupt!"); end - $fdisplay(spidata_file, "--->>>检查中断"); + $fdisplay(spidata_file, "-检查中断"); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>清中断"); + $fdisplay(spidata_file, "-清中断"); txBuf[0+3] = 8'h00; txBuf[1+3] = 8'h00; txBuf[2+3] = 8'h00; @@ -699,7 +691,7 @@ initial begin spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(3)) ); spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>检查中断"); + $fdisplay(spidata_file, "-检查中断"); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(2)) ); @@ -710,14 +702,14 @@ initial begin begin:CHECK_INTERRUPT_CFG_REG $fdisplay(spidata_file, "\n\n测试用例:检查设备的INTERRUPT信号设置寄存器"); - $fdisplay(spidata_file, "--->>>检查中断"); + $fdisplay(spidata_file, "-检查中断"); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>设置中断"); + $fdisplay(spidata_file, "-设置中断"); txBuf[0+3] = 8'h00; txBuf[1+3] = 8'h00; txBuf[2+3] = 8'h00; @@ -728,14 +720,14 @@ initial begin spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) ); spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>检查中断"); + $fdisplay(spidata_file, "-检查中断"); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(3)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>设置中断"); + $fdisplay(spidata_file, "-设置中断"); txBuf[0+3] = 8'h0F; txBuf[1+3] = 8'h00; txBuf[2+3] = 8'h00; @@ -746,7 +738,7 @@ initial begin spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(3)) ); spi_trans( (16'h70), (`SPI_WRITE), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>检查中断"); + $fdisplay(spidata_file, "-检查中断"); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h70), (`SPI_READ), (4), (`IF_IDX(2)) ); @@ -761,32 +753,32 @@ initial begin ---------------------------------------------------------------------------------------------------------*/ //嗅探 begin:DETECT_DEV_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:发送嗅探包,需要在波形文件里检查"); - $fdisplay(spidata_file, "--->>>嗅探前,检查链路状态寄存器"); + $fdisplay(spidata_file, "-嗅探前,检查链路状态寄存器"); //spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(2)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(3)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>嗅探"); + $fdisplay(spidata_file, "-嗅探"); `include "detect_pkt.vh" // 顺序索引 //#50000 #1000 - $fdisplay(spidata_file, "--->>>嗅探后,检查链路状态寄存器"); + $fdisplay(spidata_file, "-嗅探后,检查链路状态寄存器"); //spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(2)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(3)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif @@ -795,18 +787,18 @@ initial begin 测试用例 ---------------------------------------------------------------------------------------------------------*/ begin:SET_ADDR_TESTCASE - _t_start = $time; + _t_start = $realtime; $fdisplay(spidata_file, "\n\n测试用例:设置顺序索引"); $display("index @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); - $fdisplay(spidata_file, "--->>>设置顺序地址前,检查顺序地址"); + $fdisplay(spidata_file, "-设置顺序地址前,检查顺序地址"); //spi_trans( (16'h0010), (`SPI_READ), (5), (`IF_IDX(0)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(1)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(2)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(3)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>设置顺序地址"); + $fdisplay(spidata_file, "-设置顺序地址"); `include "set_addr_pkt.vh" //测试 @@ -818,14 +810,14 @@ initial begin //读写 #1000 - $fdisplay(spidata_file, "--->>>设置顺序地址后,检查顺序地址"); + $fdisplay(spidata_file, "-设置顺序地址后,检查顺序地址"); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(1)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(2)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(3)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif @@ -835,45 +827,45 @@ initial begin ---------------------------------------------------------------------------------------------------------*/ begin:DETECT_DEV_TESTCASE_2 //嗅探 - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:发送嗅探包,需要在波形文件里检查"); $fdisplay(spidata_file, "嗅探:使用SM0"); - $fdisplay(spidata_file, "--->>>嗅探前,检查链路状态寄存器"); + $fdisplay(spidata_file, "-嗅探前,检查链路状态寄存器"); //spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(2)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(3)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "--->>>嗅探"); + $fdisplay(spidata_file, "-嗅探"); //设置SM1在写入0x3地址触发enq `include "detect_pkt.vh" - $fdisplay(spidata_file, "--->>>嗅探后,检查链路状态寄存器"); + $fdisplay(spidata_file, "-嗅探后,检查链路状态寄存器"); //spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(1)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(2)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(3)) ); spi_trans( (16'h00c0), (`SPI_READ), (4), (`IF_IDX(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_SM1_SEND_TEST begin:SM1_SEND_TESTCASE - _t_start = $time; + _t_start = $realtime; $fdisplay(spidata_file, "\n单读:使用SM1"); - $fdisplay(spidata_file, "--->>>SM1:数据包"); + $fdisplay(spidata_file, "-SM1:数据包"); `include "sm1_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif @@ -882,26 +874,26 @@ initial begin begin:SM2_SEND_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); $fdisplay(spidata_file, "\n广播读:使用SM2"); - $fdisplay(spidata_file, "--->>>广播读"); + $fdisplay(spidata_file, "-广播读"); `include "sm2_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end begin:SM3_SEND_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); $fdisplay(spidata_file, "\n广播写:使用SM3"); - $fdisplay(spidata_file, "--->>>SM3广播写"); + $fdisplay(spidata_file, "-SM3广播写"); `include "sm3_pkt.vh" @@ -910,8 +902,8 @@ initial begin spi_trans( (16'h0800), (`SPI_READ), (16), (`IF_IDX(3)) ); spi_trans( (16'h0800), (`SPI_READ), (16), (`IF_IDX(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif @@ -927,21 +919,21 @@ initial begin ---------------------------------------------------------------------------------------------------------*/ `ifdef ENABLE_EXCHG_DATA_SEQ0_TEST begin:EXCHG_DATA_SEQ0_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:交换数据sm0~sm7"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); `include "seq_0_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_EXCHG_DATA_SEQ1_TEST begin:EXCHG_DATA_SEQ1_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:交换数据写dev2_sm0/dev1_sm2/dev3_sm4/dev4_sm6"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); @@ -953,14 +945,14 @@ initial begin spi_trans( (16'h2800), (`SPI_READ), (64), (`IF_IDX(3)) ); spi_trans( (16'h3800), (`SPI_READ), (64), (`IF_IDX(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_EXCHG_DATA_SEQ2_TEST begin:EXCHG_DATA_SEQ2_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:交换数据读dev1_sm1/dev2_sm3/dev3_sm5/dev4_sm7"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); @@ -1004,43 +996,43 @@ initial begin `include "seq_2_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_EXCHG_DATA_SEQ3_TEST begin:EXCHG_DATA_SEQ3_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:交换数据读写"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); `include "seq_3_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_BC_R_TEST begin:EXCHG_DATA_BC_R_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:广播读"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); `include "bc_r_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_BC_W_TEST begin:EXCHG_DATA_BC_W_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); @@ -1052,14 +1044,14 @@ initial begin spi_trans( (16'h0800), (`SPI_READ), (32), (`IF_IDX(3)) ); spi_trans( (16'h0800), (`SPI_READ), (32), (`IF_IDX(4)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_BC_RW_TEST begin:EXCHG_DATA_BC_RW_TESTCASE - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:广播读写"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); @@ -1068,8 +1060,8 @@ initial begin spi_trans( (16'h0180), (`SPI_READ), (128), (`IF_IDX(1)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif @@ -1082,7 +1074,7 @@ initial begin // 同步 begin:SYNC_TESTCASE0 - _t_start = $time; + _t_start = $realtime; #1000 $display("sync @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); @@ -1091,14 +1083,14 @@ initial begin //设置SM1在写入 0x18 len触发enq `include "sync_pkt.vh" - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_SYNC_SIG0_TEST begin:SYNC_TESTCASE1 - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:测试同步信号(电平)"); @@ -1127,14 +1119,14 @@ initial begin spi_trans( (16'h0122), (`SPI_WRITE), (8), (`IF_IDX(4)) ); //slv2 #100000 - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif `ifdef ENABLE_SYNC_SIG1_TEST begin:SYNC_TESTCASE2 - _t_start = $time; + _t_start = $realtime; #1000 $fdisplay(spidata_file, "\n\n测试用例:测试同步信号(脉冲)"); @@ -1146,8 +1138,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)) ); - _t_end = $time; - $fdisplay(spidata_file, "该测试用例运行时间:%2tns\n", (_t_end - _t_start) / 1000); + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); end `endif