diff --git a/tb/shinTest/ShinTopSpiTb.v b/tb/shinTest/ShinTopSpiTb.v index 2a07323..7f3ca81 100644 --- a/tb/shinTest/ShinTopSpiTb.v +++ b/tb/shinTest/ShinTopSpiTb.v @@ -51,6 +51,8 @@ module ShinTopSpiTb( wire [4:0] isSoftReset; + wire [4:0] io_int_sig; + ShinTop s_ShinTop_Mst( .clock(clock), .reset(reset | isSoftReset[0]), @@ -82,7 +84,7 @@ ShinTop s_ShinTop_Mst( .io_rsp_valid(isResp), .io_rsp_bits_isError(), .io_isSoftReset(isSoftReset[0]), - .io_interrupt() + .io_interrupt(io_int_sig[0]) ); ShinTop s_ShinTop_slv0( @@ -115,7 +117,7 @@ ShinTop s_ShinTop_slv0( .io_rsp_valid(), .io_rsp_bits_isError(), .io_isSoftReset(isSoftReset[1]), - .io_interrupt() + .io_interrupt(io_int_sig[1]) ); ShinTop s_ShinTop_slv1( @@ -148,7 +150,7 @@ ShinTop s_ShinTop_slv1( .io_rsp_valid(), .io_rsp_bits_isError(), .io_isSoftReset(isSoftReset[2]), - .io_interrupt() + .io_interrupt(io_int_sig[2]) ); ShinTop s_ShinTop_slv2( @@ -181,7 +183,7 @@ ShinTop s_ShinTop_slv2( .io_rsp_valid(), .io_rsp_bits_isError(), .io_isSoftReset(isSoftReset[3]), - .io_interrupt() + .io_interrupt(io_int_sig[3]) ); ShinTop s_ShinTop_slv3( @@ -214,7 +216,7 @@ ShinTop s_ShinTop_slv3( .io_rsp_valid(), .io_rsp_bits_isError(), .io_isSoftReset(isSoftReset[4]), - .io_interrupt() + .io_interrupt(io_int_sig[4]) ); @@ -611,6 +613,14 @@ initial begin begin:CHECK_INTERRUPT_SIG $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, "--->>>检查中断"); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(0)) ); spi_trans( (16'h70), (`SPI_READ), (14), (`IF_IDX(1)) );