fix(loadTrigger): the prefetch instructions don’t match trigger at all

This commit is contained in:
chengguanghui 2025-09-22 17:28:21 +08:00 committed by Zehao Liu
parent 4e51e11ec3
commit 324b389664
2 changed files with 4 additions and 1 deletions

View File

@ -267,14 +267,16 @@ class MemTrigger(memType: Boolean = MemType.LOAD)(override implicit val p: Param
class MemTriggerIO extends BaseTriggerIO{
val isCbo = OptionWrapper(memType == MemType.STORE, Input(Bool()))
val isPrf = OptionWrapper(memType == MemType.LOAD, Input(Bool()))
}
override lazy val io = IO(new MemTriggerIO)
override def getTriggerHitVec(): Vec[Bool] = {
val triggerHitVec = WireInit(VecInit(Seq.fill(TriggerNum)(false.B)))
val isPrf = io.isPrf.getOrElse(false.B)
for (i <- 0 until TriggerNum) {
triggerHitVec(i) := !tdataVec(i).select && !debugMode && TriggerCmp(
triggerHitVec(i) := !tdataVec(i).select && !debugMode && !isPrf && TriggerCmp(
vaddr,
tdataVec(i).tdata2,
tdataVec(i).matchType,

View File

@ -1132,6 +1132,7 @@ class LoadUnit(implicit p: Parameters) extends XSModule
loadTrigger.io.fromLoadStore.vaddr := s1_vaddr
loadTrigger.io.fromLoadStore.isVectorUnitStride := s1_in.isvec && s1_in.is128bit
loadTrigger.io.fromLoadStore.mask := s1_in.mask
loadTrigger.io.isPrf.get := s1_prf
val s1_trigger_action = loadTrigger.io.toLoadStore.triggerAction
val s1_trigger_debug_mode = TriggerAction.isDmode(s1_trigger_action)