195c56213SXuan Hupackage xiangshan.backend.fu.vector 295c56213SXuan Hu 395c56213SXuan Huimport chisel3._ 495c56213SXuan Huimport chiseltest._ 595c56213SXuan Huimport org.scalatest.flatspec.AnyFlatSpec 695c56213SXuan Huimport org.scalatest.matchers.must.Matchers 795c56213SXuan Huimport top.DefaultConfig 895c56213SXuan Huimport xiangshan.backend.fu.vector.Bundles.VSew 995c56213SXuan Huimport xiangshan.{XSCoreParameters, XSCoreParamsKey} 1095c56213SXuan Hu 1195c56213SXuan Huclass ByteMaskTailGenTest extends AnyFlatSpec with ChiselScalatestTester with Matchers { 1295c56213SXuan Hu 1395c56213SXuan Hu println("Generating the ByteMaskTailGen hardware") 1495c56213SXuan Hu 1595c56213SXuan Hu val defaultConfig = (new DefaultConfig).alterPartial({ 1695c56213SXuan Hu case XSCoreParamsKey => XSCoreParameters() 1795c56213SXuan Hu }) 1895c56213SXuan Hu 1995c56213SXuan Hu emitVerilog(new ByteMaskTailGen(128)(defaultConfig), Array("--target-dir", "build/ByteMaskTailGen")) 2095c56213SXuan Hu 2195c56213SXuan Hu println("test start") 2295c56213SXuan Hu 2395c56213SXuan Hu behavior of "ByteMaskTailGen" 2495c56213SXuan Hu it should "run" in { 2595c56213SXuan Hu test(new ByteMaskTailGen(128)(defaultConfig)).withAnnotations(Seq(VerilatorBackendAnnotation)) { 2695c56213SXuan Hu m: ByteMaskTailGen => 2795c56213SXuan Hu m.io.in.begin.poke(2.U) 2895c56213SXuan Hu m.io.in.end.poke(7.U) 2995c56213SXuan Hu m.io.in.vma.poke(false.B) 3095c56213SXuan Hu m.io.in.vta.poke(false.B) 3195c56213SXuan Hu m.io.in.vsew.poke(VSew.e8) 3295c56213SXuan Hu m.io.in.maskUsed.poke("b0101_0101_0101_0101".U) 3395c56213SXuan Hu 3495c56213SXuan Hu println("startBytes: " + m.io.debugOnly.startBytes.peek().litValue.toInt) 3595c56213SXuan Hu println("vlBytes: " + m.io.debugOnly.vlBytes.peek().litValue.toInt) 3695c56213SXuan Hu println("prestartEn: " + m.io.debugOnly.prestartEn.peek().litValue.toString(2)) 37*81cbff07Schengguanghui println("bodyEn: " + m.io.debugOnly.bodyEn.peek().litValue.toString(2)) 3895c56213SXuan Hu println("tailEn: " + m.io.debugOnly.tailEn.peek().litValue.toString(2)) 3995c56213SXuan Hu println("maskEn: " + m.io.debugOnly.maskEn.peek().litValue.toString(2)) 40*81cbff07Schengguanghui println("activeEn: " + m.io.out.activeEn.peek().litValue.toString(2)) 4195c56213SXuan Hu println("agnosticEn: " + m.io.out.agnosticEn.peek().litValue.toString(2)) 4295c56213SXuan Hu } 4395c56213SXuan Hu println("test done") 4495c56213SXuan Hu } 4595c56213SXuan Hu} 46