aboutsummaryrefslogtreecommitdiff
path: root/src/main/stanza/firrtl-test-main.stanza
diff options
context:
space:
mode:
authorjackkoenig2015-10-30 16:36:04 -0700
committerjackkoenig2015-10-30 16:36:04 -0700
commitd715e65b8de4823621b072065b746730d712d2a4 (patch)
tree5da801428a69148c3db26d9b9a7a6927743a3c35 /src/main/stanza/firrtl-test-main.stanza
parent852b241e274edd888499b520d320945794a26e24 (diff)
Added support for -b <backend> so that specific passes can be run then a backend can be applied. Added firrtl compiler for emitting firrtl
Diffstat (limited to 'src/main/stanza/firrtl-test-main.stanza')
-rw-r--r--src/main/stanza/firrtl-test-main.stanza11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/main/stanza/firrtl-test-main.stanza b/src/main/stanza/firrtl-test-main.stanza
index cc60f0cc..3220ee87 100644
--- a/src/main/stanza/firrtl-test-main.stanza
+++ b/src/main/stanza/firrtl-test-main.stanza
@@ -14,6 +14,7 @@
#include("compilers.stanza")
#include("flo.stanza")
#include("verilog.stanza")
+#include("firrtl.stanza")
;Custom Packages
#include("custom-passes.stanza")
@@ -61,6 +62,7 @@ defn main () :
val pass-args = Vector<String>()
var printvars = ""
var last-s = ""
+ var backend = ""
val prev-out = CURRENT-OUTPUT-STREAM
CURRENT-OUTPUT-STREAM = STANDARD-ERROR
@@ -74,6 +76,7 @@ defn main () :
else if s == "-p" : last-s = s
else if s == "-s" : last-s = s
else if s == "-m" : last-s = s
+ else if s == "-b" : last-s = s
else :
if last-s == "-i" : input = args[i]
if last-s == "-o" : output = args[i]
@@ -82,6 +85,7 @@ defn main () :
if last-s == "-p" : printvars = to-string([printvars args[i]])
if last-s == "-s" : add(pass-args,args[i])
if last-s == "-m" : add(firms,args[i])
+ if last-s == "-b" : backend = args[i]
var with-output =
fn (f:()->False) :
@@ -126,12 +130,17 @@ defn main () :
set-printvars!(to-list(printvars))
if compiler == false :
- run-passes(circuit*,get-passes(to-list(pass-names)))
+ var c*:Circuit = run-passes(circuit*,get-passes(to-list(pass-names)))
+ switch {_ == backend} :
+ "verilog" : run-backend(c*,StandardVerilog(with-output))
+ "firrtl" : run-backend(c*,StandardFIRRTL(with-output))
+ else : error("Invalid backend flag!")
else :
switch {_ == compiler} :
"flo" : error("Flo backend not currently supported.")
; run-passes(circuit*,StandardFlo(with-output))
"verilog" : run-passes(circuit*,StandardVerilog(with-output))
+ "firrtl" : run-passes(circuit*,StandardFIRRTL(with-output))
"verilute" : run-passes(circuit*,InstrumentedVerilog(with-output,to-list $ pass-args))
else : error("Invalid compiler flag")