diff options
| author | Adam Izraelevitz | 2018-02-22 17:25:55 -0800 |
|---|---|---|
| committer | GitHub | 2018-02-22 17:25:55 -0800 |
| commit | 46b78943a726e4c9bf85ffb25a2ccf926b10dda7 (patch) | |
| tree | 39f9363400fdd39e2e55f3dc8c5221461941edec /src/main/scala/firrtl/passes/Checks.scala | |
| parent | 65bbf155003a86cd836f7ff4a2def6af91794780 (diff) | |
Add tests for #702. Adds Utility functions. Allows clock muxing in FIRRTL, but not Emitter. (#717)
Diffstat (limited to 'src/main/scala/firrtl/passes/Checks.scala')
| -rw-r--r-- | src/main/scala/firrtl/passes/Checks.scala | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/main/scala/firrtl/passes/Checks.scala b/src/main/scala/firrtl/passes/Checks.scala index 6934fca2..5b198064 100644 --- a/src/main/scala/firrtl/passes/Checks.scala +++ b/src/main/scala/firrtl/passes/Checks.scala @@ -259,8 +259,8 @@ object CheckTypes extends Pass { s"$info: [module $mname] Attach requires all arguments to be Analog type: $exp.") class NodePassiveType(info: Info, mname: String) extends PassException( s"$info: [module $mname] Node must be a passive type.") - class MuxSameType(info: Info, mname: String) extends PassException( - s"$info: [module $mname] Must mux between equivalent types.") + class MuxSameType(info: Info, mname: String, t1: String, t2: String) extends PassException( + s"$info: [module $mname] Must mux between equivalent types: $t1 != $t2.") class MuxPassiveTypes(info: Info, mname: String) extends PassException( s"$info: [module $mname] Must mux between passive types.") class MuxCondUInt(info: Info, mname: String) extends PassException( @@ -361,15 +361,13 @@ object CheckTypes extends Pass { case (e: DoPrim) => check_types_primop(info, mname, e) case (e: Mux) => if (wt(e.tval.tpe) != wt(e.fval.tpe)) - errors.append(new MuxSameType(info, mname)) + errors.append(new MuxSameType(info, mname, e.tval.tpe.serialize, e.fval.tpe.serialize)) if (!passive(e.tpe)) errors.append(new MuxPassiveTypes(info, mname)) e.cond.tpe match { case _: UIntType => case _ => errors.append(new MuxCondUInt(info, mname)) } - if ((e.tval.tpe == ClockType) || (e.fval.tpe == ClockType)) - errors.append(new MuxClock(info, mname)) case (e: ValidIf) => if (!passive(e.tpe)) errors.append(new ValidIfPassiveTypes(info, mname)) |
