未验证 提交 9471478b 编写于 作者: Y Yinan Xu 提交者: GitHub

Merge pull request #432 from RISCVERS/L1DCacheFixBug

L1 d cache fix bug
...@@ -398,7 +398,7 @@ class DCacheImp(outer: DCache) extends LazyModuleImp(outer) with HasDCacheParame ...@@ -398,7 +398,7 @@ class DCacheImp(outer: DCache) extends LazyModuleImp(outer) with HasDCacheParame
// sync with prober // sync with prober
missQueue.io.probe_wb_req.valid := prober.io.wb_req.fire() missQueue.io.probe_wb_req.valid := prober.io.wb_req.fire()
missQueue.io.probe_wb_req.bits := prober.io.wb_req.bits missQueue.io.probe_wb_req.bits := prober.io.wb_req.bits
missQueue.io.probe_active := prober.io.inflight_req_block_addr missQueue.io.probe_active := prober.io.inflight_req_idx
//---------------------------------------- //----------------------------------------
// prober // prober
......
...@@ -306,7 +306,7 @@ class MissEntry(edge: TLEdgeOut) extends DCacheModule ...@@ -306,7 +306,7 @@ class MissEntry(edge: TLEdgeOut) extends DCacheModule
// if it releases the block we are trying to acquire, we don't care, since we will get it back eventually // if it releases the block we are trying to acquire, we don't care, since we will get it back eventually
// but we need to know whether it releases the block we are trying to evict // but we need to know whether it releases the block we are trying to evict
val prober_writeback_our_block = (state === s_refill_req || state === s_refill_resp || val prober_writeback_our_block = (state === s_refill_req || state === s_refill_resp ||
state === s_mem_finish || state === s_wait_probe_exit || state === s_send_resp || state === s_wb_req) && state === s_mem_finish || state === s_wait_probe_exit) &&
io.probe_wb_req.valid && !io.probe_wb_req.bits.voluntary && io.probe_wb_req.valid && !io.probe_wb_req.bits.voluntary &&
io.probe_wb_req.bits.tag === req_old_meta.tag && io.probe_wb_req.bits.tag === req_old_meta.tag &&
io.probe_wb_req.bits.idx === req_idx && io.probe_wb_req.bits.idx === req_idx &&
......
...@@ -126,14 +126,14 @@ class WritebackUnit(edge: TLEdgeOut) extends DCacheModule { ...@@ -126,14 +126,14 @@ class WritebackUnit(edge: TLEdgeOut) extends DCacheModule {
val id = cfg.nMissEntries val id = cfg.nMissEntries
val probeResponse = edge.ProbeAck( val probeResponse = edge.ProbeAck(
fromSource = id.U, fromSource = req.source,
toAddress = r_address, toAddress = r_address,
lgSize = log2Ceil(cfg.blockBytes).U, lgSize = log2Ceil(cfg.blockBytes).U,
reportPermissions = req.param reportPermissions = req.param
) )
val probeResponseData = edge.ProbeAck( val probeResponseData = edge.ProbeAck(
fromSource = id.U, fromSource = req.source,
toAddress = r_address, toAddress = r_address,
lgSize = log2Ceil(cfg.blockBytes).U, lgSize = log2Ceil(cfg.blockBytes).U,
reportPermissions = req.param, reportPermissions = req.param,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册