package ir
- Alphabetic
- Public
- Protected
Type Members
- abstract class AggregateType extends Type
- case class AliasType(name: String) extends Type with UseSerializer with Product with Serializable
- case class AnalogType(width: Width) extends GroundType with UseSerializer with Product with Serializable
- case class Attach(info: Info, exprs: Seq[Expression]) extends Statement with HasInfo with UseSerializer with Product with Serializable
- case class Block(stmts: Seq[Statement]) extends Statement with UseSerializer with Product with Serializable
- case class BooleanPropertyLiteral(value: Boolean) extends Expression with UseSerializer with Product with Serializable
- case class BundleType(fields: Seq[Field]) extends AggregateType with UseSerializer with Product with Serializable
- case class Circuit(info: Info, modules: Seq[DefModule], main: String, typeAliases: Seq[DefTypeAlias] = Seq.empty, layers: Seq[Layer] = Seq.empty, options: Seq[DefOption] = Seq.empty) extends FirrtlNode with HasInfo with UseSerializer with Product with Serializable
- case class CircuitWithAnnos(circuit: Circuit, annotations: Seq[Annotation]) extends FirrtlNode with UseSerializer with Product with Serializable
- case class ClassPropertyType(name: String) extends PropertyType with Product with Serializable
- case class Conditionally(info: Info, pred: Expression, conseq: Statement, alt: Statement) extends Statement with HasInfo with UseSerializer with Product with Serializable
- case class Connect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable
- case class ConstType(underlying: Type) extends Type with UseSerializer with Product with Serializable
- case class DefClass(info: Info, name: String, ports: Seq[Port], body: Statement) extends DefModule with UseSerializer with Product with Serializable
Class definition
- case class DefInstance(info: Info, name: String, module: String, tpe: Type = UnknownType) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- case class DefInstanceChoice(info: Info, name: String, default: String, option: String, choices: Seq[(String, String)]) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- 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
- abstract class DefModule extends FirrtlNode with IsDeclaration
Base class for modules
- case class DefNode(info: Info, name: String, value: Expression) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- case class DefObject(info: Info, name: String, cls: String) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- case class DefOption(info: Info, name: String, cases: Seq[DefOptionCase]) extends Product with Serializable
- case class DefOptionCase(info: Info, name: String) extends Product with Serializable
- case class DefRegister(info: Info, name: String, tpe: Type, clock: Expression) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- case class DefRegisterWithReset(info: Info, name: String, tpe: Type, clock: Expression, reset: Expression, init: Expression) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- case class DefTypeAlias(info: Info, name: String, tpe: Type) extends Statement with UseSerializer with Product with Serializable
Record/bundle type definition that names a FIRRTL type with an alias name
- case class DefWire(info: Info, name: String, tpe: Type) extends Statement with IsDeclaration with UseSerializer with Product with Serializable
- sealed abstract class Direction extends FirrtlNode
Port Direction
- case class DoPrim(op: PrimOp, args: Seq[Expression], consts: Seq[BigInt], tpe: Type) extends Expression with UseSerializer with Product with Serializable
- case class DoubleParam(name: String, value: Double) extends Param with UseSerializer with Product with Serializable
IEEE Double Precision Parameter (for Verilog real)
- case class DoublePropertyLiteral(value: Double) extends Expression with UseSerializer with Product with Serializable
- abstract class Expression extends FirrtlNode
- 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)
- case class Field(name: String, flip: Orientation, tpe: Type) extends FirrtlNode with HasName with UseSerializer with Product with Serializable
Field of BundleType
- case class FileInfo(escaped: String) extends Info with Product with Serializable
Stores the string of a file info annotation in its escaped form.
- abstract class FirrtlNode extends AnyRef
Intermediate Representation
- abstract class GroundType extends Type
- trait HasInfo extends AnyRef
- trait HasName extends AnyRef
- abstract class Info extends FirrtlNode with UseSerializer
- case class IntModule(info: Info, name: String, ports: Seq[Port], intrinsic: String, params: Seq[Param]) extends DefModule with UseSerializer with Product with Serializable
Intrinsic Module
Intrinsic Module
Used for compiler intrinsics.
- intrinsic
Defined intrinsic of the module
- case class IntParam(name: String, value: BigInt) extends Param with UseSerializer with Product with Serializable
Integer (of any width) Parameter
- class IntWidth extends Width with Product with UseSerializer
- case class IntegerPropertyLiteral(value: BigInt) extends Literal with UseSerializer with Product with Serializable
- trait IsDeclaration extends HasName with HasInfo
- case class IsInvalid(info: Info, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable
- case class Layer(info: Info, name: String, convention: LayerConvention.Type, body: Seq[Layer]) extends FirrtlNode with IsDeclaration with UseSerializer with Product with Serializable
- case class LayerBlock(info: Info, layer: String, body: Statement) extends Statement with UseSerializer with Product with Serializable
- abstract class Literal extends Expression
- 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
- case class Mux(cond: Expression, tval: Expression, fval: Expression, tpe: Type = UnknownType) extends Expression with UseSerializer with Product with Serializable
- abstract class Orientation extends FirrtlNode
Orientation of Field
- sealed abstract class Param extends FirrtlNode
Parameters for external modules
- case class PathPropertyLiteral(value: String) extends Expression with UseSerializer with Product with Serializable
- case class Port(info: Info, name: String, direction: Direction, tpe: Type) extends FirrtlNode with IsDeclaration with UseSerializer with Product with Serializable
DefModule Port
- abstract class PrimOp extends FirrtlNode
Primitive Operation
Primitive Operation
See PrimOps
- final class Print extends Statement with HasInfo with IsDeclaration with UseSerializer with Product with Serializable
- case class ProbeDefine(info: Info, sink: Expression, probeExpr: Expression) extends Statement with UseSerializer with Product with Serializable
- case class ProbeExpr(expr: Expression, tpe: Type = UnknownType) extends Expression with UseSerializer with Product with Serializable
- case class ProbeForce(info: Info, clock: Expression, cond: Expression, probe: Expression, value: Expression) extends Statement with UseSerializer with Product with Serializable
- case class ProbeForceInitial(info: Info, probe: Expression, value: Expression) extends Statement with UseSerializer with Product with Serializable
- case class ProbeRead(expr: Expression, tpe: Type = UnknownType) extends Expression with UseSerializer with Product with Serializable
- case class ProbeRelease(info: Info, clock: Expression, cond: Expression, probe: Expression) extends Statement with UseSerializer with Product with Serializable
- case class ProbeReleaseInitial(info: Info, probe: Expression) extends Statement with UseSerializer with Product with Serializable
- case class ProbeType(underlying: Type) extends Type with UseSerializer with Product with Serializable
- case class PropAssign(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with UseSerializer with Product with Serializable
- case class PropExpr(info: Info, tpe: Type, op: PropPrimOp, args: Seq[Expression]) extends Expression with UseSerializer with Product with Serializable
Property expressions.
Property expressions.
Unlike other primitives, Property expressions serialize as a tree directly in their rvalue context.
- sealed abstract class PropPrimOp extends AnyRef
Property primitive operations.
- sealed abstract class PropertyType extends Type with UseSerializer
- case class RWProbeExpr(expr: Expression, tpe: Type = UnknownType) extends Expression with UseSerializer with Product with Serializable
- case class RWProbeType(underlying: Type) extends Type with UseSerializer with Product with Serializable
- 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
- case class Reference(name: String, tpe: Type = UnknownType) extends Expression with HasName with UseSerializer with Product with Serializable
- case class SIntLiteral(value: BigInt, width: Width) extends Literal with UseSerializer with Product with Serializable
- case class SIntType(width: Width) extends GroundType with UseSerializer with Product with Serializable
- case class SequencePropertyType(tpe: PropertyType) extends PropertyType with Product with Serializable
- case class SequencePropertyValue(tpe: Type, values: Seq[Expression]) extends Expression with UseSerializer with Product with Serializable
- abstract class Statement extends FirrtlNode
- final class Stop extends Statement with HasInfo with IsDeclaration with UseSerializer with Product with Serializable
- case class StringLit(string: String) extends FirrtlNode with Product with Serializable
- case class StringParam(name: String, value: StringLit) extends Param with UseSerializer with Product with Serializable
String Parameter
- case class StringPropertyLiteral(value: String) extends Expression with UseSerializer with Product with Serializable
- case class SubAccess(expr: Expression, index: Expression, tpe: Type) extends Expression with UseSerializer with Product with Serializable
- case class SubField(expr: Expression, name: String, tpe: Type = UnknownType) extends Expression with HasName with UseSerializer with Product with Serializable
- case class SubIndex(expr: Expression, value: Int, tpe: Type) extends Expression with UseSerializer with Product with Serializable
- abstract class Type extends FirrtlNode
Types of FirrtlNode
- case class UIntLiteral(value: BigInt, width: Width) extends Literal with UseSerializer with Product with Serializable
- case class UIntType(width: Width) extends GroundType with UseSerializer with Product with Serializable
- case class ValidIf(cond: Expression, value: Expression, tpe: Type) extends Expression with UseSerializer with Product with Serializable
- case class VectorType(tpe: Type, size: Int) extends AggregateType with UseSerializer with Product with Serializable
- final class Verification extends Statement with HasInfo with IsDeclaration with UseSerializer with Product with Serializable
- case class Version(major: Int, minor: Int, patch: Int) extends Product with Serializable
- abstract class Width extends FirrtlNode
Value Members
- case object AnyRefPropertyType extends PropertyType with Product with Serializable
- case object AsyncResetType extends GroundType with UseSerializer with Product with Serializable
- object Block extends Serializable
- case object BooleanPropertyType extends PropertyType with Product with Serializable
- case object ClockType extends GroundType with UseSerializer with Product with Serializable
- object DefInstance extends Serializable
- case object Default extends Orientation with Product with Serializable
- case object DoublePropertyType extends PropertyType with Product with Serializable
- case object EmptyStmt extends Statement with UseSerializer with Product with Serializable
- object FileInfo extends Serializable
- case object Flip extends Orientation with Product with Serializable
- object Formal extends Enumeration
- object GroundType
- case object Input extends Direction with Product with Serializable
- object IntWidth
Positive Integer Bit Width of a GroundType
- case object IntegerAddOp extends PropPrimOp with Product with Serializable
- case object IntegerMulOp extends PropPrimOp with Product with Serializable
- case object IntegerPropertyType extends PropertyType with Product with Serializable
- case object IntegerShrOp extends PropPrimOp with Product with Serializable
- object LayerConvention
- case object NoInfo extends Info with Product with Serializable
- case object Output extends Direction with Product with Serializable
- case object PathPropertyType extends PropertyType with Product with Serializable
- object Print extends Serializable
- object ReadUnderWrite extends Enumeration
- case object ResetType extends GroundType with UseSerializer with Product with Serializable
- object SIntLiteral extends Serializable
- object Serializer
- object Stop extends Serializable
- object StringLit extends Serializable
- case object StringPropertyType extends PropertyType with Product with Serializable
- object UIntLiteral extends Serializable
- case object UnknownType extends Type with UseSerializer with Product with Serializable
- case object UnknownWidth extends Width with UseSerializer with Product with Serializable
- object Verification extends Serializable