summaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-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))