aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/backends
diff options
context:
space:
mode:
authorSchuyler Eldridge2021-06-14 14:25:45 -0400
committerGitHub2021-06-14 11:25:45 -0700
commit3ea95e720c8107a1c466b8cba1fc076bfbc296fa (patch)
treebb497783b025ecc5cca7e35981c3cdf18a6891a6 /src/main/scala/firrtl/backends
parent04a8f2acffcd67c764575357144f29334ba8d44d (diff)
Add -X mhigh compiler for minimal high form (#2268)
Add a compiler/emitter that can target minimal high form. This will produce output that only has CHIRRTL constructs removed. Signed-off-by: Schuyler Eldridge <schuyler.eldridge@sifive.com>
Diffstat (limited to 'src/main/scala/firrtl/backends')
-rw-r--r--src/main/scala/firrtl/backends/firrtl/FirrtlEmitter.scala7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/backends/firrtl/FirrtlEmitter.scala b/src/main/scala/firrtl/backends/firrtl/FirrtlEmitter.scala
index 80aea996..bb385ffd 100644
--- a/src/main/scala/firrtl/backends/firrtl/FirrtlEmitter.scala
+++ b/src/main/scala/firrtl/backends/firrtl/FirrtlEmitter.scala
@@ -61,6 +61,13 @@ sealed abstract class FirrtlEmitter(form: CircuitForm) extends Transform with Em
}
class ChirrtlEmitter extends FirrtlEmitter(CircuitForm.ChirrtlForm)
+class MinimumHighFirrtlEmitter extends FirrtlEmitter(CircuitForm.HighForm) {
+ override def prerequisites = stage.Forms.MinimalHighForm
+ override def optionalPrerequisites = Seq.empty
+ override def optionalPrerequisiteOf = Seq.empty
+ override def invalidates(a: Transform) = false
+ override val outputSuffix = ".mhi.fir"
+}
class HighFirrtlEmitter extends FirrtlEmitter(CircuitForm.HighForm)
class MiddleFirrtlEmitter extends FirrtlEmitter(CircuitForm.MidForm)
class LowFirrtlEmitter extends FirrtlEmitter(CircuitForm.LowForm)