1730cfbc0SXuan Hupackage xiangshan.backend.regfile 2730cfbc0SXuan Hu 3730cfbc0SXuan Huimport chisel3.util.log2Up 4730cfbc0SXuan Huimport xiangshan.backend.datapath.DataConfig._ 5730cfbc0SXuan Hu 6730cfbc0SXuan Huabstract class PregParams { 7730cfbc0SXuan Hu val numEntries: Int 839c59369SXuan Hu val numRead: Option[Int] 939c59369SXuan Hu val numWrite: Option[Int] 10730cfbc0SXuan Hu val dataCfg: DataConfig 115edcc45fSHaojin Tang val isFake: Boolean 12730cfbc0SXuan Hu 13730cfbc0SXuan Hu def addrWidth = log2Up(numEntries) 14730cfbc0SXuan Hu} 15730cfbc0SXuan Hu 16730cfbc0SXuan Hucase class IntPregParams( 17730cfbc0SXuan Hu numEntries: Int, 1839c59369SXuan Hu numRead : Option[Int], 1939c59369SXuan Hu numWrite : Option[Int], 20730cfbc0SXuan Hu) extends PregParams { 2139c59369SXuan Hu 225edcc45fSHaojin Tang val dataCfg: DataConfig = IntData() 235edcc45fSHaojin Tang val isFake: Boolean = false 24730cfbc0SXuan Hu} 25730cfbc0SXuan Hu 26*60f0c5aeSxiaofeibaocase class FpPregParams( 27*60f0c5aeSxiaofeibao numEntries: Int, 28*60f0c5aeSxiaofeibao numRead : Option[Int], 29*60f0c5aeSxiaofeibao numWrite : Option[Int], 30*60f0c5aeSxiaofeibao ) extends PregParams { 31*60f0c5aeSxiaofeibao 32*60f0c5aeSxiaofeibao val dataCfg: DataConfig = FpData() 33*60f0c5aeSxiaofeibao val isFake: Boolean = false 34*60f0c5aeSxiaofeibao} 35*60f0c5aeSxiaofeibao 36730cfbc0SXuan Hucase class VfPregParams( 37730cfbc0SXuan Hu numEntries: Int, 3839c59369SXuan Hu numRead : Option[Int], 3939c59369SXuan Hu numWrite : Option[Int], 40730cfbc0SXuan Hu) extends PregParams { 4139c59369SXuan Hu 425edcc45fSHaojin Tang val dataCfg: DataConfig = VecData() 435edcc45fSHaojin Tang val isFake: Boolean = false 44730cfbc0SXuan Hu} 45730cfbc0SXuan Hu 4639c59369SXuan Hucase class NoPregParams() extends PregParams { 4739c59369SXuan Hu val numEntries: Int = 0 4839c59369SXuan Hu val numRead : Option[Int] = None 4939c59369SXuan Hu val numWrite : Option[Int] = None 5039c59369SXuan Hu 515edcc45fSHaojin Tang val dataCfg: DataConfig = NoData() 525edcc45fSHaojin Tang val isFake: Boolean = false 535edcc45fSHaojin Tang} 545edcc45fSHaojin Tang 555edcc45fSHaojin Tangcase class FakeIntPregParams( 565edcc45fSHaojin Tang numEntries: Int, 575edcc45fSHaojin Tang numRead : Option[Int], 585edcc45fSHaojin Tang numWrite : Option[Int], 595edcc45fSHaojin Tang) extends PregParams { 605edcc45fSHaojin Tang 615edcc45fSHaojin Tang val dataCfg: DataConfig = FakeIntData() 625edcc45fSHaojin Tang val isFake: Boolean = true 6339c59369SXuan Hu} 64