package ir
- Alphabetic
- Public
- All
Type Members
- abstract class AggregateType extends Type
- case class AnalogType(width: Width) extends GroundType with Product with Serializable
- case class Attach(info: Info, exprs: Seq[Expression]) extends Statement with HasInfo with Product with Serializable
- case class Block(stmts: Seq[Statement]) extends Statement with Product with Serializable
-
trait
Bound extends Constraint
Bounds of IntervalType
- case class BundleType(fields: Seq[Field]) extends AggregateType with Product with Serializable
- case class CalcBound(arg: Constraint) extends Bound with Product with Serializable
- case class CalcWidth(arg: Constraint) extends Width with Product with Serializable
- case class Circuit(info: Info, modules: Seq[DefModule], main: String) extends FirrtlNode with HasInfo with Product with Serializable
- case class Closed(value: BigDecimal) extends IsKnown with Bound with Product with Serializable
- case class Conditionally(info: Info, pred: Expression, conseq: Statement, alt: Statement) extends Statement with HasInfo with Product with Serializable
- case class Connect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with Product with Serializable
- case class DefInstance(info: Info, name: String, module: String) extends Statement with IsDeclaration 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 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 Product with Serializable
- case class DefRegister(info: Info, name: String, tpe: Type, clock: Expression, reset: Expression, init: Expression) extends Statement with IsDeclaration with Product with Serializable
- case class DefWire(info: Info, name: String, tpe: Type) extends Statement with IsDeclaration 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 Product with Serializable
-
case class
DoubleParam(name: String, value: Double) extends Param with Product with Serializable
IEEE Double Precision Parameter (for Verilog real)
- abstract class Expression extends FirrtlNode
-
case class
ExtModule(info: Info, name: String, ports: Seq[Port], defname: String, params: Seq[Param]) extends DefModule 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 Product with Serializable
Field of BundleType
- case class FileInfo(info: StringLit) extends Info with Product with Serializable
-
abstract
class
FirrtlNode extends AnyRef
Intermediate Representation
- case class FixedLiteral(value: BigInt, width: Width, point: Width) extends Literal with Product with Serializable
- case class FixedType(width: Width, point: Width) extends GroundType with Product with Serializable
- abstract class GroundType extends Type
- trait HasInfo extends AnyRef
- trait HasName extends AnyRef
- abstract class Info extends FirrtlNode
-
case class
IntParam(name: String, value: BigInt) extends Param with Product with Serializable
Integer (of any width) Parameter
- class IntWidth extends Width with Product
- case class IntervalType(lower: Bound, upper: Bound, point: Width) extends GroundType with Product with Serializable
- trait IsDeclaration extends HasName with HasInfo
- case class IsInvalid(info: Info, expr: Expression) extends Statement with HasInfo with Product with Serializable
- abstract class Literal extends Expression
-
case class
Module(info: Info, name: String, ports: Seq[Port], body: Statement) extends DefModule with Product with Serializable
Internal Module
Internal Module
An instantiable hardware block
- case class MultiInfo(infos: Seq[Info]) extends Info with Product with Serializable
- case class Mux(cond: Expression, tval: Expression, fval: Expression, tpe: Type = UnknownType) extends Expression with Product with Serializable
- case class Open(value: BigDecimal) extends IsKnown with Bound with Product with Serializable
-
abstract
class
Orientation extends FirrtlNode
Orientation of Field
-
sealed abstract
class
Param extends FirrtlNode
Parameters for external modules
- case class PartialConnect(info: Info, loc: Expression, expr: Expression) extends Statement with HasInfo with Product with Serializable
-
case class
Port(info: Info, name: String, direction: Direction, tpe: Type) extends FirrtlNode with IsDeclaration with Product with Serializable
DefModule Port
-
abstract
class
PrimOp extends FirrtlNode
Primitive Operation
Primitive Operation
See PrimOps
- case class Print(info: Info, string: StringLit, args: Seq[Expression], clk: Expression, en: Expression) extends Statement with HasInfo with Product with Serializable
-
case class
RawStringParam(name: String, value: String) extends Param 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) extends Expression with HasName with Product with Serializable
- case class SIntLiteral(value: BigInt, width: Width) extends Literal with Product with Serializable
- case class SIntType(width: Width) extends GroundType with Product with Serializable
- abstract class Statement extends FirrtlNode
- case class Stop(info: Info, ret: Int, clk: Expression, en: Expression) extends Statement with HasInfo 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 Product with Serializable
String Parameter
- case class SubAccess(expr: Expression, index: Expression, tpe: Type) extends Expression with Product with Serializable
- case class SubField(expr: Expression, name: String, tpe: Type) extends Expression with HasName with Product with Serializable
- case class SubIndex(expr: Expression, value: Int, tpe: Type) extends Expression with Product with Serializable
-
abstract
class
Type extends FirrtlNode
Types of FirrtlNode
- case class UIntLiteral(value: BigInt, width: Width) extends Literal with Product with Serializable
- case class UIntType(width: Width) extends GroundType with Product with Serializable
- case class ValidIf(cond: Expression, value: Expression, tpe: Type) extends Expression with Product with Serializable
- case class VarBound(name: String) extends IsVar with Bound with Product with Serializable
- case class VarWidth(name: String) extends Width with IsVar with Product with Serializable
- case class VectorType(tpe: Type, size: Int) extends AggregateType with Product with Serializable
- abstract class Width extends FirrtlNode
Value Members
- object AsyncResetType extends GroundType with Product with Serializable
- object Block extends Serializable
- object ClockType extends GroundType with Product with Serializable
- object Default extends Orientation with Product with Serializable
- object EmptyStmt extends Statement with Product with Serializable
- object Flip extends Orientation with Product with Serializable
- object GroundType
- object Input extends Direction with Product with Serializable
-
object
IntWidth
Positive Integer Bit Width of a GroundType
- object KnownBound
- object MultiInfo extends Serializable
- object NoInfo extends Info with Product with Serializable
- object Output extends Direction with Product with Serializable
- object ReadUnderWrite extends Enumeration
- object ResetType extends GroundType with Product with Serializable
- object SIntLiteral extends Serializable
- object StringLit extends Serializable
- object UIntLiteral extends Serializable
- object UnknownBound extends Bound with Product with Serializable
- object UnknownType extends Type with Product with Serializable
- object UnknownWidth extends Width with Product with Serializable
This is the documentation for Firrtl.