summaryrefslogtreecommitdiff
path: root/src/test/scala/chiselTests/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/scala/chiselTests/util')
-rw-r--r--src/test/scala/chiselTests/util/BitPatSpec.scala23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/test/scala/chiselTests/util/BitPatSpec.scala b/src/test/scala/chiselTests/util/BitPatSpec.scala
index ca8dd85c..0c83493f 100644
--- a/src/test/scala/chiselTests/util/BitPatSpec.scala
+++ b/src/test/scala/chiselTests/util/BitPatSpec.scala
@@ -15,7 +15,30 @@ class BitPatSpec extends AnyFlatSpec with Matchers {
BitPat("b" + testPattern).toString should be (s"BitPat($testPattern)")
}
+ it should "convert a BitPat to raw form" in {
+ val testPattern = "0" * 32 + "1" * 32 + "?" * 32 + "?01" * 32
+ BitPat("b" + testPattern).rawString should be(testPattern)
+ }
+
it should "not fail if BitPat width is 0" in {
intercept[IllegalArgumentException]{BitPat("b")}
}
+
+ it should "contact BitPat via ##" in {
+ (BitPat.Y(4) ## BitPat.dontCare(3) ## BitPat.N(2)).toString should be (s"BitPat(1111???00)")
+ }
+
+ it should "index and return new BitPat" in {
+ val b = BitPat("b1001???")
+ b(0) should be(BitPat.dontCare(1))
+ b(6) should be(BitPat.Y())
+ b(5) should be(BitPat.N())
+ }
+
+ it should "slice and return new BitPat" in {
+ val b = BitPat("b1001???")
+ b(2, 0) should be(BitPat("b???"))
+ b(4, 3) should be(BitPat("b01"))
+ b(6, 6) should be(BitPat("b1"))
+ }
}