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