Skip to content

Commit 898fd9b

Browse files
fix(RequestArb): disable Release/ReleaseData stall relax for TL2TL
1 parent 91fe59a commit 898fd9b

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

src/main/scala/coupledL2/RequestArb.scala

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,16 +155,29 @@ class RequestArb(implicit p: Parameters) extends L2Module
155155

156156
io.sinkA.ready := sink_ready_basic && !block_A && !sinkValids(1) && !sinkValids(0) // SinkC prior to SinkA & SinkB
157157
io.sinkB.ready := sink_ready_basic && !block_B && !sinkValids(0) // SinkB prior to SinkA
158-
io.sinkC.ready := sink_ready_nodir && !block_C
158+
159+
if (enableCHI)
160+
io.sinkC.ready := sink_ready_nodir && !block_C
161+
else
162+
io.sinkC.ready := sink_ready_basic && !block_C
159163

160164
val chnl_task_s1 = Wire(Valid(new TaskBundle()))
161-
chnl_task_s1.valid := (io.sinkC.valid && !mshr_task_s1.valid || io.dirRead_s1.ready) && sinkValids.orR && resetFinish
162165
chnl_task_s1.bits := ParallelPriorityMux(sinkValids, Seq(C_task, B_task, A_task))
163166

167+
if (enableCHI)
168+
chnl_task_s1.valid := (io.sinkC.valid && !mshr_task_s1.valid || io.dirRead_s1.ready) && sinkValids.orR && resetFinish
169+
else
170+
chnl_task_s1.valid := io.dirRead_s1.ready && sinkValids.orR && resetFinish
171+
164172
// mshr_task_s1 is s1_[reg]
165173
// task_s1 is [wire] to s2_reg
166174
val task_s1 = Mux(mshr_task_s1.valid, mshr_task_s1, chnl_task_s1)
167-
val s1_to_s2_valid = task_s1.valid && (!mshr_replRead_stall || task_s1.bits.fromC)
175+
val s1_to_s2_valid = Wire(Bool())
176+
177+
if (enableCHI)
178+
s1_to_s2_valid := task_s1.valid && (!mshr_replRead_stall || task_s1.bits.fromC)
179+
else
180+
s1_to_s2_valid := task_s1.valid && !mshr_replRead_stall
168181

169182
s1_cango := s1_to_s2_valid
170183
s1_fire := s1_cango && s2_ready

0 commit comments

Comments
 (0)