diff options
| author | John Ingalls | 2020-01-15 15:34:19 -0800 |
|---|---|---|
| committer | mergify[bot] | 2020-01-15 23:34:19 +0000 |
| commit | bc8605d6e198ca38f446547a52d492ac678eda7d (patch) | |
| tree | f1f4b5a9928cbf0b82bdbac536aeffdf236daf93 /src/main/scala/firrtl/Utils.scala | |
| parent | 0aa0ba8fac56fc81f57b24b6e0694d93de2b66df (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.scala | 11 |
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 = { |
