Skip to content

Commit ae30bc7

Browse files
committed
timing(LoadQueueRAR, LoadUnit): adjust rar query logic
1 parent 833fa3a commit ae30bc7

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

src/main/scala/xiangshan/mem/lsqueue/LoadQueueRAR.scala

+2-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ class LoadQueueRAR(implicit p: Parameters) extends XSModule
114114
size = LoadQueueRARSize,
115115
allocWidth = LoadPipelineWidth,
116116
freeWidth = 4,
117-
enablePreAlloc = true,
117+
enablePreAlloc = false,
118118
moduleName = "LoadQueueRAR freelist"
119119
))
120120
freeList.io := DontCare
@@ -140,6 +140,7 @@ class LoadQueueRAR(implicit p: Parameters) extends XSModule
140140
// Allocate logic
141141
val acceptedVec = Wire(Vec(LoadPipelineWidth, Bool()))
142142
val enqIndexVec = Wire(Vec(LoadPipelineWidth, UInt(log2Up(LoadQueueRARSize).W)))
143+
require(LoadQueueRARSize == VirtualLoadQueueSize, "LoadQueueRARSize should be equal to VirtualLoadQueueSize for timing!")
143144

144145
for ((enq, w) <- io.query.map(_.req).zipWithIndex) {
145146
acceptedVec(w) := false.B

src/main/scala/xiangshan/mem/pipeline/LoadUnit.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -1304,7 +1304,7 @@ class LoadUnit(implicit p: Parameters) extends XSModule
13041304
val s2_safe_writeback = s2_real_exception || s2_safe_wakeup || s2_vp_match_fail || s2_in.misalignNeedWakeUp
13051305

13061306
// ld-ld violation require
1307-
io.lsq.ldld_nuke_query.req.valid := s2_valid && s2_can_query
1307+
io.lsq.ldld_nuke_query.req.valid := s2_valid
13081308
io.lsq.ldld_nuke_query.req.bits.uop := s2_in.uop
13091309
io.lsq.ldld_nuke_query.req.bits.mask := s2_in.mask
13101310
io.lsq.ldld_nuke_query.req.bits.paddr := s2_in.paddr

0 commit comments

Comments
 (0)