summaryrefslogtreecommitdiff
path: root/src/main/scala/Chisel/Parameters.scala
diff options
context:
space:
mode:
authorAndrew Waterman2015-08-12 16:53:05 -0700
committerAndrew Waterman2015-08-12 16:53:05 -0700
commit4031fad8dda90a1c14149c3c378dbf9798b388d9 (patch)
tree1cfb894908070f65d3d53385d064997193d779fd /src/main/scala/Chisel/Parameters.scala
parentac582545be061be24cabd982dfad913e1114ecbe (diff)
Marshal the global mutable state into one object
Hopefully, the Chisel core is now thread-safe.
Diffstat (limited to 'src/main/scala/Chisel/Parameters.scala')
-rw-r--r--src/main/scala/Chisel/Parameters.scala7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/scala/Chisel/Parameters.scala b/src/main/scala/Chisel/Parameters.scala
index 3fa25e39..24cb04fb 100644
--- a/src/main/scala/Chisel/Parameters.scala
+++ b/src/main/scala/Chisel/Parameters.scala
@@ -125,6 +125,11 @@ class ChiselConfig(
}
object Dump {
+ def apply[T](key:Any,value:T):T = Builder.parameterDump.apply(key, value)
+ def apply[T](knob:Knob[T]):Knob[T] = Builder.parameterDump.apply(knob)
+}
+
+class ParameterDump {
val dump = mutable.Set[Tuple2[Any,Any]]()
val knobList = mutable.ListBuffer[Any]()
def apply[T](key:Any,value:T):T = {addToDump(key,value); value}
@@ -228,7 +233,7 @@ abstract class World(
case v:_VarKnob[_] => {
_knobs += v.kname
val e = _knobValue(v.kname)
- if(Dump.knobList.contains(v.kname)) {Dump.addToDump(v.kname,e);e} else e
+ if(Builder.parameterDump.knobList.contains(v.kname)) {Builder.parameterDump.addToDump(v.kname,e);e} else e
}
case v:_VarLet[_] => _eval(v.expr.asInstanceOf[Ex[T]])
})