diff options
Diffstat (limited to 'src/main/scala/firrtl/passes/InferWidths.scala')
| -rw-r--r-- | src/main/scala/firrtl/passes/InferWidths.scala | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/main/scala/firrtl/passes/InferWidths.scala b/src/main/scala/firrtl/passes/InferWidths.scala index 1a8cc343..bf1f53b4 100644 --- a/src/main/scala/firrtl/passes/InferWidths.scala +++ b/src/main/scala/firrtl/passes/InferWidths.scala @@ -253,6 +253,8 @@ object InferWidths extends Pass { WGeq(getWidth(s.pred), IntWidth(1)), WGeq(IntWidth(1), getWidth(s.pred)) ) + case (s: Attach) => + v += WGeq(getWidth(s.source), MaxWidth(s.exprs map (e => getWidth(e.tpe)))) case _ => } s map get_constraints_e map get_constraints_s @@ -260,13 +262,13 @@ object InferWidths extends Pass { c.modules foreach (_ map get_constraints_s) - //println-debug("======== ALL CONSTRAINTS ========") - //for x in v do : println-debug(x) - //println-debug("=================================") + //println("======== ALL CONSTRAINTS ========") + //for(x <- v) println(x) + //println("=================================") val h = solve_constraints(v) - //println-debug("======== SOLVED CONSTRAINTS ========") - //for x in h do : println-debug(x) - //println-debug("====================================") + //println("======== SOLVED CONSTRAINTS ========") + //for(x <- h) println(x) + //println("====================================") def evaluate(w: Width): Width = { def map2(a: Option[BigInt], b: Option[BigInt], f: (BigInt,BigInt) => BigInt): Option[BigInt] = |
