修正看门狗0
This commit is contained in:
@@ -414,11 +414,31 @@ trait ShinTopWatchDog{ this: ShinTopBase =>
|
|||||||
wdtSMCnt(i) := 0.U
|
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(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)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,8 +70,6 @@ class SlaveParserIO extends Bundle{
|
|||||||
|
|
||||||
val intHWTrig = Output(Vec(2, Bool()))
|
val intHWTrig = Output(Vec(2, Bool()))
|
||||||
val intHWClr = Input (Vec(2, Bool()))
|
val intHWClr = Input (Vec(2, Bool()))
|
||||||
|
|
||||||
val isRecWdtTrigger = Output(Bool())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class SlaveParserBase extends Module{
|
abstract class SlaveParserBase extends Module{
|
||||||
@@ -707,9 +705,8 @@ trait SlaveParserProbe{ this: SlaveParserBase =>
|
|||||||
|
|
||||||
|
|
||||||
// val ProbeRecAim = 511.U
|
// val ProbeRecAim = 511.U
|
||||||
val probeRecCnt = RegInit(0.U(32.W))
|
val probeRecCnt = RegInit(0.U(9.W))
|
||||||
val isWatchDogOverflow = probeRecCnt === io.cReg.wdtTarCnt(0)
|
val isWatchDogOverflow = probeRecCnt.andR
|
||||||
io.isRecWdtTrigger := isWatchDogOverflow
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user