From 6bea895fc1d74585fad73239445042de83fe356f Mon Sep 17 00:00:00 2001 From: bacon Date: Mon, 21 Jul 2025 18:32:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E7=94=9F=E6=88=90=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tb/shinTest/ShinTopSpiTb.v | 47 +++++++++++++++++++++++++++++++++++--- tb/shinTest/gen_pkt.py | 4 ++-- 2 files changed, 46 insertions(+), 5 deletions(-) diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 5dcb765..00ed6be 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -1,7 +1,7 @@ `timescale 1 ns / 1 ps `define ENABLE_REG_RW_TEST -`define ENABLE_ENCRYPTION +//`define ENABLE_ENCRYPTION `define ENABLE_DET_TEST `define ENABLE_SET_ADDR_TEST `define ENABLE_INT_INIT_TEST @@ -9,6 +9,7 @@ `define ENABLE_SM1_SEND_TEST //`define ENABLE_SMx_SEND_TEST //`define ENABLE_ERR_PKT1_TEST +`define ENABLE_ERR_PKT2_TEST //`define ENABLE_EXCHG_DATA_SEQ0_TEST //`define ENABLE_EXCHG_DATA_SEQ1_TEST @@ -301,7 +302,7 @@ always @(posedge clock or posedge _reset_deadline_ind) begin else begin _deadline_ind_ctr <= _deadline_ind_ctr + 1; end - if (_deadline_ind_ctr >= 20000) begin + if (_deadline_ind_ctr >= 18000) begin _deadline_ind <= 1; end else begin @@ -1090,7 +1091,7 @@ initial begin //嗅探 _t_start = $realtime; #1000 - $fdisplay(spidata_file, "\n\n测试用例:发送错误数据包"); + $fdisplay(spidata_file, "\n\n测试用例:发送错误数据包1"); `include "err_pkt1.vh" @@ -1105,6 +1106,46 @@ initial begin spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(4)) ); + $fdisplay(spidata_file, "-清除中断"); + txBuf[3] = 8'h00; + txBuf[4] = 8'h00; + txBuf[5] = 8'h00; + txBuf[6] = 8'h60; + spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(0)) ); + spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(1)) ); + spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(2)) ); + spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(3)) ); + spi_trans( (16'h78), (`SPI_WRITE), (4), (`IF_IDX(4)) ); + + $fdisplay(spidata_file, "-再次检查中断"); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(0)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(1)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(2)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(3)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(4)) ); + end +`endif + +`ifdef ENABLE_ERR_PKT2_TEST + begin:ERR_PKT2_TESTCASE + //嗅探 + _t_start = $realtime; + #1000 + $fdisplay(spidata_file, "\n\n测试用例:发送错误数据包2"); + + `include "err_pkt2.vh" + + _t_end = $realtime; + $fdisplay(spidata_file, "该测试用例运行时间:%t\n", _t_end - _t_start); + + $fdisplay(spidata_file, "-检查中断"); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(0)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(1)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(2)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(3)) ); + spi_trans( (16'h74), (`SPI_READ), (4), (`IF_IDX(4)) ); + + $fdisplay(spidata_file, "-清除中断"); txBuf[3] = 8'h00; txBuf[4] = 8'h00; diff --git a/tb/shinTest/gen_pkt.py b/tb/shinTest/gen_pkt.py index 94b0ac1..e29785e 100755 --- a/tb/shinTest/gen_pkt.py +++ b/tb/shinTest/gen_pkt.py @@ -68,8 +68,6 @@ class GenPkt(object): print('Error, bad pkt_len:', pkt_len) return - print("pkt_len:%d, data_len:%d"%(pkt_len, pkt_len - 4)) - i = 4 if (self.pkt_type == 1): pkt_len = 4 @@ -88,6 +86,7 @@ class GenPkt(object): for d in self.pkt_data: self.pkt_buf.append(d) + i = pkt_len #print("-----------------------------", filename, self.pkt_type, pkt_len, self.pkt_buf) else: #for i in range(pkt_len): @@ -155,6 +154,7 @@ class GenPkt(object): self.pkt_buf.append(0) i = i + 1 + print("pkt_len:%d, data_len:%d"%(pkt_len, pkt_len - 4)) f = open(filename, "wt+") if filetype == 1: for md in self.sub_pkt: