summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBoyang Han2021-03-19 01:28:56 +0800
committerGitHub2021-03-18 17:28:56 +0000
commit2a56c6540e914611ac12647e157aec4c5c595758 (patch)
tree100ae252b7d028eb09e7f45fa65766f4f4c7230f /src
parentac094a5e8f7fb8237b54d4d6b9e0b7b759b44ef7 (diff)
Add toString method to BitPat (#1819)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/chisel3/util/BitPat.scala7
-rw-r--r--src/test/scala/chiselTests/util/BitPatSpec.scala17
2 files changed, 24 insertions, 0 deletions
diff --git a/src/main/scala/chisel3/util/BitPat.scala b/src/main/scala/chisel3/util/BitPat.scala
index 12a421a0..5a40d312 100644
--- a/src/main/scala/chisel3/util/BitPat.scala
+++ b/src/main/scala/chisel3/util/BitPat.scala
@@ -119,4 +119,11 @@ sealed class BitPat(val value: BigInt, val mask: BigInt, width: Int) extends Sou
!(this === that)
}
+ override def toString = {
+ "BitPat(" +
+ (0 until width).map(i =>
+ if (((mask >> i) & 1) == 1) if (((value >> i) & 1) == 1) "1" else "0" else "?"
+ ).reverse.reduce(_ + _) +
+ ")"
+ }
}
diff --git a/src/test/scala/chiselTests/util/BitPatSpec.scala b/src/test/scala/chiselTests/util/BitPatSpec.scala
new file mode 100644
index 00000000..a6c0acf7
--- /dev/null
+++ b/src/test/scala/chiselTests/util/BitPatSpec.scala
@@ -0,0 +1,17 @@
+// SPDX-License-Identifier: Apache-2.0
+
+package chiselTests.util
+
+import chisel3.util.BitPat
+import org.scalatest.flatspec.AnyFlatSpec
+import org.scalatest.matchers.should.Matchers
+
+
+class BitPatSpec extends AnyFlatSpec with Matchers {
+ behavior of classOf[BitPat].toString
+
+ it should "convert a BitPat to readable form" in {
+ val testPattern = "0" * 32 + "1" * 32 + "?" * 32 + "?01" * 32
+ BitPat("b" + testPattern).toString should be (s"BitPat($testPattern)")
+ }
+}