1package xiangshan 2 3import chipsalliance.rocketchip.config.Parameters 4import chisel3._ 5import chisel3.util.log2Ceil 6import xiangshan.backend.rob.{DebugLsInfo, DebugMdpInfo} 7import xiangshan.cache.DCacheBundle 8 9/** Mem */ 10class LoadMissEntry(implicit p: Parameters) extends DCacheBundle { 11 val timeCnt = UInt(XLEN.W) 12 val robIdx = UInt(log2Ceil(RobSize).W) 13 val paddr = UInt(PAddrBits.W) 14 val vaddr = UInt(VAddrBits.W) 15 // 1:first hit, 2:first miss, 3:second miss 16 val missState = UInt(3.W) 17} 18 19class InstInfoEntry(implicit p: Parameters) extends XSBundle{ 20 val globalID = UInt(XLEN.W) 21 val robIdx = UInt(log2Ceil(RobSize).W) 22 val instType = FuType() 23 val exceptType = UInt(ExceptionVec.ExceptionVecSize.W) 24 val ivaddr = UInt(VAddrBits.W) 25 val dvaddr = UInt(VAddrBits.W) // the l/s access address 26 val dpaddr = UInt(VAddrBits.W) // need the physical address when the TLB is valid 27 val tlbLatency = UInt(XLEN.W) // original requirements is L1toL2TlbLatency 28 val accessLatency = UInt(XLEN.W) // RS out time --> write back time 29 val executeLatency = UInt(XLEN.W) 30 val issueLatency = UInt(XLEN.W) 31 val lsInfo = new DebugLsInfo 32 val mdpInfo = new DebugMdpInfo 33 val issueTime = UInt(XLEN.W) 34 val writebackTime = UInt(XLEN.W) 35}