Packages

p

firrtl

package firrtl

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

Type Members

  1. class AddDescriptionNodes extends Transform with DependencyAPIMigration

    Wraps modules or statements with their respective described nodes.

    Wraps modules or statements with their respective described nodes. Descriptions come from DescriptionAnnotation. Describing a module or any of its ports will turn it into a DescribedMod. Describing a Statement will turn it into a (private) DescribedStmt.

    Note

    should only be used by VerilogEmitter, described nodes will break other transforms.

  2. class AnnotationSeq extends AnyRef

    Container of all annotations for a Firrtl compiler

  3. case class Attribute(string: StringLit) extends FirrtlNode with Description with Product with Serializable

    A Verilog-style attribute.

    A Verilog-style attribute.

    string

    the attribute

  4. case class AttributeAnnotation(target: Target, description: String) extends DescriptionAnnotation with Product with Serializable

    An Verilog-style attribute.

    An Verilog-style attribute.

    target

    the object being given an attribute

    description

    the attribute

  5. case class CDefMPort(info: Info, name: String, tpe: Type, mem: String, exps: Seq[Expression], direction: MPortDir) extends Statement with HasInfo with CanBeReferenced with UseSerializer with Product with Serializable
  6. case class CDefMemory(info: Info, name: String, tpe: Type, size: BigInt, seq: Boolean, readUnderWrite: ir.ReadUnderWrite.Value = ReadUnderWrite.Undefined) extends Statement with HasInfo with CanBeReferenced with UseSerializer with Product with Serializable
  7. class ChirrtlEmitter extends FirrtlEmitter
  8. case class CircuitState(circuit: Circuit, form: CircuitForm, annotations: AnnotationSeq, renames: Option[RenameMap]) extends Product with Serializable

    Current State of the Circuit

    Current State of the Circuit

    circuit

    The current state of the Firrtl AST

    form

    The current form of the circuit

    annotations

    The current collection of Annotation

    renames

    A map of Named things that have been renamed. Generally only a return value from Transforms

  9. trait ConnectEmissionOption extends EmissionOption

    Emission customization options for connect

  10. case class CustomDefaultMemoryEmission(initValue: MemoryInitValue) extends MemoryEmissionOption with NoTargetAnnotation with Product with Serializable

    Customize how memory initialization code is emitted

  11. case class CustomDefaultRegisterEmission(useInitAsPreset: Boolean, disableRandomization: Boolean) extends RegisterEmissionOption with NoTargetAnnotation with Product with Serializable

    Control how register initialization code is emitted

  12. case class CustomTransformException(cause: Throwable) extends Exception with Product with Serializable

    Wraps exceptions from CustomTransforms so they can be reported appropriately

  13. trait DependencyAPIMigration extends AnyRef

    This trait helps ease migration from old CircuitForm specification of dependencies to Dependency API specification of dependencies.

    This trait helps ease migration from old CircuitForm specification of dependencies to Dependency API specification of dependencies. This trait implements deprecated, abstract Transform methods (inputForm and outputForm) for you and sets default values for dependencies:

    • prerequisites are empty
    • optionalPrerequisites are empty
    • optionalPrerequisiteOf are empty
    • all transforms are invalidated

    For more information, see: https://bit.ly/2Voppre

  14. sealed trait Description extends FirrtlNode

    Base trait for a description that gives some information about a FirrtlNode.

    Base trait for a description that gives some information about a FirrtlNode. Usually, we would like to emit these descriptions in some way.

  15. sealed trait DescriptionAnnotation extends Annotation

    A base trait for Annotations that describe a FirrtlNode.

    A base trait for Annotations that describe a FirrtlNode. Usually, we would like to emit these descriptions in some way.

  16. case class DocString(string: StringLit) extends FirrtlNode with Description with Product with Serializable

    A docstring description (a comment)

    A docstring description (a comment)

    string

    a comment

  17. case class DocStringAnnotation(target: Target, description: String) extends DescriptionAnnotation with Product with Serializable

    A docstring description (a comment).

    A docstring description (a comment).

    target

    the object being described

    description

    the docstring describing the object

  18. trait EmissionOption extends AnyRef

    Base type for emission customization options NOTE: all the following traits must be mixed with SingleTargetAnnotation[T <: Named] in order to be taken into account in the Emitter

  19. case class EmitAllModulesAnnotation(emitter: Class[_ <: Emitter]) extends EmitAnnotation with Product with Serializable
  20. sealed trait EmitAnnotation extends NoTargetAnnotation
  21. case class EmitCircuitAnnotation(emitter: Class[_ <: Emitter]) extends EmitAnnotation with Product with Serializable
  22. trait EmittedAnnotation[T <: EmittedComponent] extends NoTargetAnnotation with CustomFileEmission

    Traits for Annotations containing emitted components

  23. sealed abstract class EmittedCircuit extends EmittedComponent
  24. sealed trait EmittedCircuitAnnotation[T <: EmittedCircuit] extends EmittedAnnotation[T]
  25. sealed abstract class EmittedComponent extends AnyRef
  26. final case class EmittedFirrtlCircuit(name: String, value: String, outputSuffix: String) extends EmittedCircuit with Product with Serializable
  27. case class EmittedFirrtlCircuitAnnotation(value: EmittedFirrtlCircuit) extends EmittedCircuitAnnotation[EmittedFirrtlCircuit] with Product with Serializable
  28. final case class EmittedFirrtlModule(name: String, value: String, outputSuffix: String) extends EmittedModule with Product with Serializable
  29. case class EmittedFirrtlModuleAnnotation(value: EmittedFirrtlModule) extends EmittedModuleAnnotation[EmittedFirrtlModule] with Product with Serializable
  30. sealed abstract class EmittedModule extends EmittedComponent
  31. sealed trait EmittedModuleAnnotation[T <: EmittedModule] extends EmittedAnnotation[T]
  32. final case class EmittedVerilogCircuit(name: String, value: String, outputSuffix: String) extends EmittedCircuit with Product with Serializable
  33. case class EmittedVerilogCircuitAnnotation(value: EmittedVerilogCircuit) extends EmittedCircuitAnnotation[EmittedVerilogCircuit] with Product with Serializable
  34. final case class EmittedVerilogModule(name: String, value: String, outputSuffix: String) extends EmittedModule with Product with Serializable
  35. case class EmittedVerilogModuleAnnotation(value: EmittedVerilogModule) extends EmittedModuleAnnotation[EmittedVerilogModule] with Product with Serializable
  36. trait Emitter extends Transform

    Defines old API for Emission.

    Defines old API for Emission. Deprecated

  37. case class EmitterException(message: String) extends PassException with Product with Serializable
  38. sealed abstract class FirrtlEmitter extends Transform with Emitter with DependencyAPIMigration
  39. final class FirrtlProtos extends AnyRef
  40. class FirrtlUserException extends RuntimeException with NoStackTrace

    Exception indicating user error

    Exception indicating user error

    These exceptions indicate a problem due to bad input and thus do not include a stack trace. This can be extended by custom transform writers.

  41. trait Flow extends AnyRef
  42. class HighFirrtlEmitter extends FirrtlEmitter
  43. case class InvalidEscapeCharException(message: String) extends ParserException with Product with Serializable
  44. case class InvalidStringLitException(message: String) extends ParserException with Product with Serializable
  45. trait Kind extends AnyRef
  46. abstract class LexerHelper extends AnyRef
  47. class LowFirrtlEmitter extends FirrtlEmitter
  48. abstract class MPortDir extends FirrtlNode
  49. class MemoizedHash[T] extends AnyRef
  50. case class MemoryArrayInit(values: Seq[BigInt]) extends MemoryInitValue with Product with Serializable
  51. trait MemoryEmissionOption extends EmissionOption

    Emission customization options for memories

  52. case class MemoryFileInlineInit(filename: String, hexOrBinary: FileType) extends MemoryInitValue with Product with Serializable
  53. sealed trait MemoryInitValue extends AnyRef

    Emission customization option for memory initialization

  54. case class MemoryScalarInit(value: BigInt) extends MemoryInitValue with Product with Serializable
  55. class MiddleFirrtlEmitter extends FirrtlEmitter
  56. class MinimumHighFirrtlEmitter extends FirrtlEmitter
  57. class MinimumVerilogEmitter extends VerilogEmitter with Emitter
  58. class ModuleGraph extends AnyRef

    Maintains a one to many graph of each modules instantiated child module.

    Maintains a one to many graph of each modules instantiated child module. This graph can be searched for a path from a child module back to one of it's parents. If one is found a recursive loop has happened The graph is a map between the name of a node to set of names of that nodes children

  59. class Namespace extends AnyRef
  60. trait NodeEmissionOption extends EmissionOption

    Emission customization options for nodes

  61. case class ParameterNotSpecifiedException(message: String) extends ParserException with Product with Serializable
  62. case class ParameterRedefinedException(message: String) extends ParserException with Product with Serializable
  63. class ParserException extends FirrtlUserException
  64. trait PortEmissionOption extends EmissionOption

    Emission customization options for IO ports

  65. trait RegisterEmissionOption extends EmissionOption

    Emission customization options for registers

  66. sealed trait RenameMap extends AnyRef

    Map old names to new names

    Map old names to new names

    Transforms that modify names should return a RenameMap with the CircuitState These are mutable datastructures for convenience

  67. trait ResolvedAnnotationPaths extends AnyRef

    Extend for transforms that require resolved targets in their annotations Ensures all targets in annotations of a class in annotationClasses are resolved before the execute method

  68. abstract class SeqTransform extends Transform with SeqTransformBased

    For transformations that are simply a sequence of transforms

  69. trait SeqTransformBased extends AnyRef
  70. case class SyntaxErrorsException(message: String) extends ParserException with Product with Serializable
  71. class SystemVerilogEmitter extends VerilogEmitter
  72. trait Transform extends TransformLike[CircuitState] with DependencyAPI[Transform]

    The basic unit of operating on a Firrtl AST

  73. case class VRandom(width: BigInt) extends Expression with Product with Serializable
  74. class VerilogEmitter extends SeqTransform with Emitter
  75. class Visitor extends AbstractParseTreeVisitor[FirrtlNode] with ParseTreeVisitor[FirrtlNode]
  76. type WDefInstance = DefInstance
  77. case class WDefInstanceConnector(info: Info, name: String, module: String, tpe: Type, portCons: Seq[(Expression, Expression)]) extends Statement with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable
  78. type WRef = Reference
  79. type WSubAccess = SubAccess
  80. type WSubField = SubField
  81. type WSubIndex = SubIndex
  82. trait WireEmissionOption extends EmissionOption

    Emission customization options for wires

  83. class WrappedExpression extends AnyRef
  84. case class WrappedInt(value: BigInt) extends Product with Serializable
  85. class WrappedType extends AnyRef
  86. class WrappedWidth extends AnyRef
  87. class ChirrtlToHighFirrtl extends CoreTransform

    This transforms "CHIRRTL", the chisel3 IR, to "Firrtl".

    This transforms "CHIRRTL", the chisel3 IR, to "Firrtl". Note the resulting circuit has only IR nodes, not WIR.

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.MinimalHighForm, Forms.ChirrtlForm)'. This will be removed in 1.4.

  88. sealed abstract class CircuitForm extends Ordered[CircuitForm]

    Current form of the Firrtl Circuit

    Current form of the Firrtl Circuit

    Form is a measure of addition restrictions on the legality of a Firrtl circuit. There is a notion of "highness" and "lowness" implemented in the compiler by extending scala.math.Ordered. "Lower" forms add additional restrictions compared to "higher" forms. This means that "higher" forms are strictly supersets of the "lower" forms. Thus, that any transform that operates on HighForm can also operate on MidForm or LowForm

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Mix-in the DependencyAPIMigration trait into your Transform and specify its Dependency API dependencies. See: https://bit.ly/2Voppre

  89. trait Compiler extends Transform with DependencyAPIMigration
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Migrate to firrtl.stage.transforms.Compiler. This will be removed in 1.4.

  90. sealed abstract class CoreTransform extends SeqTransform
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.2) Use a TransformManager or some other Stage/Phase class. Will be removed in 1.4.

  91. class HighFirrtlCompiler extends Compiler

    Emits input circuit Will replace Chirrtl constructs with Firrtl

    Emits input circuit Will replace Chirrtl constructs with Firrtl

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Seq(Dependency[HighFirrtlEmitter]))

  92. class HighFirrtlToMiddleFirrtl extends CoreTransform

    Expands aggregate connects, removes dynamic accesses, and when statements.

    Expands aggregate connects, removes dynamic accesses, and when statements. Checks for uninitialized values. Must accept a well-formed graph. Operates on working IR nodes.

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.MidForm, Forms.Deduped)'. This will be removed in 1.4.

  93. class IRToWorkingIR extends CoreTransform

    Converts from the bare intermediate representation (ir.scala) to a working representation (WIR.scala)

    Converts from the bare intermediate representation (ir.scala) to a working representation (WIR.scala)

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.WorkingIR, Forms.MinimalHighForm)'. This will be removed in 1.4.

  94. class LowFirrtlCompiler extends Compiler

    Emits lowered input circuit

    Emits lowered input circuit

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Dependency[LowFirrtlEmitter])

  95. class LowFirrtlOptimization extends CoreTransform

    Runs a series of optimization passes on LowFirrtl

    Runs a series of optimization passes on LowFirrtl

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.LowFormOptimized, Forms.LowForm)'. This will be removed in 1.4.

    Note

    This is currently required for correct Verilog emission TODO Fix the above note

  96. class MiddleFirrtlCompiler extends Compiler

    Emits middle Firrtl input circuit

    Emits middle Firrtl input circuit

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Dependency[MiddleFirrtlEmitter])

  97. class MiddleFirrtlToLowFirrtl extends CoreTransform

    Expands all aggregate types into many ground-typed components.

    Expands all aggregate types into many ground-typed components. Must accept a well-formed graph of only middle Firrtl features. Operates on working IR nodes.

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.LowForm, Forms.MidForm)'. This will be removed in 1.4.

  98. class MinimumLowFirrtlOptimization extends CoreTransform

    Runs runs only the optimization passes needed for Verilog emission

    Runs runs only the optimization passes needed for Verilog emission

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.LowFormMinimumOptimized, Forms.LowForm)'. This will be removed in 1.4.

  99. class MinimumVerilogCompiler extends Compiler

    Emits Verilog without optimizations

    Emits Verilog without optimizations

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Dependency[MinimumVerilogEmitter])

  100. class NoneCompiler extends Compiler

    Emits input circuit with no changes

    Emits input circuit with no changes

    Primarily useful for changing between .fir and .pb serialized formats

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} or stage.transforms.Compiler(Seq(Dependency[ChirrtlEmitter]))

  101. class ResolveAndCheck extends CoreTransform

    Resolves types, kinds, and flows, and checks the circuit legality.

    Resolves types, kinds, and flows, and checks the circuit legality. Operates on working IR nodes and high Firrtl.

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use 'new TransformManager(Forms.Resolved, Forms.WorkingIR)'. This will be removed in 1.4.

  102. class SystemVerilogCompiler extends VerilogCompiler

    Currently just an alias for the VerilogCompiler

    Currently just an alias for the VerilogCompiler

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Dependency[SystemVerilogEmitter])

  103. type TargetDirAnnotation = firrtl.options.TargetDirAnnotation
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.2) Use firrtl.options.TargetDirAnnotation

  104. class VerilogCompiler extends Compiler

    Emits Verilog

    Emits Verilog

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Use stage.{FirrtlStage, FirrtlMain} stage.transforms.Compiler(Dependency[VerilogEmitter])

