Backend.scala (f9f1abd72b0116a2b8cc02eb47a958861191c445) Backend.scala (6810d1e8e7c0789e9f50ee6bdd52010b8ce506ef)
1package xiangshan.backend
2
3import org.chipsalliance.cde.config.Parameters
4import chisel3._
5import chisel3.util._
6import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp}
7import utility.ZeroExt
8import xiangshan._

--- 503 unchanged lines hidden (view full) ---

512 // params alias
513 private val LoadQueueSize = VirtualLoadQueueSize
514 // In/Out // Todo: split it into one-direction bundle
515 val lsqEnqIO = Flipped(new LsqEnqIO)
516 val robLsqIO = new RobLsqIO
517 val ldaIqFeedback = Vec(params.LduCnt, Flipped(new MemRSFeedbackIO))
518 val staIqFeedback = Vec(params.StaCnt, Flipped(new MemRSFeedbackIO))
519 val hyuIqFeedback = Vec(params.HyuCnt, Flipped(new MemRSFeedbackIO))
1package xiangshan.backend
2
3import org.chipsalliance.cde.config.Parameters
4import chisel3._
5import chisel3.util._
6import freechips.rocketchip.diplomacy.{LazyModule, LazyModuleImp}
7import utility.ZeroExt
8import xiangshan._

--- 503 unchanged lines hidden (view full) ---

512 // params alias
513 private val LoadQueueSize = VirtualLoadQueueSize
514 // In/Out // Todo: split it into one-direction bundle
515 val lsqEnqIO = Flipped(new LsqEnqIO)
516 val robLsqIO = new RobLsqIO
517 val ldaIqFeedback = Vec(params.LduCnt, Flipped(new MemRSFeedbackIO))
518 val staIqFeedback = Vec(params.StaCnt, Flipped(new MemRSFeedbackIO))
519 val hyuIqFeedback = Vec(params.HyuCnt, Flipped(new MemRSFeedbackIO))
520 val ldCancel = Vec(params.LduCnt, Flipped(new LoadCancelIO))
520 val ldCancel = Vec(params.LduCnt + params.HyuCnt, Flipped(new LoadCancelIO))
521 val loadPcRead = Vec(params.LduCnt, Output(UInt(VAddrBits.W)))
522 val storePcRead = Vec(params.StaCnt, Output(UInt(VAddrBits.W)))
523 val hyuPcRead = Vec(params.HyuCnt, Output(UInt(VAddrBits.W)))
524 // Input
525 val writebackLda = Vec(params.LduCnt, Flipped(DecoupledIO(new MemExuOutput)))
526 val writebackSta = Vec(params.StaCnt, Flipped(DecoupledIO(new MemExuOutput)))
527 val writebackStd = Vec(params.StdCnt, Flipped(DecoupledIO(new MemExuOutput)))
528 // 0: Hybrid load, 1: Hybrid store

--- 15 unchanged lines hidden (view full) ---

544
545 val otherFastWakeup = Flipped(Vec(params.LduCnt + params.HyuCnt, ValidIO(new DynInst)))
546 val stIssuePtr = Input(new SqPtr())
547
548 val csrDistributedUpdate = Flipped(new DistributedCSRUpdateReq)
549
550 val debugLS = Flipped(Output(new DebugLSIO))
551
521 val loadPcRead = Vec(params.LduCnt, Output(UInt(VAddrBits.W)))
522 val storePcRead = Vec(params.StaCnt, Output(UInt(VAddrBits.W)))
523 val hyuPcRead = Vec(params.HyuCnt, Output(UInt(VAddrBits.W)))
524 // Input
525 val writebackLda = Vec(params.LduCnt, Flipped(DecoupledIO(new MemExuOutput)))
526 val writebackSta = Vec(params.StaCnt, Flipped(DecoupledIO(new MemExuOutput)))
527 val writebackStd = Vec(params.StdCnt, Flipped(DecoupledIO(new MemExuOutput)))
528 // 0: Hybrid load, 1: Hybrid store

--- 15 unchanged lines hidden (view full) ---

544
545 val otherFastWakeup = Flipped(Vec(params.LduCnt + params.HyuCnt, ValidIO(new DynInst)))
546 val stIssuePtr = Input(new SqPtr())
547
548 val csrDistributedUpdate = Flipped(new DistributedCSRUpdateReq)
549
550 val debugLS = Flipped(Output(new DebugLSIO))
551
552 val lsTopdownInfo = Vec(params.LduCnt, Flipped(Output(new LsTopdownInfo)))
552 val lsTopdownInfo = Vec(params.LduCnt + params.HyuCnt, Flipped(Output(new LsTopdownInfo)))
553 // Output
554 val redirect = ValidIO(new Redirect) // rob flush MemBlock
555 val issueLda = MixedVec(Seq.fill(params.LduCnt)(DecoupledIO(new MemExuInput())))
556 val issueSta = MixedVec(Seq.fill(params.StaCnt)(DecoupledIO(new MemExuInput())))
557 val issueStd = MixedVec(Seq.fill(params.StdCnt)(DecoupledIO(new MemExuInput())))
558 val issueHya = MixedVec(Seq.fill(params.HyuCnt)(DecoupledIO(new MemExuInput())))
559 // hybrid unit store data use this
560 val issueVldu = MixedVec(Seq.fill(params.VlduCnt)(DecoupledIO(new MemExuInput(isVector = true))))

--- 67 unchanged lines hidden ---
553 // Output
554 val redirect = ValidIO(new Redirect) // rob flush MemBlock
555 val issueLda = MixedVec(Seq.fill(params.LduCnt)(DecoupledIO(new MemExuInput())))
556 val issueSta = MixedVec(Seq.fill(params.StaCnt)(DecoupledIO(new MemExuInput())))
557 val issueStd = MixedVec(Seq.fill(params.StdCnt)(DecoupledIO(new MemExuInput())))
558 val issueHya = MixedVec(Seq.fill(params.HyuCnt)(DecoupledIO(new MemExuInput())))
559 // hybrid unit store data use this
560 val issueVldu = MixedVec(Seq.fill(params.VlduCnt)(DecoupledIO(new MemExuInput(isVector = true))))

--- 67 unchanged lines hidden ---