xref: /XiangShan/src/main/scala/xiangshan/DbEntry.scala (revision 8891a219bbc84f568e1d134854d8d5ed86d6d560)
1da3bf434SMaxpicca-Lipackage xiangshan
2da3bf434SMaxpicca-Li
3*8891a219SYinan Xuimport org.chipsalliance.cde.config.Parameters
4da3bf434SMaxpicca-Liimport chisel3._
5da3bf434SMaxpicca-Liimport chisel3.util.log2Ceil
6da3bf434SMaxpicca-Liimport xiangshan.backend.rob.{DebugLsInfo, DebugMdpInfo}
7da3bf434SMaxpicca-Liimport xiangshan.cache.DCacheBundle
8da3bf434SMaxpicca-Li
9da3bf434SMaxpicca-Li/** Mem */
10da3bf434SMaxpicca-Liclass LoadMissEntry(implicit p: Parameters) extends DCacheBundle {
11da3bf434SMaxpicca-Li  val timeCnt = UInt(XLEN.W)
12da3bf434SMaxpicca-Li  val robIdx = UInt(log2Ceil(RobSize).W)
13da3bf434SMaxpicca-Li  val paddr = UInt(PAddrBits.W)
14da3bf434SMaxpicca-Li  val vaddr = UInt(VAddrBits.W)
15da3bf434SMaxpicca-Li  // 1:first hit, 2:first miss, 3:second miss
16da3bf434SMaxpicca-Li  val missState = UInt(3.W)
17da3bf434SMaxpicca-Li}
18da3bf434SMaxpicca-Li
1904665835SMaxpicca-Liclass LoadAccessEntry(implicit p: Parameters) extends LoadMissEntry{
2004665835SMaxpicca-Li  val pred_way_num = UInt(XLEN.W)
2104665835SMaxpicca-Li  val dm_way_num = UInt(XLEN.W)
2204665835SMaxpicca-Li  val real_way_num = UInt(XLEN.W)
2304665835SMaxpicca-Li}
2404665835SMaxpicca-Li
25da3bf434SMaxpicca-Liclass InstInfoEntry(implicit p: Parameters) extends XSBundle{
26da3bf434SMaxpicca-Li  val globalID = UInt(XLEN.W)
27da3bf434SMaxpicca-Li  val robIdx = UInt(log2Ceil(RobSize).W)
28da3bf434SMaxpicca-Li  val instType = FuType()
29da3bf434SMaxpicca-Li  val exceptType = UInt(ExceptionVec.ExceptionVecSize.W)
30da3bf434SMaxpicca-Li  val ivaddr = UInt(VAddrBits.W)
31da3bf434SMaxpicca-Li  val dvaddr = UInt(VAddrBits.W) // the l/s access address
32da3bf434SMaxpicca-Li  val dpaddr = UInt(VAddrBits.W) // need the physical address when the TLB is valid
33da3bf434SMaxpicca-Li  val tlbLatency = UInt(XLEN.W)  // original requirements is L1toL2TlbLatency
34da3bf434SMaxpicca-Li  val accessLatency = UInt(XLEN.W)  // RS out time --> write back time
35da3bf434SMaxpicca-Li  val executeLatency = UInt(XLEN.W)
36da3bf434SMaxpicca-Li  val issueLatency = UInt(XLEN.W)
37da3bf434SMaxpicca-Li  val lsInfo = new DebugLsInfo
38da3bf434SMaxpicca-Li  val mdpInfo = new DebugMdpInfo
39da3bf434SMaxpicca-Li  val issueTime = UInt(XLEN.W)
40da3bf434SMaxpicca-Li  val writebackTime = UInt(XLEN.W)
41da3bf434SMaxpicca-Li}
420d32f713Shappy-lx
430d32f713Shappy-lxclass LoadInfoEntry(implicit p: Parameters) extends XSBundle{
440d32f713Shappy-lx  val pc = UInt(VAddrBits.W)
450d32f713Shappy-lx  val vaddr = UInt(VAddrBits.W)
460d32f713Shappy-lx  val paddr = UInt(PAddrBits.W)
470d32f713Shappy-lx  val cacheMiss = Bool()
480d32f713Shappy-lx  val tlbQueryLatency = UInt(64.W)
490d32f713Shappy-lx  val exeLatency = UInt(64.W)
500d32f713Shappy-lx}