summaryrefslogtreecommitdiff
path: root/src/main/scala/chisel3/Driver.scala
diff options
context:
space:
mode:
authorgrebe2016-12-15 01:47:26 -0500
committerGitHub2016-12-15 01:47:26 -0500
commitd622b43bd03b8f17fe9a11d41d8dd0865989c0c5 (patch)
tree09c58614b14d0e7fc7ca752ff17d1bbd6a39ebb9 /src/main/scala/chisel3/Driver.scala
parentf9d528b3763429275430b84839ccf0b4570531a2 (diff)
parent59a7c25d5c708305216532ec49c8120e59219f69 (diff)
Merge branch 'master' into fixedPointFromBits
Diffstat (limited to 'src/main/scala/chisel3/Driver.scala')
-rw-r--r--src/main/scala/chisel3/Driver.scala10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/scala/chisel3/Driver.scala b/src/main/scala/chisel3/Driver.scala
index 646702c3..40c94b54 100644
--- a/src/main/scala/chisel3/Driver.scala
+++ b/src/main/scala/chisel3/Driver.scala
@@ -247,9 +247,17 @@ object Driver extends BackendCompilationUtilities {
af.write(circuit.annotations.toArray.toYaml.prettyPrint)
af.close()
+ /* create custom transforms by finding the set of transform classes associated with annotations
+ * then instantiate them into actual transforms
+ */
+ val transforms = circuit.annotations.map(_.transform).toSet.map { transformClass: Class[_ <: Transform] =>
+ transformClass.newInstance()
+ }
/* This passes the firrtl source and annotations directly to firrtl */
optionsManager.firrtlOptions = optionsManager.firrtlOptions.copy(
- firrtlSource = Some(firrtlString), annotations = circuit.annotations.toList)
+ firrtlSource = Some(firrtlString),
+ annotations = circuit.annotations.toList,
+ customTransforms = transforms.toList)
val firrtlExecutionResult = if(chiselOptions.runFirrtlCompiler) {
Some(firrtl.Driver.execute(optionsManager))