xref: /XiangShan/src/main/scala/xiangshan/backend/fu/vector/Utils.scala (revision 35d005df068392f03f28e9ad6f2d4d3a70c32ed3)
1package xiangshan.backend.fu.vector
2
3import chisel3._
4
5object Utils {
6  def VecDataToMaskDataVec(vecData: UInt): Vec[UInt] = {
7    val maskDataWidth = vecData.getWidth / 8
8    val maskDataVec = Wire(Vec(8, UInt(maskDataWidth.W)))
9    require(8 * maskDataWidth == vecData.getWidth, "can not split this vector data into mask data vec")
10    for ((maskData, i) <- maskDataVec.zipWithIndex) {
11      maskData := vecData((i + 1) * maskDataWidth - 1, i * maskDataWidth)
12    }
13    maskDataVec
14  }
15}
16