1*a32c56f4SXuan Hupackage xiangshan.backend.fu 2*a32c56f4SXuan Hu 3*a32c56f4SXuan Huimport chisel3._ 4*a32c56f4SXuan Huimport chiseltest.{ChiselScalatestTester, _} 5*a32c56f4SXuan Huimport org.scalatest.flatspec.AnyFlatSpec 6*a32c56f4SXuan Huimport org.scalatest.matchers.must.Matchers 7*a32c56f4SXuan Huimport top.DefaultConfig 8*a32c56f4SXuan Huimport xiangshan.backend.fu.vector.Bundles.{VLmul, VSew} 9*a32c56f4SXuan Huimport xiangshan.{VSETOpType, XSCoreParameters, XSCoreParamsKey, XSTileKey} 10*a32c56f4SXuan Hu 11*a32c56f4SXuan Huclass VsetModuleMain extends AnyFlatSpec with ChiselScalatestTester with Matchers { 12*a32c56f4SXuan Hu 13*a32c56f4SXuan Hu val defaultConfig = (new DefaultConfig).alterPartial({ 14*a32c56f4SXuan Hu case XSCoreParamsKey => XSCoreParameters() 15*a32c56f4SXuan Hu }) 16*a32c56f4SXuan Hu 17*a32c56f4SXuan Hu def F = false.B 18*a32c56f4SXuan Hu 19*a32c56f4SXuan Hu def T = true.B 20*a32c56f4SXuan Hu 21*a32c56f4SXuan Hu private val (ill, vta, vma, vsew, vlmul) = (F, F, F, VSew.e8, VLmul.m8) 22*a32c56f4SXuan Hu private val avl = 30.U 23*a32c56f4SXuan Hu 24*a32c56f4SXuan Hu println("Test started!") 25*a32c56f4SXuan Hu 26*a32c56f4SXuan Hu behavior of "VsetModule" 27*a32c56f4SXuan Hu it should "run" in { 28*a32c56f4SXuan Hu test(new VsetModule()(defaultConfig)) { m: VsetModule => 29*a32c56f4SXuan Hu m.io.in.func.poke(VSETOpType.uvsetvcfg_xi) 30*a32c56f4SXuan Hu m.io.in.avl.poke(avl) 31*a32c56f4SXuan Hu m.io.in.vtype.illegal.poke(ill) 32*a32c56f4SXuan Hu m.io.in.vtype.vta.poke(vta) 33*a32c56f4SXuan Hu m.io.in.vtype.vma.poke(vma) 34*a32c56f4SXuan Hu m.io.in.vtype.vsew.poke(vsew) 35*a32c56f4SXuan Hu m.io.in.vtype.vlmul.poke(vlmul) 36*a32c56f4SXuan Hu m.io.in.oldVl.poke(0) 37*a32c56f4SXuan Hu m.io.out.vconfig.vtype.illegal.expect(false.B) 38*a32c56f4SXuan Hu m.io.out.vconfig.vtype.vta.expect(vta) 39*a32c56f4SXuan Hu m.io.out.vconfig.vtype.vma.expect(vma) 40*a32c56f4SXuan Hu m.io.out.vconfig.vtype.vsew.expect(vsew) 41*a32c56f4SXuan Hu m.io.out.vconfig.vtype.vlmul.expect(vlmul) 42*a32c56f4SXuan Hu m.io.out.vconfig.vl.expect((32).U) 43*a32c56f4SXuan Hu 44*a32c56f4SXuan Hu println(s"log2Vlmax : ${m.io.testOut.log2Vlmax.peek().litValue}") 45*a32c56f4SXuan Hu println(s"vlmax : ${m.io.testOut.vlmax.peek().litValue} ") 46*a32c56f4SXuan Hu println(s"vta: ${m.io.out.vconfig.vtype.vta.peek().litToBoolean} ") 47*a32c56f4SXuan Hu println(s"vma: ${m.io.out.vconfig.vtype.vma.peek().litToBoolean} ") 48*a32c56f4SXuan Hu println(s"vsew: ${m.io.out.vconfig.vtype.vsew.peek().litValue} ") 49*a32c56f4SXuan Hu println(s"vlmul: ${m.io.out.vconfig.vtype.vlmul.peek().litValue} ") 50*a32c56f4SXuan Hu } 51*a32c56f4SXuan Hu } 52*a32c56f4SXuan Hu} 53