增加超时停止的代码

This commit is contained in:
2025-07-16 14:46:02 +08:00
parent cea2d01945
commit d760ecff08
2 changed files with 41 additions and 4 deletions

View File

@@ -1,9 +1,9 @@
`timescale 1 ns / 1 ps
`define ENABLE_REG_RW_TEST
//`define ENABLE_DET_TEST
//`define ENABLE_SET_ADDR_TEST
//`define ENABLE_INT_INIT_TEST
`define ENABLE_DET_TEST
`define ENABLE_SET_ADDR_TEST
`define ENABLE_INT_INIT_TEST
`define ENABLE_DET_ERR_TEST
//`define ENABLE_SM1_SEND_TEST
//`define ENABLE_SMx_SEND_TEST
@@ -67,6 +67,10 @@ module ShinTopSpiTb(
wire [4:0] io_int_sig;
reg _reset_deadline_ind;
reg _deadline_ind;
reg[31:0] _deadline_ind_ctr;
ShinTop s_ShinTop_Mst(
.clock(clock),
.reset(reset | isSoftReset[0]),
@@ -246,6 +250,10 @@ initial begin
clk8x = 0;
reset = 1;
_reset_deadline_ind = 0;
_deadline_ind = 0;
_deadline_ind_ctr = 0;
_reset_deactive = 1'b0;
$timeformat(-9, 2, " ns", 8);
@@ -283,6 +291,21 @@ begin
$dumpvars(0, ShinTopSpiTb);//tb模块名称
end
always @(posedge clock or posedge _reset_deadline_ind) begin
if (_reset_deadline_ind == 1) begin
_deadline_ind_ctr <= 0;
#30 _reset_deadline_ind <= 0;
end
else begin
_deadline_ind_ctr <= _deadline_ind_ctr + 1;
end
if (_deadline_ind_ctr >= 10000) begin
_deadline_ind <= 1;
end
else begin
_deadline_ind <= 0;
end
end
always @(posedge reset) begin
_reset_deactive <= 1'b0;
@@ -710,6 +733,12 @@ initial begin
spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(2)) );
spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(3)) );
spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(4)) );
/*
$display("------------------------------ start! %t", $realtime);
_reset_deadline_ind = 1;
@(posedge _deadline_ind) #5 begin end
$display("------------------------------ End! %t", $realtime);
*/
end
`ifdef ENABLE_INT_INIT_TEST
@@ -748,6 +777,13 @@ initial begin
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)) );
/*
$display("------------------------------ start! %t", $realtime);
_reset_deadline_ind = 1;
@(posedge _deadline_ind) #5 begin end
$display("------------------------------ End! %t", $realtime);
*/
end
begin:CHECK_INTERRUPT_CFG_REG

View File

@@ -223,7 +223,8 @@ def genTrgTransPktCode(gen_name, sm_idx):
def genReadAckPktCode(gen_name, sm_idx):
return '''\n//等待回包\n'''\
+ '''@(posedge isResp) #5 begin end\n'''\
+ '''_reset_deadline_ind = 1;\n'''\
+ '''@(posedge isResp or posedge _deadline_ind) #5 begin end\n'''\
+ '''$fdisplay(spidata_file, ">>回包:");\n'''\
+ '''spi_trans( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%(sm_idx, gen_name,)