From ddfd4a0f62ea5ad3bfb89ffdb3834d0192a9546a Mon Sep 17 00:00:00 2001 From: bacon Date: Thu, 22 May 2025 17:32:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B9=BF=E6=92=AD=E8=AF=BB?= =?UTF-8?q?=E7=9A=84=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/ShinTopSpiTb.v | 22 +++++++++++++++++++++- tb/shinTest/gen_pkt.py | 23 ++++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index d90f14c..aa45db9 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -673,7 +673,7 @@ initial begin spi_trans( (16'h00c0), (`SPI_READ), (6), (`IF_IDX(4)) ); -`ifndef ENABLE_CODE +`ifdef ENABLE_CODE begin $fdisplay(spidata_file, "嗅探:使用SM1"); $fdisplay(spidata_file, "--->>>嗅探前,检查链路状态寄存器"); @@ -774,6 +774,26 @@ initial begin //spi_trans( (16'h2800), (`SPI_READ), (64), (`IF_IDX(3)) ); //spi_trans( (16'h3800), (`SPI_READ), (64), (`IF_IDX(4)) ); + #1000 + $display("read&write @ %d", s_ShinTop_Mst.interface__io_cReg_timeStamp); + begin + $fdisplay(spidata_file, "\n--->>>广播读"); + `include "bc_r_pkt.vh" + + `DEF_bc_r_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)) ); + + `DEF_bc_r_pkt(txBuf); + spi_trans( (`MST_TX_ADDR), (`SPI_WRITE), (`DEF_bc_r_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_bc_r_pkt_len), (`IF_IDX(0)) );//读一下SM0的切换地址,将fifo弹出 + end /*--------------------------------------------------------------------------------------------------------- 测试用例 diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 4b559af..fb9d16f 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -250,4 +250,25 @@ if __name__ == '__main__': genPkt.addSubPkt(0x0, 0, random.randint(0, 65535), 0xb, 2, data) - genPkt.gen("./generated/shin/set_addr_pkt.vh", 1) \ No newline at end of file + genPkt.gen("./generated/shin/set_addr_pkt.vh", 1) + + + #------------------------------------------------------------------------- + #>>>>>>广播读 + genPkt.clean() + genPkt.setPktType(0) + + #subPkt参数:索引、索引类型、地址、命令、长度、数据 + genPkt.addSubPkt(0x0, 0, 0xc0, 0xd, 4, b"\0"*4) + genPkt.addSubPkt(0x1, 0, 0xc0, 0x0, 4, b"\0"*4) + genPkt.addSubPkt(0x2, 0, 0xc0, 0x0, 4, b"\0"*4) + genPkt.addSubPkt(0x3, 0, 0xc0, 0x0, 4, b"\0"*4) + genPkt.addSubPkt(0x4, 0, 0xc0, 0x0, 4, b"\0"*4) + genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4) + genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4) + genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4) + genPkt.addSubPkt(random.randint(0, 2048), 0, 0xc0, 0xd, 4, b"\0"*4) + + genPkt.gen("./generated/shin/bc_r_pkt.vh", 1) + +