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}