1730cfbc0SXuan Hupackage xiangshan.backend.datapath 2730cfbc0SXuan Hu 3*2aa3a761Ssinsanctionimport chisel3.util.log2Up 4*2aa3a761Ssinsanction 5730cfbc0SXuan Huobject DataConfig { 6730cfbc0SXuan Hu sealed abstract class DataConfig ( 7730cfbc0SXuan Hu val name: String, 8730cfbc0SXuan Hu val dataWidth: Int, 9730cfbc0SXuan Hu ) { 10730cfbc0SXuan Hu override def toString: String = name 11730cfbc0SXuan Hu } 12730cfbc0SXuan Hu 13730cfbc0SXuan Hu case class IntData() extends DataConfig("int", 64) 14730cfbc0SXuan Hu case class FpData() extends DataConfig("fp", 64) 15730cfbc0SXuan Hu case class VecData() extends DataConfig("vec", 128) 16730cfbc0SXuan Hu case class ImmData(len: Int) extends DataConfig("int", len) 17730cfbc0SXuan Hu case class VAddrData() extends DataConfig("vaddr", 39) // Todo: associate it with the width of vaddr 18730cfbc0SXuan Hu case class MaskSrcData() extends DataConfig("masksrc", VecData().dataWidth) // 128 19*2aa3a761Ssinsanction // case class MaskDstData() extends DataConfig("maskdst", VecData().dataWidth / 8) // 16 20*2aa3a761Ssinsanction case class VConfigData() extends DataConfig("vconfig", log2Up(VecData().dataWidth) + 1 ) // 8 215edcc45fSHaojin Tang case class FakeIntData() extends DataConfig("fakeint", 64) 22730cfbc0SXuan Hu case class NoData() extends DataConfig("nodata", 0) 23730cfbc0SXuan Hu 24730cfbc0SXuan Hu def RegSrcDataSet : Set[DataConfig] = Set(IntData(), FpData(), VecData(), MaskSrcData(), VConfigData()) 25730cfbc0SXuan Hu def IntRegSrcDataSet: Set[DataConfig] = Set(IntData()) 26730cfbc0SXuan Hu def FpRegSrcDataSet : Set[DataConfig] = Set(FpData()) 27*2aa3a761Ssinsanction def VecRegSrcDataSet: Set[DataConfig] = Set(VecData()) 28*2aa3a761Ssinsanction def VfRegSrcDataSet : Set[DataConfig] = Set(VecData()) 29*2aa3a761Ssinsanction def V0RegSrcDataSet : Set[DataConfig] = Set(MaskSrcData()) 30*2aa3a761Ssinsanction def VlRegSrcDataSet : Set[DataConfig] = Set(VConfigData()) 31*2aa3a761Ssinsanction 325d2b9cadSXuan Hu 335d2b9cadSXuan Hu def RegDataMaxWidth : Int = RegSrcDataSet.map(_.dataWidth).max 34730cfbc0SXuan Hu} 35