class MiddleFirrtlCompiler extends Compiler
Emits middle Firrtl input circuit
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Dependency[MiddleFirrtlEmitter])
- Source
- LoweringCompilers.scala
- Alphabetic
- By Inheritance
- MiddleFirrtlCompiler
- Compiler
- DependencyAPIMigration
- Transform
- DependencyAPI
- TransformLike
- LazyLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new MiddleFirrtlCompiler()
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
val
emitter: MiddleFirrtlEmitter
- Definition Classes
- MiddleFirrtlCompiler → Compiler
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
execute(state: CircuitState): CircuitState
Perform the transform, encode renaming with RenameMap, and can delete annotations Called by runTransform.
Perform the transform, encode renaming with RenameMap, and can delete annotations Called by runTransform.
- state
Input Firrtl AST
- returns
A transformed Firrtl AST
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
invalidates(a: Transform): Boolean
- Definition Classes
- DependencyAPIMigration
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
val
logger: Logger
- Attributes
- protected
- Definition Classes
- LazyLogging
-
def
name: String
A convenience function useful for debugging and error messages
A convenience function useful for debugging and error messages
- Definition Classes
- Transform → TransformLike
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
optionalPrerequisiteOf: Seq[TransformDependency]
- Definition Classes
- DependencyAPIMigration
-
def
optionalPrerequisites: Seq[TransformDependency]
- Definition Classes
- DependencyAPIMigration
-
def
prerequisites: Seq[TransformDependency]
- Definition Classes
- DependencyAPIMigration
-
final
def
runTransform(state: CircuitState): CircuitState
Perform the transform and update annotations.
Perform the transform and update annotations.
- state
Input Firrtl AST
- returns
A transformed Firrtl AST
- Definition Classes
- Transform
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
def
transform(state: CircuitState): CircuitState
A mathematical transform on some type
A mathematical transform on some type
- returns
an output object of the same type
- Definition Classes
- Transform → TransformLike
-
def
transforms: Seq[Transform]
The sequence of transforms this compiler will execute
The sequence of transforms this compiler will execute
- Definition Classes
- MiddleFirrtlCompiler → Compiler
- Note
The inputForm of a given transform must be higher than or equal to the ouputForm of the preceding transform. See CircuitForm
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
Deprecated Value Members
-
def
compile(state: CircuitState, customTransforms: Seq[Transform]): CircuitState
Perform compilation
Perform compilation
Emission will only be performed if EmitAnnotations are present
- state
The Firrtl AST to compile
- customTransforms
Any custom Transforms that will be inserted into the compilation process by CompilerUtils.mergeTransforms
- returns
result of compilation
- Definition Classes
- Compiler
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3.3)
-
def
compile(state: CircuitState, writer: Writer, customTransforms: Seq[Transform] = Seq.empty): CircuitState
Perform compilation
Perform compilation
- state
The Firrtl AST to compile
- writer
The java.io.Writer where the output of compilation will be emitted
- customTransforms
Any custom Transforms that will be inserted into the compilation process by CompilerUtils.mergeTransforms
- Definition Classes
- Compiler
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.0)
-
def
compileAndEmit(state: CircuitState, customTransforms: Seq[Transform] = Seq.empty): CircuitState
Perform compilation and emit the whole Circuit
Perform compilation and emit the whole Circuit
This is intended as a convenience method wrapping up Annotation creation for the common case. It creates a EmitCircuitAnnotation that will be consumed by this Transform's emitter. The EmittedCircuit can be extracted from the returned CircuitState via CircuitState.emittedCircuitOption
- state
The Firrtl AST to compile
- customTransforms
Any custom Transforms that will be inserted into the compilation process by CompilerUtils.mergeTransforms
- returns
result of compilation with emitted circuit annotated
- Definition Classes
- Compiler
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3.3)
-
def
dependents: Seq[Dependency[Transform]]
All transforms that must run after this transform
All transforms that must run after this transform
This is a means of prerequisite injection into some other transform. Normally a transform will define its own prerequisites. Dependents exist for two main situations:
First, they improve the composition of optional transforms. If some first transform is optional (e.g., an expensive validation check), you would like to be able to conditionally cause it to run. If it is listed as a prerequisite on some other, second transform then it must always run before that second transform. There's no way to turn it off. However, by listing the second transform as a dependent of the first transform, the first transform will only run (and be treated as a prerequisite of the second transform) if included in a list of target transforms that should be run.
Second, an external library would like to inject some first transform before a second transform inside FIRRTL. In this situation, the second transform cannot have any knowledge of external libraries. The use of a dependent here allows for prerequisite injection into FIRRTL proper.
- Definition Classes
- DependencyAPI
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Due to confusion, 'dependents' is being renamed to 'optionalPrerequisiteOf'. Override the latter instead.
- Note
The use of a Seq here is to preserve input order. Internally, this will be converted to a private, ordered Set.
- See also
firrtl.passes.CheckTypes for an example of an optional checking firrtl.Transform
-
final
def
inputForm: CircuitForm
- Definition Classes
- DependencyAPIMigration
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre
-
final
def
outputForm: CircuitForm
- Definition Classes
- DependencyAPIMigration
- Annotations
- @deprecated
- Deprecated
(Since version FIRRTL 1.3) Use Dependency API methods for equivalent functionality. See: https://bit.ly/2Voppre
This is the documentation for Firrtl.