aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/passes/Checks.scala
diff options
context:
space:
mode:
authorAdam Izraelevitz2018-02-22 17:25:55 -0800
committerGitHub2018-02-22 17:25:55 -0800
commit46b78943a726e4c9bf85ffb25a2ccf926b10dda7 (patch)
tree39f9363400fdd39e2e55f3dc8c5221461941edec /src/main/scala/firrtl/passes/Checks.scala
parent65bbf155003a86cd836f7ff4a2def6af91794780 (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.scala8
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))