aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Utils.scala
diff options
context:
space:
mode:
authorJohn Ingalls2020-01-15 15:34:19 -0800
committermergify[bot]2020-01-15 23:34:19 +0000
commitbc8605d6e198ca38f446547a52d492ac678eda7d (patch)
treef1f4b5a9928cbf0b82bdbac536aeffdf236daf93 /src/main/scala/firrtl/Utils.scala
parent0aa0ba8fac56fc81f57b24b6e0694d93de2b66df (diff)
Verilog emitter transform InlineBitExtractions (#1296)
* transform InlineBitExtractions * InlineNotsTransform, InlineBitExtractionsTransform: inputForm/outputForm = UnknownForm * clean up some minor redundancies from Adam review * clarifications from Seldrige review
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 6cb309b3..b9c642d9 100644
--- a/src/main/scala/firrtl/Utils.scala
+++ b/src/main/scala/firrtl/Utils.scala
@@ -199,6 +199,17 @@ object Utils extends LazyLogging {
case _ => false
}
+ /** Returns true if PrimOp is a BitExtraction, false otherwise */
+ def isBitExtract(op: PrimOp): Boolean = op match {
+ case Bits | Head | Tail | Shr => true
+ case _ => false
+ }
+ /** Returns true if Expression is a Bits PrimOp, false otherwise */
+ def isBitExtract(expr: Expression): Boolean = expr match {
+ case DoPrim(op, _,_, UIntType(_)) if isBitExtract(op) => true
+ case _ => false
+ }
+
/** Provide a nice name to create a temporary **/
def niceName(e: Expression): String = niceName(1)(e)
def niceName(depth: Int)(e: Expression): String = {