File tree Expand file tree Collapse file tree 1 file changed +16
-3
lines changed
Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments