aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/Emitter.scala
diff options
context:
space:
mode:
authorJack Koenig2019-08-13 12:09:27 +0530
committerGitHub2019-08-13 12:09:27 +0530
commitf08f8dbb3c480220f92923a7f3242fcbb644b65e (patch)
tree45cdb7543f6252ad2feb5aaf4e0e0580d3d27565 /src/main/scala/firrtl/Emitter.scala
parent63e88b6e1696e2c8d6da91f6f5eb128a9d0395ae (diff)
Infer reset (#1068)
* Add abstract "Reset" which can be inferred to AsyncReset or UInt<1> * Enhance async reset initial value literal check to support aggregates
Diffstat (limited to 'src/main/scala/firrtl/Emitter.scala')
-rw-r--r--src/main/scala/firrtl/Emitter.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala
index 8e6408fe..854e1876 100644
--- a/src/main/scala/firrtl/Emitter.scala
+++ b/src/main/scala/firrtl/Emitter.scala
@@ -231,7 +231,12 @@ class VerilogEmitter extends SeqTransform with Emitter {
x match {
case (e: DoPrim) => emit(op_stream(e), top + 1)
case (e: Mux) => {
- if(e.tpe == ClockType) throw EmitterException("Cannot emit clock muxes directly")
+ if (e.tpe == ClockType) {
+ throw EmitterException("Cannot emit clock muxes directly")
+ }
+ if (e.tpe == AsyncResetType) {
+ throw EmitterException("Cannot emit async reset muxes directly")
+ }
emit(Seq(e.cond," ? ",cast(e.tval)," : ",cast(e.fval)),top + 1)
}
case (e: ValidIf) => emit(Seq(cast(e.value)),top + 1)