1
0

make sure outer probe and finish lines are disconnected

This commit is contained in:
Howard Mao 2016-07-21 15:07:25 -07:00
parent c38dff0855
commit 12067a3b8d
5 changed files with 15 additions and 1 deletions

View File

@ -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")
}
} }

View File

@ -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) {

View File

@ -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)

View File

@ -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)

View File

@ -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()
}