Packages

p

firrtl

stage

package stage

The stage package provides an implementation of the FIRRTL compiler using the firrtl.options package. This primarily consists of:

Source
package.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. stage
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. sealed trait CircuitOption extends Unserializable

    Indicates that this Annotation contains information that is directly convertable to a FIRRTL Circuit.

  2. case class CurrentFirrtlStateAnnotation(currentState: Seq[TransformDependency]) extends NoTargetAnnotation with FirrtlOption with Product with Serializable

    Indicate to the FIRRTL compiler that specific transforms have already been run.

    Indicate to the FIRRTL compiler that specific transforms have already been run.

    The intended use of this is for advanced users who want to skip specific transforms in the FIRRTL compiler. It is far safer for users to use the command line options to the FIRRTL compiler via --start-from =

    `.

    currentState

    a sequence of transforms that have already been run on the circuit

  3. case class DisableFold(op: PrimOp) extends NoTargetAnnotation with FirrtlOption with Product with Serializable

    Turn off folding a specific primitive operand

    Turn off folding a specific primitive operand

    op

    the op that should never be folded

  4. case class FirrtlCircuitAnnotation(circuit: Circuit) extends NoTargetAnnotation with FirrtlOption with Product with Serializable

    Holds a FIRRTL Circuit

    Holds a FIRRTL Circuit

    circuit

    a circuit

  5. trait FirrtlCli extends AnyRef

    Shell mixin that provides command line options for FIRRTL.

    Shell mixin that provides command line options for FIRRTL. This does not include any RegisteredLibrary or RegisteredTransform as those are automatically loaded by the Stage using this Shell.

  6. case class FirrtlDirectoryAnnotation(dir: String) extends NoTargetAnnotation with CircuitOption with Product with Serializable

    Read a directory of ProtoBufs

    Read a directory of ProtoBufs

    • set with -I/--input-directory

    TODO: Does not currently support FIRRTL files.

    dir

    input directory name

  7. case class FirrtlFileAnnotation(file: String) extends NoTargetAnnotation with CircuitOption with Product with Serializable

    An explicit input FIRRTL file to read

    An explicit input FIRRTL file to read

    • set with -i/--input-file
    • If unset, an FirrtlFileAnnotation with the default input file will not be generated
    file

    input filename

  8. sealed trait FirrtlOption extends Unserializable

    Indicates that this is an Annotation directly used in the construction of a FirrtlOptions view.

  9. class FirrtlOptions extends AnyRef

    Internal options used to control the FIRRTL compiler stage.

  10. class FirrtlPhase extends PhaseManager
  11. case class FirrtlSourceAnnotation(source: String) extends NoTargetAnnotation with CircuitOption with Product with Serializable

    Holds a String containing FIRRTL source to read as input

    Holds a String containing FIRRTL source to read as input

    • set with --firrtl-source
  12. class FirrtlStage extends Stage
  13. case class InfoModeAnnotation(modeName: String = "use") extends NoTargetAnnotation with FirrtlOption with Product with Serializable

    Sets the info mode style

    Sets the info mode style

    • set with --info-mode
    Note

    This cannote be directly converted to Parser.InfoMode as that depends on an optional FirrtlFileAnnotation

  14. case class OutputFileAnnotation(file: String) extends NoTargetAnnotation with FirrtlOption with Product with Serializable

    An explicit output file the emitter will write to

    An explicit output file the emitter will write to

    • set with -o/--output-file
    file

    output filename

  15. case class RunFirrtlTransformAnnotation(transform: Transform) extends NoTargetAnnotation with Product with Serializable

    Holds the unambiguous class name of a Transform to run

    Holds the unambiguous class name of a Transform to run

    • set with -fct/--custom-transforms
    transform

    the full class name of the transform

  16. class TransformManager extends Transform with DependencyAPIMigration with DependencyManager[CircuitState, Transform]

    A Transform that ensures some other Transforms and their prerequisites are executed.

  17. case class CompilerAnnotation(compiler: Compiler = new VerilogCompiler()) extends NoTargetAnnotation with FirrtlOption with Product with Serializable

    helpValueName a Compiler that should be run

    helpValueName a Compiler that should be run

    compiler

    compiler name

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.4.0) Use a RunFirrtlTransformAnnotation targeting a specific Emitter.

Value Members

  1. object AllowUnrecognizedAnnotations extends NoTargetAnnotation with FirrtlOption with HasShellOptions with Product with Serializable
  2. object FirrtlDirectoryAnnotation extends HasShellOptions with Serializable
  3. object FirrtlFileAnnotation extends HasShellOptions with Serializable
  4. object FirrtlMain extends StageMain
  5. implicit object FirrtlOptionsView extends OptionsView[FirrtlOptions] with LazyLogging
  6. object FirrtlSourceAnnotation extends HasShellOptions with Serializable
  7. object FirrtlStageUtils

    Utilities that help with processing FIRRTL options

  8. object Forms
  9. object InfoModeAnnotation extends HasShellOptions with Serializable
  10. object OptimizeForFPGA extends HasShellOptions

    This flag enables a set of options that guide the FIRRTL compilation flow to ultimately generate Verilog that is more amenable to using for synthesized FPGA designs.

    This flag enables a set of options that guide the FIRRTL compilation flow to ultimately generate Verilog that is more amenable to using for synthesized FPGA designs. Currently, this flag affects only memories, as the need to emit memories that support downstream inference of hardened RAM macros. These options are not intended to be specialized to any particular vendor; instead, they aim to emit simple Verilog that more closely reflects traditional human-written definitions of synchronous-read memories.

    1) Enable the firrtl.passes.memlib.InferReadWrite transform to reduce port count, where applicable.

    2) Use the firrtl.transforms.SimplifyMems transform to Lower aggregate-typed memories with always-high masks to packed memories without splitting them into multiple independent ground-typed memories.

    3) Use the firrtl.passes.memlib.SeparateWriteClocks transform to ensure that each write port of a multiple-write, synchronous-read memory with 'undefined' collision behavior ultimately maps to a separate clocked process in the emitted Verilog. This avoids the issue of implicitly constraining cross-port collision and write ordering behavior and helps simplify inference of true dual-port RAM macros.

    4) Use the firrtl.passes.memlib.SetDefaultReadUnderWrite to specify that memories with undefined read-under-write behavior should map to emitted microarchitectures characteristic of "read-first" ports by default. This eliminates the difficulty of inferring a RAM macro that matches the strict semantics of "write-first" ports.

    5) Add a firrtl.passes.memlib.PassthroughSimpleSyncReadMemsAnnotation to allow some synchronous-read memories and readwrite ports to pass through firrtl.passes.memlib.VerilogMemDelays without introducing explicit pipeline registers or splitting ports.

    6) Add a firrtl.annotations.MemorySynthInit to enable memory initialization values to be synthesized.

  11. object OutputFileAnnotation extends HasShellOptions with Serializable
  12. object PrettyNoExprInlining extends NoTargetAnnotation with FirrtlOption with HasShellOptions with Product with Serializable

    Turn off all expression inlining

    Turn off all expression inlining

    Note

    this primarily applies to emitted Verilog

  13. object RunFirrtlTransformAnnotation extends HasShellOptions with Serializable
  14. object TransformManager

Deprecated Value Members

  1. object CompilerAnnotation extends HasShellOptions with Serializable
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.4.0) Use a RunFirrtlTransformAnnotation targeting a specific Emitter.

  2. object DisableFold extends HasShellOptions with Serializable
    Annotations
    @deprecated
    Deprecated

    (Since version 1.4) will be removed and merged into ConstantPropagation in 1.5

  3. object WarnNoScalaVersionDeprecation extends NoTargetAnnotation with FirrtlOption with HasShellOptions with Product with Serializable

    Suppresses warning about Scala 2.11 deprecation

    Suppresses warning about Scala 2.11 deprecation

    • set with --warn:no-scala-version-deprecation
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.5) Support for Scala 2.11 has been dropped, this object no longer does anything

Inherited from AnyRef

Inherited from Any

Ungrouped