summaryrefslogtreecommitdiff
path: root/src/main/scala/Chisel/Builder.scala
diff options
context:
space:
mode:
authorAndrew Waterman2015-08-13 18:19:01 -0700
committerAndrew Waterman2015-08-13 18:19:42 -0700
commitac5bf6a4c953fe39fa97d77bc620c515dc9e1622 (patch)
tree07ae3cb60765446ba336527c41e571dfb6dca28d /src/main/scala/Chisel/Builder.scala
parent178b3ed69661156f4c120c3b0be18d44a5d474af (diff)
Make error reporting reentrant
Diffstat (limited to 'src/main/scala/Chisel/Builder.scala')
-rw-r--r--src/main/scala/Chisel/Builder.scala8
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)
}
}