aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Utils.scala
diff options
context:
space:
mode:
authoredwardcwang2021-04-11 12:13:16 -0400
committerGitHub2021-04-11 16:13:16 +0000
commit344083ba3bdc30a25d8f2ecdf490749db9c36e4a (patch)
treefd353e2927934ccdd680066c76243acae41258aa /src/main/scala/firrtl/Utils.scala
parent9a3dcf761e40b7ac36f9c867d0a36692d4d74c0c (diff)
smt: use existing bitWidth API (#2175)
* bitWidth: add scaladoc * smt: use existing bitWidth API
Diffstat (limited to 'src/main/scala/firrtl/Utils.scala')
-rw-r--r--src/main/scala/firrtl/Utils.scala11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala
index 3d0f19b8..a58b6997 100644
--- a/src/main/scala/firrtl/Utils.scala
+++ b/src/main/scala/firrtl/Utils.scala
@@ -51,7 +51,18 @@ object getWidth {
def apply(e: Expression): Width = apply(e.tpe)
}
+/**
+ * Helper object for computing the width of a firrtl type.
+ */
object bitWidth {
+
+ /**
+ * Compute the width of a firrtl type.
+ * For example, a Vec of 4 UInts of width 8 should have a width of 32.
+ *
+ * @param dt firrtl type
+ * @return Width of the given type
+ */
def apply(dt: Type): BigInt = widthOf(dt)
private def widthOf(dt: Type): BigInt = dt match {
case t: VectorType => t.size * bitWidth(t.tpe)