提交 19d62fa1 编写于 作者: J Jenius

delete 500 cycle wait

* add SRAM ready (resetfinish) condition for *Array (metaArray/dataArray)
req.ready
上级 625ecd17
......@@ -188,6 +188,8 @@ class ICacheMetaArray()(implicit p: Parameters) extends ICacheArray
tagArray
}
io.read.ready := !io.write.valid && tagArrays.map(_.io.r.req.ready).reduce(_&&_)
//Parity Decode
val read_metas = Wire(Vec(2,Vec(nWays,new ICacheMetadata())))
for((tagArray,i) <- tagArrays.zipWithIndex){
......@@ -291,8 +293,6 @@ class ICacheDataArray(implicit p: Parameters) extends ICacheArray
val cacheOp = Flipped(new L1CacheInnerOpIO) // customized cache op port
}}
io.read.ready := !io.write.valid
val port_0_read_0 = io.read.valid && !io.read.bits.vSetIdx(0)(0)
val port_0_read_1 = io.read.valid && io.read.bits.vSetIdx(0)(0)
val port_1_read_1 = io.read.valid && io.read.bits.vSetIdx(1)(0) && io.read.bits.isDoubleLine
......@@ -363,6 +363,8 @@ class ICacheDataArray(implicit p: Parameters) extends ICacheArray
codeArray
}
io.read.ready := !io.write.valid && dataArrays.map(_.io.r.req.ready).reduce(_ && _) && codeArrays.map(_.io.r.req.ready).reduce(_ && _)
//Parity Decode
val read_datas = Wire(Vec(2,Vec(nWays,UInt(blockBits.W) )))
val read_codes = Wire(Vec(2,Vec(nWays,UInt(dataCodeEntryBits.W) )))
......
......@@ -234,7 +234,7 @@ class ICacheMainPipe(implicit p: Parameters) extends ICacheModule
//TODO: fix GTimer() condition
fromIFU.map(_.ready := fetch_req(0).ready && fetch_req(1).ready && !missSwitchBit &&
!tlb_slot.valid &&
s1_ready && GTimer() > 500.U )
s1_ready )//&& GTimer() > 500.U )
/**
******************************************************************************
* ICache Stage 1
......
......@@ -108,7 +108,7 @@ class IPrefetchPipe(implicit p: Parameters) extends IPrefetchModule
fromITLB.ready := true.B
fromFtq.req.ready := (!enableBit || (enableBit && p3_ready)) && GTimer() > 500.U
fromFtq.req.ready := (!enableBit || (enableBit && p3_ready)) && toIMeta.ready //&& GTimer() > 500.U
/** Prefetch Stage 1: cache probe filter */
val p1_valid = generatePipeControl(lastFire = p0_fire, thisFire = p1_fire || p1_discard, thisFlush = false.B, lastFlush = false.B)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册