make sure outer probe and finish lines are disconnected
This commit is contained in:
parent
c38dff0855
commit
12067a3b8d
@ -151,4 +151,11 @@ abstract class HierarchicalCoherenceAgent(implicit p: Parameters) extends Cohere
|
|||||||
def innerTL = io.inner
|
def innerTL = io.inner
|
||||||
def outerTL = io.outer
|
def outerTL = io.outer
|
||||||
def incoherent = io.incoherent
|
def incoherent = io.incoherent
|
||||||
|
|
||||||
|
// TODO: Remove this function (and all its calls) when we support probing the L2
|
||||||
|
def disconnectOuterProbeAndFinish() {
|
||||||
|
io.outer.probe.ready := Bool(false)
|
||||||
|
io.outer.finish.valid := Bool(false)
|
||||||
|
assert(!io.outer.probe.valid, "L2 agent got illegal probe")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -54,6 +54,8 @@ class L2BroadcastHub(implicit p: Parameters) extends HierarchicalCoherenceAgent(
|
|||||||
doOutputArbitration(io.inner.grant, trackerList.map(_.io.inner.grant))
|
doOutputArbitration(io.inner.grant, trackerList.map(_.io.inner.grant))
|
||||||
|
|
||||||
doInputRouting(io.inner.finish, trackerList.map(_.io.inner.finish))
|
doInputRouting(io.inner.finish, trackerList.map(_.io.inner.finish))
|
||||||
|
|
||||||
|
disconnectOuterProbeAndFinish()
|
||||||
}
|
}
|
||||||
|
|
||||||
class BroadcastXactTracker(implicit p: Parameters) extends XactTracker()(p) {
|
class BroadcastXactTracker(implicit p: Parameters) extends XactTracker()(p) {
|
||||||
|
@ -67,6 +67,8 @@ class BufferlessBroadcastHub(implicit p: Parameters) extends HierarchicalCoheren
|
|||||||
io.inner.grant.bits.addr_beat := io.outer.grant.bits.addr_beat
|
io.inner.grant.bits.addr_beat := io.outer.grant.bits.addr_beat
|
||||||
|
|
||||||
doInputRouting(io.inner.finish, trackerList.map(_.io.inner.finish))
|
doInputRouting(io.inner.finish, trackerList.map(_.io.inner.finish))
|
||||||
|
|
||||||
|
disconnectOuterProbeAndFinish()
|
||||||
}
|
}
|
||||||
|
|
||||||
class BufferlessBroadcastVoluntaryReleaseTracker(trackerId: Int)(implicit p: Parameters)
|
class BufferlessBroadcastVoluntaryReleaseTracker(trackerId: Int)(implicit p: Parameters)
|
||||||
|
@ -442,6 +442,8 @@ class L2HellaCacheBank(implicit p: Parameters) extends HierarchicalCoherenceAgen
|
|||||||
tshrfile.io.incoherent <> io.incoherent
|
tshrfile.io.incoherent <> io.incoherent
|
||||||
meta.io <> tshrfile.io.meta
|
meta.io <> tshrfile.io.meta
|
||||||
data.io <> tshrfile.io.data
|
data.io <> tshrfile.io.data
|
||||||
|
|
||||||
|
disconnectOuterProbeAndFinish()
|
||||||
}
|
}
|
||||||
|
|
||||||
class TSHRFileIO(implicit p: Parameters) extends HierarchicalTLIO()(p)
|
class TSHRFileIO(implicit p: Parameters) extends HierarchicalTLIO()(p)
|
||||||
|
@ -66,5 +66,6 @@ class ManagerToClientStatelessBridge(implicit p: Parameters) extends Hierarchica
|
|||||||
|
|
||||||
io.inner.probe.valid := Bool(false)
|
io.inner.probe.valid := Bool(false)
|
||||||
io.inner.finish.ready := Bool(true)
|
io.inner.finish.ready := Bool(true)
|
||||||
}
|
|
||||||
|
|
||||||
|
disconnectOuterProbeAndFinish()
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user