From 49d82864bf4c4a9c9dcb28f7c6ddee797ab068bf Mon Sep 17 00:00:00 2001 From: Henry Cook Date: Thu, 17 Mar 2016 12:31:18 -0700 Subject: [PATCH] Fix StoreDataQueue allocation bug in BroadcastHub Closes #27 --- uncore/src/main/scala/broadcast.scala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/uncore/src/main/scala/broadcast.scala b/uncore/src/main/scala/broadcast.scala index ee338e89..d2a6fe65 100644 --- a/uncore/src/main/scala/broadcast.scala +++ b/uncore/src/main/scala/broadcast.scala @@ -52,9 +52,11 @@ class L2BroadcastHub(implicit p: Parameters) extends ManagerCoherenceAgent()(p) val sdq_val = Reg(init=Bits(0, sdqDepth)) val sdq_alloc_id = PriorityEncoder(~sdq_val) val sdq_rdy = !sdq_val.andR - val sdq_enq = trackerList.map(_.io.alloc.iacq).reduce(_||_) && - io.inner.acquire.fire() && - io.iacq().hasData() + val sdq_enq = trackerList.map( t => + (t.io.alloc.iacq || t.io.matches.iacq) && + t.io.inner.acquire.fire() && + t.io.iacq().hasData() + ).reduce(_||_) when (sdq_enq) { sdq(sdq_alloc_id) := io.iacq().data } // Handle acquire transaction initiation