修正看门狗0

This commit is contained in:
Ruige Lee
2025-06-05 10:02:58 +08:00
parent 09229187e5
commit 7d2079b223
2 changed files with 24 additions and 7 deletions

View File

@@ -414,11 +414,31 @@ trait ShinTopWatchDog{ this: ShinTopBase =>
wdtSMCnt(i) := 0.U
}
assert( wdtSMCnt(i) <= interface.io.cReg.wdtTarCnt(i+1), "Assert Failed! wdtSMCnt is larger than wdtTarCnt, Special situation?" )
assert( wdtSMCnt(i) <= interface.io.cReg.wdtTarCnt(i+1), s"Assert Failed! wdtSMCnt($i) is larger than wdtTarCnt, Special situation?" )
interface.io.wdtTrigger(i+1) := wdtSMCnt(i) === interface.io.cReg.wdtTarCnt(i+1)
}
interface.io.wdtTrigger(0) := slaveParser.io.isRecWdtTrigger
val isWdtRecEnable = RegInit(false.B)
val wdtRecCnt = Reg(UInt(32.W))
when( upCDRIn.io.axis.fire & upCDRIn.io.axis.bits.tlast ){
isWdtRecEnable := false.B
} .elsewhen( ~isWdtRecEnable & downCDROut.io.axis.fire & interface.io.cReg.wdtEnable.extract(0) ){
isWdtRecEnable := true.B
}
when( isWdtRecEnable & (wdtRecCnt < interface.io.cReg.wdtTarCnt(0)) ){
wdtRecCnt := wdtRecCnt + 1.U
} .elsewhen( ~isWdtRecEnable ){
wdtRecCnt := 0.U
}
assert( wdtRecCnt < interface.io.cReg.wdtTarCnt(0), "Assert Failed! wdtRecCnt is larger than wdtTarCnt, Special situation?" )
interface.io.wdtTrigger(0) := wdtRecCnt === interface.io.cReg.wdtTarCnt(0)
}