增加对中断信号的检测代码

This commit is contained in:
2025-06-03 17:07:08 +08:00
parent ad3b5c5719
commit 1e04b9f8c7

View File

@@ -51,6 +51,8 @@ module ShinTopSpiTb(
wire [4:0] isSoftReset; wire [4:0] isSoftReset;
wire [4:0] io_int_sig;
ShinTop s_ShinTop_Mst( ShinTop s_ShinTop_Mst(
.clock(clock), .clock(clock),
.reset(reset | isSoftReset[0]), .reset(reset | isSoftReset[0]),
@@ -82,7 +84,7 @@ ShinTop s_ShinTop_Mst(
.io_rsp_valid(isResp), .io_rsp_valid(isResp),
.io_rsp_bits_isError(), .io_rsp_bits_isError(),
.io_isSoftReset(isSoftReset[0]), .io_isSoftReset(isSoftReset[0]),
.io_interrupt() .io_interrupt(io_int_sig[0])
); );
ShinTop s_ShinTop_slv0( ShinTop s_ShinTop_slv0(
@@ -115,7 +117,7 @@ ShinTop s_ShinTop_slv0(
.io_rsp_valid(), .io_rsp_valid(),
.io_rsp_bits_isError(), .io_rsp_bits_isError(),
.io_isSoftReset(isSoftReset[1]), .io_isSoftReset(isSoftReset[1]),
.io_interrupt() .io_interrupt(io_int_sig[1])
); );
ShinTop s_ShinTop_slv1( ShinTop s_ShinTop_slv1(
@@ -148,7 +150,7 @@ ShinTop s_ShinTop_slv1(
.io_rsp_valid(), .io_rsp_valid(),
.io_rsp_bits_isError(), .io_rsp_bits_isError(),
.io_isSoftReset(isSoftReset[2]), .io_isSoftReset(isSoftReset[2]),
.io_interrupt() .io_interrupt(io_int_sig[2])
); );
ShinTop s_ShinTop_slv2( ShinTop s_ShinTop_slv2(
@@ -181,7 +183,7 @@ ShinTop s_ShinTop_slv2(
.io_rsp_valid(), .io_rsp_valid(),
.io_rsp_bits_isError(), .io_rsp_bits_isError(),
.io_isSoftReset(isSoftReset[3]), .io_isSoftReset(isSoftReset[3]),
.io_interrupt() .io_interrupt(io_int_sig[3])
); );
ShinTop s_ShinTop_slv3( ShinTop s_ShinTop_slv3(
@@ -214,7 +216,7 @@ ShinTop s_ShinTop_slv3(
.io_rsp_valid(), .io_rsp_valid(),
.io_rsp_bits_isError(), .io_rsp_bits_isError(),
.io_isSoftReset(isSoftReset[4]), .io_isSoftReset(isSoftReset[4]),
.io_interrupt() .io_interrupt(io_int_sig[4])
); );
@@ -611,6 +613,14 @@ initial begin
begin:CHECK_INTERRUPT_SIG begin:CHECK_INTERRUPT_SIG
$fdisplay(spidata_file, "\n\n测试用例检查设备的INTERRUPT信号"); $fdisplay(spidata_file, "\n\n测试用例检查设备的INTERRUPT信号");
@(posedge clock) begin
if (io_int_sig[0]) $fdisplay(spidata_file, "MST Interrupt!");
if (io_int_sig[1]) $fdisplay(spidata_file, "SLV0 Interrupt!");
if (io_int_sig[2]) $fdisplay(spidata_file, "SLV1 Interrupt!");
if (io_int_sig[3]) $fdisplay(spidata_file, "SLV2 Interrupt!");
if (io_int_sig[4]) $fdisplay(spidata_file, "SLV3 Interrupt!");
end
$fdisplay(spidata_file, "--->>>检查中断"); $fdisplay(spidata_file, "--->>>检查中断");
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) );
spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );