xref: /XiangShan/src/test/scala/xiangshan/backend/fu/vector/ByteMaskTailGenTest.scala (revision 81cbff077dfbdc9bccc3bcfb47d9666617c23f0e)
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