diff options
| author | Andrew Waterman | 2015-08-13 18:19:01 -0700 |
|---|---|---|
| committer | Andrew Waterman | 2015-08-13 18:19:42 -0700 |
| commit | ac5bf6a4c953fe39fa97d77bc620c515dc9e1622 (patch) | |
| tree | 07ae3cb60765446ba336527c41e571dfb6dca28d /src/main/scala/Chisel/Builder.scala | |
| parent | 178b3ed69661156f4c120c3b0be18d44a5d474af (diff) | |
Make error reporting reentrant
Diffstat (limited to 'src/main/scala/Chisel/Builder.scala')
| -rw-r--r-- | src/main/scala/Chisel/Builder.scala | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/scala/Chisel/Builder.scala b/src/main/scala/Chisel/Builder.scala index 79d1ab18..41fbb3b5 100644 --- a/src/main/scala/Chisel/Builder.scala +++ b/src/main/scala/Chisel/Builder.scala @@ -67,6 +67,7 @@ private class DynamicContext { val components = ArrayBuffer[Component]() var currentModule: Option[Module] = None val parameterDump = new ParameterDump + val errors = new ErrorLog } private object Builder { @@ -89,6 +90,9 @@ private object Builder { cmd.id } + def errors = dynamicContext.errors + def error(m: => String) = errors.error(m) + def getParams: Parameters = currentParamsVar.value def paramsScope[T](p: Parameters)(body: => T): T = { currentParamsVar.withValue(p)(body) @@ -96,8 +100,12 @@ private object Builder { def build[T <: Module](f: => T): Circuit = { dynamicContextVar.withValue(Some(new DynamicContext)) { + errors.info("Elaborating design...") val mod = f mod.setRef(globalNamespace.name(mod.name)) + errors.checkpoint() + errors.info("Done elaborating.") + Circuit(components.last.name, components, globalRefMap, parameterDump) } } |