Value Members

  1. implicit def annoSeqToSeq(as: AnnotationSeq): Seq[Annotation]
  2. implicit def seqToAnnoSeq(xs: Seq[Annotation]): AnnotationSeq
  3. object Addw extends PrimOp with Product with Serializable
  4. object AnnotationSeq
  5. object BuildInfo extends Product with Serializable

    This object was generated by sbt-buildinfo.

  6. object CircuitState extends Serializable
  7. object ConnectEmissionOptionDefault extends ConnectEmissionOption with Product with Serializable

    default Emitter behavior for connect

  8. object Dshlw extends PrimOp with Product with Serializable
  9. object DuplexFlow extends Flow with Product with Serializable
  10. object EmitAllModulesAnnotation extends HasShellOptions with Serializable
  11. object EmitCircuitAnnotation extends HasShellOptions with Serializable
  12. object EmptyExpression extends Expression with UseSerializer with Product with Serializable
  13. object ExpKind extends Kind with Product with Serializable
  14. object FileUtils
  15. object Implicits
  16. object InstanceKind extends Kind with Product with Serializable
  17. object LowFirrtlOptimizedEmitter extends FirrtlEmitter
  18. object MInfer extends MPortDir with Product with Serializable
  19. object MRead extends MPortDir with Product with Serializable
  20. object MReadWrite extends MPortDir with Product with Serializable
  21. object MWrite extends MPortDir with Product with Serializable
  22. object Mappers
  23. object MemKind extends Kind with Product with Serializable
  24. object MemoizedHash
  25. object MemoryEmissionOptionDefault extends MemoryEmissionOption with Product with Serializable

    default Emitter behavior for memories

  26. object MemoryNoInit extends MemoryInitValue with Product with Serializable
  27. object MemoryRandomInit extends MemoryInitValue with Product with Serializable
  28. object Namespace
  29. object NodeEmissionOptionDefault extends NodeEmissionOption with Product with Serializable

    default Emitter behavior for nodes

  30. object NodeKind extends Kind with Product with Serializable
  31. object Parser extends LazyLogging
  32. object PoisonKind extends Kind with Product with Serializable
  33. object PortEmissionOptionDefault extends PortEmissionOption with Product with Serializable

    default Emitter behavior for IO ports

  34. object PortKind extends Kind with Product with Serializable
  35. object PrimOps extends LazyLogging

    Definitions and Utility functions for ir.PrimOps

  36. object RandomKind extends Kind with Product with Serializable
  37. object RegKind extends Kind with Product with Serializable
  38. object RegisterEmissionOptionDefault extends RegisterEmissionOption with Product with Serializable

    default Emitter behavior for registers

  39. object RenameMap
  40. object SinkFlow extends Flow with Product with Serializable
  41. object SourceFlow extends Flow with Product with Serializable
  42. object Subw extends PrimOp with Product with Serializable
  43. object UnknownFlow extends Flow with Product with Serializable
  44. object UnknownKind extends Kind with Product with Serializable
  45. object Utils extends LazyLogging
  46. object VerilogEmitter
  47. object WDefInstance
  48. object WInvalid extends Expression with UseSerializer with Product with Serializable
  49. object WRef
  50. object WSubAccess
  51. object WSubField
  52. object WSubIndex
  53. object WVoid extends Expression with UseSerializer with Product with Serializable
  54. object WireEmissionOptionDefault extends WireEmissionOption with Product with Serializable

    default Emitter behavior for wires

  55. object WireKind extends Kind with Product with Serializable
  56. object WrappedExpression
  57. object WrappedType
  58. object WrappedWidth
  59. object bitWidth

    Helper object for computing the width of a firrtl type.

  60. object castRhs
  61. object connectFields
  62. object flattenType
  63. object fromBits
  64. object getWidth
  65. object seqCat
  66. object toBits

    Given an expression, return an expression consisting of all sub-expressions concatenated (or flattened).

