summaryrefslogtreecommitdiff
path: root/src/test/scala/cookbook/VecOfBool2UInt.scala
blob: 5852120c8da5c71a9d14c1c416cdb9c902660593 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// See LICENSE for license details.

package cookbook

import chisel3._

/* ### How do I create a UInt from a Vec of Bool?
 *
 * Use the builtin function asUInt
 */
class VecOfBool2UInt extends CookbookTester(0) {
  // Example
  val vec = Vec(Bool(true), Bool(false), Bool(true), Bool(true))
  val uint = vec.asUInt
  printf(p"$uint") // 13
  
  /* Test
   *
   * (remember leftmost Bool in Vec is low order bit)
   */
  assert(UInt(0xd) === uint)
}

class VecOfBool2UIntSpec  extends CookbookSpec {
  "VecOfBool2UInt" should "work" in {
    assertTesterPasses { new VecOfBool2UInt }
  }
}