Packages

package ir

Ordering
  1. Alphabetic
Visibility
  1. Public
  2. All

Type Members

  1. abstract class AggregateType extends Type
  2. case class AnalogType(width: Width) extends GroundType with UseSerializer with Product with Serializable
  3. case class Attach(info: Info, exprs: Seq[Expression]) extends Statement with HasInfo with UseSerializer with Product with Serializable
  4. case class Block(stmts: Seq[Statement]) extends Statement with UseSerializer with Product with Serializable
  5. trait Bound extends Constraint

    Bounds of IntervalType

  6. case class BundleType(fields: Seq[Field]) extends AggregateType with UseSerializer with Product with Serializable
  7. case class CalcBound(arg: Constraint) extends Bound with Product with Serializable
  8. case class CalcWidth(arg: Constraint) extends Width with UseSerializer with Product with Serializable
  9. trait CanBeReferenced extends AnyRef

    Represents a statement that can be referenced in a firrtl expression.

    Represents a statement that can be referenced in a firrtl expression. This explicitly excludes named side-effecting statements like Print, Stop and Verification. Note: This trait cannot be sealed since the memory ports are declared in WIR.scala. Once we fully remove all WIR, this trait could be sealed.

  10. case class Circuit(info: Info, modules: Seq[DefModule], main: String) extends FirrtlNode with HasInfo with UseSerializer with Product with Serializable
  11. case class Closed(value: BigDecimal) extends IsKnown with Bound with Product with Serializable
  12. case class Conditionally(info: Info, pred: Expression, conseq: Statement, alt: Statement) extends Statement with HasInfo with UseSerializer with Product with Serializable
  13. case class Connect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable
  14. case class DefInstance(info: Info, name: String, module: String, tpe: Type = UnknownType) extends Statement with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable
  15. case class DefMemory(info: Info, name: String, dataType: Type, depth: BigInt, writeLatency: Int, readLatency: Int, readers: Seq[String], writers: Seq[String], readwriters: Seq[String], readUnderWrite: ReadUnderWrite.Value = ReadUnderWrite.Undefined) extends Statement with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable
  16. abstract class DefModule extends FirrtlNode with IsDeclaration

    Base class for modules

  17. case class DefNode(info: Info, name: String, value: Expression) extends Statement with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable
  18. case class DefRegister(info: Info, name: String, tpe: Type, clock: Expression, reset: Expression, init: Expression) extends Statement with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable
  19. case class DefWire(info: Info, name: String, tpe: Type) extends Statement with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable
  20. sealed abstract class Direction extends FirrtlNode

    Port Direction

  21. case class DoPrim(op: PrimOp, args: Seq[Expression], consts: Seq[BigInt], tpe: Type) extends Expression with UseSerializer with Product with Serializable
  22. case class DoubleParam(name: String, value: Double) extends Param with UseSerializer with Product with Serializable

    IEEE Double Precision Parameter (for Verilog real)

  23. abstract class Expression extends FirrtlNode
  24. case class ExtModule(info: Info, name: String, ports: Seq[Port], defname: String, params: Seq[Param]) extends DefModule with UseSerializer with Product with Serializable

    External Module

    External Module

    Generally used for Verilog black boxes

    defname

    Defined name of the external module (ie. the name Firrtl will emit)

  25. case class Field(name: String, flip: Orientation, tpe: Type) extends FirrtlNode with HasName with UseSerializer with Product with Serializable

    Field of BundleType

  26. case class FileInfo(escaped: String) extends Info with Product with Serializable

    Stores the string of a file info annotation in its escaped form.

  27. abstract class FirrtlNode extends AnyRef

    Intermediate Representation

  28. case class FixedLiteral(value: BigInt, width: Width, point: Width) extends Literal with UseSerializer with Product with Serializable
  29. case class FixedType(width: Width, point: Width) extends GroundType with UseSerializer with Product with Serializable
  30. abstract class GroundType extends Type
  31. trait HasInfo extends AnyRef
  32. trait HasName extends AnyRef
  33. trait HashCode extends AnyRef
  34. abstract class Info extends FirrtlNode with UseSerializer
  35. case class IntParam(name: String, value: BigInt) extends Param with UseSerializer with Product with Serializable

    Integer (of any width) Parameter

  36. class IntWidth extends Width with Product with UseSerializer
  37. case class IntervalType(lower: Bound, upper: Bound, point: Width) extends GroundType with Product with Serializable
  38. trait IsDeclaration extends HasName with HasInfo
  39. case class IsInvalid(info: Info, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable
  40. abstract class Literal extends Expression
  41. case class Module(info: Info, name: String, ports: Seq[Port], body: Statement) extends DefModule with UseSerializer with Product with Serializable

    Internal Module

    Internal Module

    An instantiable hardware block

  42. case class MultiInfo(infos: Seq[Info]) extends Info with Product with Serializable
  43. case class Mux(cond: Expression, tval: Expression, fval: Expression, tpe: Type = UnknownType) extends Expression with UseSerializer with Product with Serializable
  44. case class Open(value: BigDecimal) extends IsKnown with Bound with Product with Serializable
  45. abstract class Orientation extends FirrtlNode

    Orientation of Field

  46. sealed abstract class Param extends FirrtlNode

    Parameters for external modules

  47. case class PartialConnect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable
  48. case class Port(info: Info, name: String, direction: Direction, tpe: Type) extends FirrtlNode with IsDeclaration with CanBeReferenced with UseSerializer with Product with Serializable

    DefModule Port

  49. abstract class PrimOp extends FirrtlNode

    Primitive Operation

    Primitive Operation

    See PrimOps

  50. final class Print extends Statement with HasInfo with IsDeclaration with UseSerializer with Product with Serializable
  51. case class RawStringParam(name: String, value: String) extends Param with UseSerializer with Product with Serializable

    Raw String Parameter Useful for Verilog type parameters

    Raw String Parameter Useful for Verilog type parameters

    Note

    Firrtl doesn't guarantee anything about this String being legal in any backend

  52. sealed trait RefLikeExpression extends Expression

    Represents reference-like expression nodes: SubField, SubIndex, SubAccess and Reference The following fields can be cast to RefLikeExpression in every well formed firrtl AST: - SubField.expr, SubIndex.expr, SubAccess.expr - IsInvalid.expr, Connect.loc, PartialConnect.loc - Attach.exprs

  53. case class Reference(name: String, tpe: Type = UnknownType, kind: Kind = UnknownKind, flow: Flow = UnknownFlow) extends Expression with HasName with UseSerializer with RefLikeExpression with Product with Serializable
  54. case class SIntLiteral(value: BigInt, width: Width) extends Literal with UseSerializer with Product with Serializable
  55. case class SIntType(width: Width) extends GroundType with UseSerializer with Product with Serializable
  56. abstract class Statement extends FirrtlNode
  57. final class Stop extends Statement with HasInfo with IsDeclaration with UseSerializer with Product with Serializable
  58. case class StringLit(string: String) extends FirrtlNode with Product with Serializable
  59. case class StringParam(name: String, value: StringLit) extends Param with UseSerializer with Product with Serializable

    String Parameter

  60. class StructuralHash extends AnyRef
  61. case class SubAccess(expr: Expression, index: Expression, tpe: Type, flow: Flow = UnknownFlow) extends Expression with UseSerializer with RefLikeExpression with Product with Serializable
  62. case class SubField(expr: Expression, name: String, tpe: Type = UnknownType, flow: Flow = UnknownFlow) extends Expression with HasName with UseSerializer with RefLikeExpression with Product with Serializable
  63. case class SubIndex(expr: Expression, value: Int, tpe: Type, flow: Flow = UnknownFlow) extends Expression with UseSerializer with RefLikeExpression with Product with Serializable
  64. abstract class Type extends FirrtlNode

    Types of FirrtlNode

  65. case class UIntLiteral(value: BigInt, width: Width) extends Literal with UseSerializer with Product with Serializable
  66. case class UIntType(width: Width) extends GroundType with UseSerializer with Product with Serializable
  67. case class ValidIf(cond: Expression, value: Expression, tpe: Type) extends Expression with UseSerializer with Product with Serializable
  68. case class VarBound(name: String) extends IsVar with Bound with Product with Serializable
  69. case class VarWidth(name: String) extends Width with IsVar with Product with Serializable
  70. case class VectorType(tpe: Type, size: Int) extends AggregateType with UseSerializer with Product with Serializable
  71. final class Verification extends Statement with HasInfo with IsDeclaration with UseSerializer with Product with Serializable
  72. abstract class Width extends FirrtlNode

Value Members

  1. object AsyncResetType extends GroundType with UseSerializer with Product with Serializable
  2. object Block extends Serializable
  3. object ClockType extends GroundType with UseSerializer with Product with Serializable
  4. object DefInstance extends Serializable
  5. object Default extends Orientation with Product with Serializable
  6. object EmptyStmt extends Statement with UseSerializer with Product with Serializable
  7. object FileInfo extends Serializable
  8. object Flip extends Orientation with Product with Serializable
  9. object Formal extends Enumeration
  10. object GroundType
  11. object Input extends Direction with Product with Serializable
  12. object IntWidth

    Positive Integer Bit Width of a GroundType

  13. object KnownBound
  14. object MultiInfo extends Serializable
  15. object NoInfo extends Info with Product with Serializable
  16. object Output extends Direction with Product with Serializable
  17. object Print extends Serializable
  18. object ReadUnderWrite extends Enumeration
  19. object Reference extends Serializable
  20. object ResetType extends GroundType with UseSerializer with Product with Serializable
  21. object SIntLiteral extends Serializable
  22. object Serializer
  23. object Stop extends Serializable
  24. object StringLit extends Serializable
  25. object StructuralHash

    This object can performs a "structural" hash over any firrtl Module.

    This object can performs a "structural" hash over any firrtl Module. It ignores: - [firrtl.ir.Expression Expression] types - Any [firrtl.ir.Info Info] fields - Description on DescribedStmt - each identifier name is replaced by a unique integer which only depends on the order of declaration and is thus deterministic - Module names are ignored.

    Because of the way we "agnostify" bundle types, all SubField access nodes need to have a known bundle type. Thus - in a lot of cases, like after reading firrtl from a file - you need to run the firrtl type inference before hashing.

    Please note that module hashes don't include any submodules. Two structurally equivalent modules are only functionally equivalent if they are part of the same circuit and thus all modules referred to in DefInstance are the same.

  26. object UIntLiteral extends Serializable
  27. object UnknownBound extends Bound with Product with Serializable
  28. object UnknownType extends Type with UseSerializer with Product with Serializable
  29. object UnknownWidth extends Width with UseSerializer with Product with Serializable
  30. object Verification extends Serializable

Ungrouped