修正看门狗0
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user