Deprecated Value Members

  1. val TargetDirAnnotation: firrtl.options.TargetDirAnnotation.type
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.2) Use firrtl.options.TargetDirAnnotation

  2. object ChirrtlForm extends CircuitForm with Product with Serializable

    Chirrtl Form

    Chirrtl Form

    The form of the circuit emitted by Chisel. Not a true Firrtl form. Includes cmem, smem, and mport IR nodes which enable declaring memories separately form their ports. A "Higher" form than HighForm

    See CDefMemory and CDefMPort

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Mix-in the DependencyAPIMigration trait into your Transform and specify its Dependency API dependencies. See: https://bit.ly/2Voppre

  3. object CompilerUtils extends LazyLogging
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) This will be removed in 1.4

  4. object HighForm extends CircuitForm with Product with Serializable

    High Form

    High Form

    As detailed in the Firrtl specification https://github.com/ucb-bar/firrtl/blob/master/spec/spec.pdf

    Also see firrtl.ir

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Mix-in the DependencyAPIMigration trait into your Transform and specify its Dependency API dependencies. See: https://bit.ly/2Voppre

  5. object LowForm extends CircuitForm with Product with Serializable

    Low Form

    Low Form

    The "lowest" form. In addition to the restrictions in MidForm:

    • All aggregate types (vector/bundle) must have been removed
    • All implicit truncations must be made explicit
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Mix-in the DependencyAPIMigration trait into your Transform and specify its Dependency API dependencies. See: https://bit.ly/2Voppre

  6. object MidForm extends CircuitForm with Product with Serializable

    Middle Form

    Middle Form

    A "lower" form than HighForm with the following restrictions:

    • All widths must be explicit
    • All whens must be removed
    • There can only be a single connection to any element
    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Mix-in the DependencyAPIMigration trait into your Transform and specify its Dependency API dependencies. See: https://bit.ly/2Voppre

  7. object UnknownForm extends CircuitForm with Product with Serializable

    Unknown Form

    Unknown Form

    Often passes may modify a circuit (e.g. InferTypes), but return a circuit in the same form it was given.

    For this use case, use UnknownForm. It cannot be compared against other forms.

    TODO(azidar): Replace with PreviousForm, which more explicitly encodes this requirement.

    Annotations
    @deprecated
    Deprecated

    (Since version FIRRTL 1.3) Mix-in the DependencyAPIMigration trait into your Transform and specify its Dependency API dependencies. See: https://bit.ly/2Voppre

Inherited from AnyRef

Inherited from Any

Ungrouped