aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/custom-compiler.stanza
diff options
context:
space:
mode:
authorazidar2015-05-29 11:34:51 -0700
committerazidar2015-05-29 11:34:51 -0700
commitca49cb05f9e2fbeac1d0c722eb7d342f74508b7e (patch)
treef8fb73ac66b7d5a50c1ab56ec2b2c8b91f71dd0b /src/main/stanza/custom-compiler.stanza
parentb44b49e6a6589add30b5b1d89d85f2e20432a515 (diff)
Added custom pass. Does not correctly run, stanza just spins. Requires debugging.
Diffstat (limited to 'src/main/stanza/custom-compiler.stanza')
-rw-r--r--src/main/stanza/custom-compiler.stanza38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/stanza/custom-compiler.stanza b/src/main/stanza/custom-compiler.stanza
new file mode 100644
index 00000000..1ca29bdd
--- /dev/null
+++ b/src/main/stanza/custom-compiler.stanza
@@ -0,0 +1,38 @@
+defpackage firrtl/custom-compiler :
+ import core
+ import verse
+ import firrtl/ir-utils
+ import firrtl/ir2
+ import firrtl/passes
+ import firrtl/errors
+ import firrtl/verilog
+ import firrtl/custom-passes
+
+public defstruct InstrumentedVerilog <: Compiler :
+ file: String with: (as-method => true)
+ args: List<String>
+public defmethod passes (c:InstrumentedVerilog) -> List<Pass> :
+ to-list $ [
+ WhenCoverage(args(c)[0],args(c)[1])
+ CheckHighForm(expand-delin)
+ TempElimination()
+ ToWorkingIR()
+ MakeExplicitReset()
+ ResolveKinds()
+ CheckKinds()
+ InferTypes()
+ CheckTypes()
+ ResolveGenders()
+ CheckGenders()
+ ExpandAccessors()
+ LowerToGround()
+ ExpandIndexedConnects()
+ ExpandWhens()
+ InferWidths()
+ SplitExp()
+ ToRealIR()
+ SpecialRename(`#,`_)
+ Verilog(file(c))
+ ]
+
+