aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Utils.scala
diff options
context:
space:
mode:
authorazidar2016-07-21 13:57:13 -0700
committerazidar2016-07-21 13:57:13 -0700
commit0441a6df1eafd5db99c5cbcc0a07c5a6cb37f975 (patch)
tree116ec7cbf7f94d70f5659abace4267f529b195f2 /src/main/scala/firrtl/Utils.scala
parentab340febdc7a5418da945f9b79624d36e66e26db (diff)
Added a Chirrtl check for undeclared wires, etc.
Diffstat (limited to 'src/main/scala/firrtl/Utils.scala')
-rw-r--r--src/main/scala/firrtl/Utils.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/Utils.scala b/src/main/scala/firrtl/Utils.scala
index 2053a70d..fec25cf1 100644
--- a/src/main/scala/firrtl/Utils.scala
+++ b/src/main/scala/firrtl/Utils.scala
@@ -203,6 +203,22 @@ object Utils extends LazyLogging {
}
}
+ /** Returns true if t, or any subtype, contains a flipped field
+ * @param t [[firrtl.ir.Type]]
+ * @return if t contains [[firrtl.ir.Flip]]
+ */
+ def hasFlip(t: Type): Boolean = {
+ var has = false
+ def findFlip(t: Type): Type = t map (findFlip) match {
+ case t: BundleType =>
+ for (f <- t.fields) { if (f.flip == Flip) has = true }
+ t
+ case t: Type => t
+ }
+ findFlip(t)
+ has
+ }
+
//============== TYPES ================
def mux_type (e1:Expression,e2:Expression) : Type = mux_type(tpe(e1),tpe(e2))
def mux_type (t1:Type,t2:Type) : Type = {