xref: /XiangShan/src/main/scala/xiangshan/backend/datapath/RdConfig.scala (revision f7063a43ab34da917ba6c670d21871314340c550)
1package xiangshan.backend.datapath
2
3import xiangshan.backend.datapath.DataConfig.{DataConfig, IntData, NoData, VecData}
4
5object RdConfig {
6  sealed abstract class RdConfig() {
7    val port: Int
8    val priority: Int
9
10    def getDataConfig: DataConfig
11  }
12
13  case class IntRD(port: Int = -1, priority: Int = Int.MaxValue) extends RdConfig() {
14    override def getDataConfig = IntData()
15  }
16
17  case class VfRD(port: Int = -1, priority: Int = Int.MaxValue) extends RdConfig() {
18    override def getDataConfig = VecData()
19  }
20
21  case class NoRD() extends RdConfig() {
22    override val port: Int = -1
23
24    override val priority: Int = Int.MaxValue
25
26    override def getDataConfig: DataConfig = NoData()
27  }
28}
29
30