diff --git a/src/main/scala/backBoard/shin/Interface.scala b/src/main/scala/backBoard/shin/Interface.scala index 3a70354..5da20b6 100644 --- a/src/main/scala/backBoard/shin/Interface.scala +++ b/src/main/scala/backBoard/shin/Interface.scala @@ -1006,11 +1006,11 @@ trait InterfaceSystem{ this: InterfaceBase => when( io.intHWTrig(0) ){ intStatus(29) := true.B } - + //上行接收硬件错误 when( io.intHWTrig(1) ){ intStatus(30) := true.B } - //上行接收硬件错误 + //写清中断 for( i <- 0 until 8 ){ @@ -1038,9 +1038,10 @@ trait InterfaceSystem{ this: InterfaceBase => (io.intMstTrig(0) & cReg.intEnable(0)) | //主站发送完成 (io.intMstTrig(1) & cReg.intEnable(1)) | //主站接收完成 false.B | //主站发送周期到了 - io.wdtTrigger.reduce(_|_) | //主站接收看门狗溢出 + (~RegNext(io.wdtTrigger.reduce(_|_), false.B) & io.wdtTrigger.reduce(_|_) & cReg.intEnable(4)) | //主站接收看门狗溢出 (0 until 8).map{ i => io.intSlvTrig(i) & cReg.intEnable(8+i)}.reduce(_|_) | //从站SM请求 - io.intHWTrig(0) | io.intHWTrig(1)//下行接收硬件错误 + io.intHWTrig(0) | //下行接收硬件错误 + io.intHWTrig(1) //上行接收硬件错误 when( intPulseResetCnt === intPulseWidth ){ intPulse := false.B