xref: /XiangShan/src/main/scala/xiangshan/mem/prefetch/BasePrefecher.scala (revision 967327d825d0045c06f42e2312a7e86c2e6b6662)
1289fc2f9SLinJiaweipackage xiangshan.mem.prefetch
2289fc2f9SLinJiawei
3289fc2f9SLinJiaweiimport chisel3._
4289fc2f9SLinJiaweiimport chisel3.util._
5289fc2f9SLinJiaweiimport chipsalliance.rocketchip.config.Parameters
6289fc2f9SLinJiaweiimport xiangshan._
7289fc2f9SLinJiaweiimport xiangshan.cache.mmu.TlbRequestIO
8*967327d8SLinJiaweiimport xiangshan.mem.{L1PrefetchReq, LsPipelineBundle}
9289fc2f9SLinJiawei
10289fc2f9SLinJiaweiclass PrefetcherIO()(implicit p: Parameters) extends XSBundle {
11289fc2f9SLinJiawei  val ld_in = Flipped(Vec(exuParameters.LduCnt, ValidIO(new LsPipelineBundle())))
12289fc2f9SLinJiawei  val tlb_req = new TlbRequestIO(nRespDups = 2)
13289fc2f9SLinJiawei  val pf_addr = ValidIO(UInt(PAddrBits.W))
14*967327d8SLinJiawei  val l1_req = DecoupledIO(new L1PrefetchReq())
1585de5caeSLinJiawei  val enable = Input(Bool())
16289fc2f9SLinJiawei}
17289fc2f9SLinJiawei
18289fc2f9SLinJiaweitrait PrefetcherParams
19289fc2f9SLinJiawei
20289fc2f9SLinJiaweiabstract class BasePrefecher()(implicit p: Parameters) extends XSModule {
21289fc2f9SLinJiawei  val io = IO(new PrefetcherIO())
22289fc2f9SLinJiawei}