增加超时停止的代码
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
`timescale 1 ns / 1 ps
|
`timescale 1 ns / 1 ps
|
||||||
|
|
||||||
`define ENABLE_REG_RW_TEST
|
`define ENABLE_REG_RW_TEST
|
||||||
//`define ENABLE_DET_TEST
|
`define ENABLE_DET_TEST
|
||||||
//`define ENABLE_SET_ADDR_TEST
|
`define ENABLE_SET_ADDR_TEST
|
||||||
//`define ENABLE_INT_INIT_TEST
|
`define ENABLE_INT_INIT_TEST
|
||||||
`define ENABLE_DET_ERR_TEST
|
`define ENABLE_DET_ERR_TEST
|
||||||
//`define ENABLE_SM1_SEND_TEST
|
//`define ENABLE_SM1_SEND_TEST
|
||||||
//`define ENABLE_SMx_SEND_TEST
|
//`define ENABLE_SMx_SEND_TEST
|
||||||
@@ -67,6 +67,10 @@ module ShinTopSpiTb(
|
|||||||
|
|
||||||
wire [4:0] io_int_sig;
|
wire [4:0] io_int_sig;
|
||||||
|
|
||||||
|
reg _reset_deadline_ind;
|
||||||
|
reg _deadline_ind;
|
||||||
|
reg[31:0] _deadline_ind_ctr;
|
||||||
|
|
||||||
ShinTop s_ShinTop_Mst(
|
ShinTop s_ShinTop_Mst(
|
||||||
.clock(clock),
|
.clock(clock),
|
||||||
.reset(reset | isSoftReset[0]),
|
.reset(reset | isSoftReset[0]),
|
||||||
@@ -246,6 +250,10 @@ initial begin
|
|||||||
clk8x = 0;
|
clk8x = 0;
|
||||||
reset = 1;
|
reset = 1;
|
||||||
|
|
||||||
|
_reset_deadline_ind = 0;
|
||||||
|
_deadline_ind = 0;
|
||||||
|
_deadline_ind_ctr = 0;
|
||||||
|
|
||||||
_reset_deactive = 1'b0;
|
_reset_deactive = 1'b0;
|
||||||
|
|
||||||
$timeformat(-9, 2, " ns", 8);
|
$timeformat(-9, 2, " ns", 8);
|
||||||
@@ -283,6 +291,21 @@ begin
|
|||||||
$dumpvars(0, ShinTopSpiTb);//tb模块名称
|
$dumpvars(0, ShinTopSpiTb);//tb模块名称
|
||||||
end
|
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
|
always @(posedge reset) begin
|
||||||
_reset_deactive <= 1'b0;
|
_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(2)) );
|
||||||
spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(3)) );
|
spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(3)) );
|
||||||
spi_trans( (16'h00), (`SPI_READ), (1), (`IF_IDX(4)) );
|
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
|
end
|
||||||
|
|
||||||
`ifdef ENABLE_INT_INIT_TEST
|
`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(2)) );
|
||||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
|
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(3)) );
|
||||||
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(4)) );
|
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
|
end
|
||||||
|
|
||||||
begin:CHECK_INTERRUPT_CFG_REG
|
begin:CHECK_INTERRUPT_CFG_REG
|
||||||
|
|||||||
@@ -223,7 +223,8 @@ def genTrgTransPktCode(gen_name, sm_idx):
|
|||||||
|
|
||||||
def genReadAckPktCode(gen_name, sm_idx):
|
def genReadAckPktCode(gen_name, sm_idx):
|
||||||
return '''\n//等待回包\n'''\
|
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'''\
|
+ '''$fdisplay(spidata_file, ">>回包:");\n'''\
|
||||||
+ '''spi_trans( (`MST_RX%d_ADDR), (`SPI_READ), (`DEF_%s_len), (`IF_IDX(0)) );\n'''%(sm_idx, gen_name,)
|
+ '''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