From 1c842bbe32c33e8fca00aa10950276d77165b388 Mon Sep 17 00:00:00 2001 From: bacon Date: Tue, 20 May 2025 11:48:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BB=A3=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=97=85=E6=8E=A2=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/ShinTopSpiTb.v | 60 +++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 73191ff..fab86c6 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -528,11 +528,8 @@ initial begin end - - - // 顺序索引 - #50000 + //#50000 #50000 #50000 $fdisplay(spidata_file, "--->>>嗅探后,检查链路状态寄存器"); @@ -605,8 +602,6 @@ initial begin //读写 #50000 #50000 - #50000 - #50000 $fdisplay(spidata_file, "--->>>设置顺序地址后,检查顺序地址"); //spi_trans( (16'h0010), (`SPI_READ), (5), (`IF_IDX(0)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(1)) ); @@ -614,7 +609,55 @@ initial begin spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(3)) ); spi_trans( (16'h0000), (`SPI_READ), (16), (`IF_IDX(4)) ); - $fdisplay(spidata_file, "\n\n测试用例5-交换数据"); + + //嗅探 + #10000 + $fdisplay(spidata_file, "\n\n测试用例5-发送嗅探包,需要在波形文件里检查"); + begin + $fdisplay(spidata_file, "--->>>嗅探前,检查链路状态寄存器"); + //spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(1)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(2)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(3)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(4)) ); + + $fdisplay(spidata_file, "--->>>嗅探"); + //设置SM1在写入0x3地址触发enq + txBuf[0+3] = 8'h03; + txBuf[1+3] = 8'h00; + spi_trans( (16'h0202), (`SPI_WRITE), (2), (`IF_IDX(0)) ); + + //无子报文 + `include "detect_pkt.vh" + spi_trans( (16'h1000), (`SPI_WRITE), (4), (`IF_IDX(0)) ); //写入SM1 + + //发布请求 + txBuf[0+3] = 8'h04; + txBuf[1+3] = 8'h00; + spi_trans( (16'h21), (`SPI_WRITE), (2), (`IF_IDX(0)) );//写入长度 + + txBuf[0+3] = 8'h01; + spi_trans( (16'h20), (`SPI_WRITE), (1), (`IF_IDX(0)) );//发送SM0 接收SM0, 请求发送 + @(posedge isResp) #5 begin end + + end + + + // 顺序索引 + //#50000 + #50000 + #50000 + $fdisplay(spidata_file, "--->>>嗅探后,检查链路状态寄存器"); + //spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(0)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(1)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(2)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(3)) ); + spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(4)) ); + + + #50000 + #50000 + $fdisplay(spidata_file, "\n\n测试用例6-交换数据"); $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); begin @@ -625,9 +668,6 @@ initial begin `include "seq_pkt.vh" spi_trans( (16'h1000), (`SPI_WRITE), (516), (`IF_IDX(0)) ); //写入SM1 - - - //发布请求 txBuf[0+3] = 8'h04; txBuf[1+3] = 8'h02;