1package xiangshan.mem.prefetch 2 3import chisel3._ 4import chisel3.util._ 5import chipsalliance.rocketchip.config.Parameters 6import xiangshan._ 7import xiangshan.cache.mmu.TlbRequestIO 8import xiangshan.mem.{L1PrefetchReq, LsPipelineBundle} 9 10class PrefetcherIO()(implicit p: Parameters) extends XSBundle { 11 val ld_in = Flipped(Vec(exuParameters.LduCnt, ValidIO(new LsPipelineBundle()))) 12 val tlb_req = new TlbRequestIO(nRespDups = 2) 13 val pf_addr = ValidIO(UInt(PAddrBits.W)) 14 val l1_req = DecoupledIO(new L1PrefetchReq()) 15 val enable = Input(Bool()) 16} 17 18trait PrefetcherParams 19 20abstract class BasePrefecher()(implicit p: Parameters) extends XSModule { 21 val io = IO(new PrefetcherIO()) 22}