diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/scala/firrtl/Compiler.scala | 2 | ||||
| -rw-r--r-- | src/main/scala/firrtl/Emitter.scala | 19 | ||||
| -rw-r--r-- | src/main/scala/firrtl/stage/Forms.scala | 7 |
3 files changed, 12 insertions, 16 deletions
diff --git a/src/main/scala/firrtl/Compiler.scala b/src/main/scala/firrtl/Compiler.scala index 54380875..bed1b6d4 100644 --- a/src/main/scala/firrtl/Compiler.scala +++ b/src/main/scala/firrtl/Compiler.scala @@ -313,7 +313,7 @@ trait Transform extends TransformLike[CircuitState] with DependencyAPI[Transform } override def optionalPrerequisites: Seq[Dependency[Transform]] = inputForm match { - case L => Forms.LowFormOptimized + case L => Forms.LowFormOptimized ++ Forms.AssertsRemoved case _ => Seq.empty } diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala index 850c8ca1..3329cf9e 100644 --- a/src/main/scala/firrtl/Emitter.scala +++ b/src/main/scala/firrtl/Emitter.scala @@ -7,16 +7,15 @@ import java.io.Writer import scala.collection.mutable import firrtl.ir._ import firrtl.passes._ -import firrtl.transforms.{FixAddingNegativeLiterals, LegalizeAndReductionsTransform} +import firrtl.transforms.FixAddingNegativeLiterals import firrtl.annotations._ import firrtl.traversals.Foreachers._ import firrtl.PrimOps._ import firrtl.WrappedExpression._ import Utils._ import MemPortUtils.{memPortField, memType} -import firrtl.options.{Dependency, HasShellOptions, PhaseException, ShellOption, Unserializable} +import firrtl.options.{HasShellOptions, PhaseException, ShellOption, Unserializable} import firrtl.stage.{RunFirrtlTransformAnnotation, TransformManager} -import firrtl.transforms.formal.{RemoveVerificationStatements, ConvertAsserts} // Datastructures import scala.collection.mutable.ArrayBuffer @@ -181,10 +180,7 @@ class VerilogEmitter extends SeqTransform with Emitter { def inputForm = LowForm def outputForm = LowForm - override def prerequisites = - Dependency(ConvertAsserts) +: - Dependency[RemoveVerificationStatements] +: - Dependency[LegalizeAndReductionsTransform] +: + override def prerequisites = firrtl.stage.Forms.AssertsRemoved ++ firrtl.stage.Forms.LowFormOptimized override def optionalPrerequisiteOf = Seq.empty @@ -1254,10 +1250,7 @@ class VerilogEmitter extends SeqTransform with Emitter { class MinimumVerilogEmitter extends VerilogEmitter with Emitter { - override def prerequisites = - Dependency(ConvertAsserts) +: - Dependency[RemoveVerificationStatements] +: - Dependency[LegalizeAndReductionsTransform] +: + override def prerequisites = firrtl.stage.Forms.AssertsRemoved ++ firrtl.stage.Forms.LowFormMinimumOptimized override def transforms = new TransformManager(firrtl.stage.Forms.VerilogMinimumOptimized, prerequisites) @@ -1268,9 +1261,7 @@ class MinimumVerilogEmitter extends VerilogEmitter with Emitter { class SystemVerilogEmitter extends VerilogEmitter { override val outputSuffix: String = ".sv" - override def prerequisites = - Dependency[LegalizeAndReductionsTransform] +: - firrtl.stage.Forms.LowFormOptimized + override def prerequisites = firrtl.stage.Forms.LowFormOptimized override def addFormalStatement(formals: mutable.Map[Expression, ArrayBuffer[Seq[Any]]], clk: Expression, en: Expression, diff --git a/src/main/scala/firrtl/stage/Forms.scala b/src/main/scala/firrtl/stage/Forms.scala index e6ed9603..933db4f4 100644 --- a/src/main/scala/firrtl/stage/Forms.scala +++ b/src/main/scala/firrtl/stage/Forms.scala @@ -72,7 +72,8 @@ object Forms { Seq( Dependency(passes.RemoveValidIf), Dependency(passes.PadWidths), Dependency(passes.memlib.VerilogMemDelays), - Dependency(passes.SplitExpressions) ) + Dependency(passes.SplitExpressions), + Dependency[firrtl.transforms.LegalizeAndReductionsTransform] ) val LowFormOptimized: Seq[TransformDependency] = LowFormMinimumOptimized ++ Seq( Dependency[firrtl.transforms.ConstantPropagation], @@ -95,6 +96,10 @@ object Forms { val VerilogOptimized: Seq[TransformDependency] = LowFormOptimized ++ VerilogMinimumOptimized + val AssertsRemoved: Seq[TransformDependency] = + Seq( Dependency(firrtl.transforms.formal.ConvertAsserts), + Dependency[firrtl.transforms.formal.RemoveVerificationStatements] ) + val BackendEmitters = Seq( Dependency[VerilogEmitter], Dependency[MinimumVerilogEmitter], |
