1package xiangshan.backend.fu.vector 2 3import chisel3._ 4import chiseltest._ 5import org.scalatest.flatspec.AnyFlatSpec 6import org.scalatest.matchers.must.Matchers 7import top.DefaultConfig 8import xiangshan.backend.fu.vector.Bundles.VSew 9import xiangshan.{XSCoreParameters, XSCoreParamsKey} 10 11class ByteMaskTailGenTest extends AnyFlatSpec with ChiselScalatestTester with Matchers { 12 13 println("Generating the ByteMaskTailGen hardware") 14 15 val defaultConfig = (new DefaultConfig).alterPartial({ 16 case XSCoreParamsKey => XSCoreParameters() 17 }) 18 19 emitVerilog(new ByteMaskTailGen(128)(defaultConfig), Array("--target-dir", "build/ByteMaskTailGen")) 20 21 println("test start") 22 23 behavior of "ByteMaskTailGen" 24 it should "run" in { 25 test(new ByteMaskTailGen(128)(defaultConfig)).withAnnotations(Seq(VerilatorBackendAnnotation)) { 26 m: ByteMaskTailGen => 27 m.io.in.begin.poke(2.U) 28 m.io.in.end.poke(7.U) 29 m.io.in.vma.poke(false.B) 30 m.io.in.vta.poke(false.B) 31 m.io.in.vsew.poke(VSew.e8) 32 m.io.in.maskUsed.poke("b0101_0101_0101_0101".U) 33 34 println("startBytes: " + m.io.debugOnly.startBytes.peek().litValue.toInt) 35 println("vlBytes: " + m.io.debugOnly.vlBytes.peek().litValue.toInt) 36 println("prestartEn: " + m.io.debugOnly.prestartEn.peek().litValue.toString(2)) 37 println("bodyEn: " + m.io.debugOnly.bodyEn.peek().litValue.toString(2)) 38 println("tailEn: " + m.io.debugOnly.tailEn.peek().litValue.toString(2)) 39 println("maskEn: " + m.io.debugOnly.maskEn.peek().litValue.toString(2)) 40 println("activeEn: " + m.io.out.activeEn.peek().litValue.toString(2)) 41 println("agnosticEn: " + m.io.out.agnosticEn.peek().litValue.toString(2)) 42 } 43 println("test done") 44 } 45} 46