增加超时停止的代码
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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,)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user