1*730cfbc0SXuan Hupackage xiangshan.backend.regfile 2*730cfbc0SXuan Hu 3*730cfbc0SXuan Huimport chisel3.util.log2Up 4*730cfbc0SXuan Huimport xiangshan.backend.datapath.DataConfig._ 5*730cfbc0SXuan Hu 6*730cfbc0SXuan Huabstract class PregParams { 7*730cfbc0SXuan Hu val numEntries: Int 8*730cfbc0SXuan Hu val numRead: Int 9*730cfbc0SXuan Hu val numWrite: Int 10*730cfbc0SXuan Hu val dataCfg: DataConfig 11*730cfbc0SXuan Hu 12*730cfbc0SXuan Hu def addrWidth = log2Up(numEntries) 13*730cfbc0SXuan Hu} 14*730cfbc0SXuan Hu 15*730cfbc0SXuan Hucase class IntPregParams( 16*730cfbc0SXuan Hu numEntries: Int, 17*730cfbc0SXuan Hu numRead : Int, 18*730cfbc0SXuan Hu numWrite : Int, 19*730cfbc0SXuan Hu) extends PregParams { 20*730cfbc0SXuan Hu override val dataCfg: DataConfig = IntData() 21*730cfbc0SXuan Hu} 22*730cfbc0SXuan Hu 23*730cfbc0SXuan Hucase class VfPregParams( 24*730cfbc0SXuan Hu numEntries: Int, 25*730cfbc0SXuan Hu numRead : Int, 26*730cfbc0SXuan Hu numWrite : Int, 27*730cfbc0SXuan Hu) extends PregParams { 28*730cfbc0SXuan Hu override val dataCfg: DataConfig = VecData() 29*730cfbc0SXuan Hu} 30*730cfbc0SXuan Hu 31