Package

firrtl

ir

Permalink

package ir

Content Hierarchy
Visibility
  1. Public
  2. All

Type Members

  1. abstract class AggregateType extends Type

    Permalink
  2. case class AnalogType(width: Width) extends GroundType with UseSerializer with Product with Serializable

    Permalink
  3. case class Attach(info: Info, exprs: Seq[Expression]) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  4. case class Block(stmts: Seq[Statement]) extends Statement with UseSerializer with Product with Serializable

    Permalink
  5. trait Bound extends Constraint

    Permalink

    Bounds of IntervalType

  6. case class BundleType(fields: Seq[Field]) extends AggregateType with UseSerializer with Product with Serializable

    Permalink
  7. case class CalcBound(arg: Constraint) extends Bound with Product with Serializable

    Permalink
  8. case class CalcWidth(arg: Constraint) extends Width with UseSerializer with Product with Serializable

    Permalink
  9. case class Circuit(info: Info, modules: Seq[DefModule], main: String) extends FirrtlNode with HasInfo with UseSerializer with Product with Serializable

    Permalink
  10. case class Closed(value: BigDecimal) extends IsKnown with Bound with Product with Serializable

    Permalink
  11. case class Conditionally(info: Info, pred: Expression, conseq: Statement, alt: Statement) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  12. case class Connect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  13. case class DefInstance(info: Info, name: String, module: String, tpe: Type = UnknownType) extends Statement with IsDeclaration with UseSerializer with Product with Serializable

    Permalink
  14. 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 UseSerializer with Product with Serializable

    Permalink
  15. abstract class DefModule extends FirrtlNode with IsDeclaration

    Permalink

    Base class for modules

  16. case class DefNode(info: Info, name: String, value: Expression) extends Statement with IsDeclaration with UseSerializer with Product with Serializable

    Permalink
  17. case class DefRegister(info: Info, name: String, tpe: Type, clock: Expression, reset: Expression, init: Expression) extends Statement with IsDeclaration with UseSerializer with Product with Serializable

    Permalink
  18. case class DefWire(info: Info, name: String, tpe: Type) extends Statement with IsDeclaration with UseSerializer with Product with Serializable

    Permalink
  19. sealed abstract class Direction extends FirrtlNode

    Permalink

    Port Direction

  20. case class DoPrim(op: PrimOp, args: Seq[Expression], consts: Seq[BigInt], tpe: Type) extends Expression with UseSerializer with Product with Serializable

    Permalink
  21. case class DoubleParam(name: String, value: Double) extends Param with UseSerializer with Product with Serializable

    Permalink

    IEEE Double Precision Parameter (for Verilog real)

  22. abstract class Expression extends FirrtlNode

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

    Permalink

    External Module

    External Module

    Generally used for Verilog black boxes

    defname

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

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

    Permalink

    Field of BundleType

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

    Permalink

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

  26. abstract class FirrtlNode extends AnyRef

    Permalink

    Intermediate Representation

  27. case class FixedLiteral(value: BigInt, width: Width, point: Width) extends Literal with UseSerializer with Product with Serializable

    Permalink
  28. case class FixedType(width: Width, point: Width) extends GroundType with UseSerializer with Product with Serializable

    Permalink
  29. abstract class GroundType extends Type

    Permalink
  30. trait HasInfo extends AnyRef

    Permalink
  31. trait HasName extends AnyRef

    Permalink
  32. trait HashCode extends AnyRef

    Permalink
  33. abstract class Info extends FirrtlNode with UseSerializer

    Permalink
  34. case class IntParam(name: String, value: BigInt) extends Param with UseSerializer with Product with Serializable

    Permalink

    Integer (of any width) Parameter

  35. class IntWidth extends Width with Product with UseSerializer

    Permalink
  36. case class IntervalType(lower: Bound, upper: Bound, point: Width) extends GroundType with Product with Serializable

    Permalink
  37. trait IsDeclaration extends HasName with HasInfo

    Permalink
  38. case class IsInvalid(info: Info, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  39. abstract class Literal extends Expression

    Permalink
  40. case class Module(info: Info, name: String, ports: Seq[Port], body: Statement) extends DefModule with UseSerializer with Product with Serializable

    Permalink

    Internal Module

    Internal Module

    An instantiable hardware block

  41. case class MultiInfo(infos: Seq[Info]) extends Info with Product with Serializable

    Permalink
  42. case class Mux(cond: Expression, tval: Expression, fval: Expression, tpe: Type = UnknownType) extends Expression with UseSerializer with Product with Serializable

    Permalink
  43. case class Open(value: BigDecimal) extends IsKnown with Bound with Product with Serializable

    Permalink
  44. abstract class Orientation extends FirrtlNode

    Permalink

    Orientation of Field

  45. sealed abstract class Param extends FirrtlNode

    Permalink

    Parameters for external modules

  46. case class PartialConnect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  47. case class Port(info: Info, name: String, direction: Direction, tpe: Type) extends FirrtlNode with IsDeclaration with UseSerializer with Product with Serializable

    Permalink

    DefModule Port

  48. abstract class PrimOp extends FirrtlNode

    Permalink

    Primitive Operation

    Primitive Operation

    See PrimOps

  49. case class Print(info: Info, string: StringLit, args: Seq[Expression], clk: Expression, en: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  50. case class RawStringParam(name: String, value: String) extends Param with UseSerializer with Product with Serializable

    Permalink

    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

  51. sealed trait RefLikeExpression extends Expression

    Permalink

    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

  52. 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

    Permalink
  53. case class SIntLiteral(value: BigInt, width: Width) extends Literal with UseSerializer with Product with Serializable

    Permalink
  54. case class SIntType(width: Width) extends GroundType with UseSerializer with Product with Serializable

    Permalink
  55. abstract class Statement extends FirrtlNode

    Permalink
  56. case class Stop(info: Info, ret: Int, clk: Expression, en: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  57. case class StringLit(string: String) extends FirrtlNode with Product with Serializable

    Permalink
  58. case class StringParam(name: String, value: StringLit) extends Param with UseSerializer with Product with Serializable

    Permalink

    String Parameter

  59. class StructuralHash extends AnyRef

    Permalink
  60. case class SubAccess(expr: Expression, index: Expression, tpe: Type, flow: Flow = UnknownFlow) extends Expression with UseSerializer with RefLikeExpression with Product with Serializable

    Permalink
  61. 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

    Permalink
  62. case class SubIndex(expr: Expression, value: Int, tpe: Type, flow: Flow = UnknownFlow) extends Expression with UseSerializer with RefLikeExpression with Product with Serializable

    Permalink
  63. abstract class Type extends FirrtlNode

    Permalink

    Types of FirrtlNode

  64. case class UIntLiteral(value: BigInt, width: Width) extends Literal with UseSerializer with Product with Serializable

    Permalink
  65. case class UIntType(width: Width) extends GroundType with UseSerializer with Product with Serializable

    Permalink
  66. case class ValidIf(cond: Expression, value: Expression, tpe: Type) extends Expression with UseSerializer with Product with Serializable

    Permalink
  67. case class VarBound(name: String) extends IsVar with Bound with Product with Serializable

    Permalink
  68. case class VarWidth(name: String) extends Width with IsVar with Product with Serializable

    Permalink
  69. case class VectorType(tpe: Type, size: Int) extends AggregateType with UseSerializer with Product with Serializable

    Permalink
  70. case class Verification(op: Formal.Value, info: Info, clk: Expression, pred: Expression, en: Expression, msg: StringLit) extends Statement with HasInfo with UseSerializer with Product with Serializable

    Permalink
  71. abstract class Width extends FirrtlNode

    Permalink

Value Members

  1. object AsyncResetType extends GroundType with UseSerializer with Product with Serializable

    Permalink
  2. object Block extends Serializable

    Permalink
  3. object ClockType extends GroundType with UseSerializer with Product with Serializable

    Permalink
  4. object DefInstance extends Serializable

    Permalink
  5. object Default extends Orientation with Product with Serializable

    Permalink
  6. object EmptyStmt extends Statement with UseSerializer with Product with Serializable

    Permalink
  7. object FileInfo extends Serializable

    Permalink
  8. object Flip extends Orientation with Product with Serializable

    Permalink
  9. object Formal extends Enumeration

    Permalink
  10. object GroundType

    Permalink
  11. object Input extends Direction with Product with Serializable

    Permalink
  12. object IntWidth

    Permalink

    Positive Integer Bit Width of a GroundType

  13. object KnownBound

    Permalink
  14. object MultiInfo extends Serializable

    Permalink
  15. object NoInfo extends Info with Product with Serializable

    Permalink
  16. object Output extends Direction with Product with Serializable

    Permalink
  17. object ReadUnderWrite extends Enumeration

    Permalink
  18. object Reference extends Serializable

    Permalink
  19. object ResetType extends GroundType with UseSerializer with Product with Serializable

    Permalink
  20. object SIntLiteral extends Serializable

    Permalink
  21. object Serializer

    Permalink
  22. object StringLit extends Serializable

    Permalink
  23. object StructuralHash

    Permalink

    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.

  24. object UIntLiteral extends Serializable

    Permalink
  25. object UnknownBound extends Bound with Product with Serializable

    Permalink
  26. object UnknownType extends Type with UseSerializer with Product with Serializable

    Permalink
  27. object UnknownWidth extends Width with UseSerializer with Product with Serializable

    Permalink

Ungrouped