Chisel

Node

Related Docs: object Node | package Chisel

abstract class Node extends nameable

*Node* defines the root class of the class hierarchy for a [Composite Pattern](http://en.wikipedia.org/wiki/Composite_pattern).

A digital logic graph is encoded as adjacency graph where instances of *Node* describe vertices and *inputs*, *consumers* member fields are used to traverse the directed graph respectively backward (from output to input) and forward (from input to output).

Source
Node.scala
Linear Supertypes
nameable, AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Node
  2. nameable
  3. AnyRef
  4. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Node()

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. def ##(b: Node): Node

    The cat operator to combine two values

    The cat operator to combine two values

    0x5 ## 0x3 => 0x53
    b

    Node to cat after

    returns

    a new node as the combination of both this node and b

  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. def <>(src: Node): Unit

  5. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  6. def W0Wtransform(): Unit

    Eliminate any zero-width wires attached to this node

    Eliminate any zero-width wires attached to this node

    returns

    if the node was modified

  7. def ^^(src: Node): Unit

  8. val _id: Int

    The unique id of this node

  9. def _isComplementOf(x: Node): Boolean

  10. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  11. def assign(src: Node): Unit

  12. def canCSE: Boolean

  13. lazy val chiselName: String

  14. var clock: Option[Clock]

    The clock for this node

  15. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  16. def component: Module

    Use the function componentOf instead

  17. def componentOf: Module

    Get the module that this node is a part of or the top module if not assigned yet

    Get the module that this node is a part of or the top module if not assigned yet

    returns

    The module that this node is a part of

  18. val consumers: LinkedHashSet[Node]

    nodes that consume one of my outputs

  19. def dblLitValue: Double

    Convert the node literal to a Double

  20. var driveRand: Boolean

  21. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  22. def equals(that: Any): Boolean

    Compare two nodes

    Compare two nodes

    that

    the node to compare with

    Definition Classes
    Node → AnyRef → Any
  23. def equalsForCSE(x: Node): Boolean

  24. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  25. def floLitValue: Float

    Convert the node literal to a Float

  26. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  27. def getNode: Node

    returns

    The root node input

  28. def getWidth(): Int

    returns

    the width or number of bits used by this node

    Exceptions thrown

    ChiselException if the width of the node is unknown

  29. def hashCode(): Int

    returns

    the unique hashCode for this node

    Definition Classes
    Node → AnyRef → Any
  30. def hashCodeForCSE: Int

  31. def infer: Boolean

    Called while we're walking the graph inferring the width of nodes.

    Called while we're walking the graph inferring the width of nodes. We return true if we should continue to walk the graph, either because there's a node whose width we don't know, or because we updated a node's width.

  32. def init(n: String, w: Int, ins: Node*): Node

    Init the node and calculate its width and add inputs to the node

    Init the node and calculate its width and add inputs to the node

    n

    name of node

    w

    the bit width of the node

    ins

    Nodes that are inputs to this node

  33. def init(n: String, widthFunc: (⇒ Node) ⇒ Width, ins: Node*): Node

    Init the node and calculate its width and add inputs to the node

    Init the node and calculate its width and add inputs to the node

    n

    name of node

    widthFunc

    the function to use to calculate the width of the node

    ins

    Nodes that are inputs to this node

  34. def initOf(n: String, widthfunc: (⇒ Node) ⇒ Width, ins: Iterable[Node]): Node

    Init the node and calculate its width and add inputs to the node

    Init the node and calculate its width and add inputs to the node

    n

    name of node

    widthfunc

    the function to use to calculate the width of the node

    ins

    Nodes that are inputs to this node

  35. val inputs: ArrayBuffer[Node]

    The inputs that this node depends on

  36. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  37. def isIo: Boolean

    returns

    this node is an I/O Node for a module

  38. def isIo_=(isIo: Boolean): Unit

  39. final def isLit: Boolean

    This function determines if a node is a literal, a fixed value

  40. def isReg: Boolean

    returns

    this node is a Register

  41. def isTopLevelIO: Boolean

    returns

    is this node I/O for the top level module

  42. var isTypeNode: Boolean

  43. def isTypeOnly: Boolean

    Chisel3 - type-only nodes (no data - no initialization or assignment) This is used to determine which nodes must be Wire() wrapped, and whether Wire() wrapping of the node is legal or not.

    Chisel3 - type-only nodes (no data - no initialization or assignment) This is used to determine which nodes must be Wire() wrapped, and whether Wire() wrapping of the node is legal or not.

    Attributes
    protected[Chisel]
  44. def isUsedByClockHi: Boolean

  45. def isZeroWidth: Boolean

    returns

    this node has zero-width

  46. val line: StackTraceElement

    The trace information for chisel for this node

  47. def litOf: Literal

    returns

    the literal value of a node

    Exceptions thrown

    ChiselException if there is no literal value available

  48. def litValue(default: BigInt = BigInt(-1)): BigInt

    returns

    the literal value of the node as a BigInt

    Bool(true).litValue() => BigInt(1)
  49. def maybeFlatten: Seq[Node]

    Deprecated: Do not use

  50. var modified: Boolean

  51. var name: String

    Definition Classes
    nameable
  52. def nameIt(path: String, isNamingIo: Boolean): Unit

    An internal method to name nodes, use setName instead

  53. var named: Boolean

    _named_ is used to indicates name was set explicitely and should not be overriden by a _nameIt_ generator.

    _named_ is used to indicates name was set explicitely and should not be overriden by a _nameIt_ generator.

    Definition Classes
    nameable
  54. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  55. def needWidth(): Int

    returns

    the bitWidth of the node

    Exceptions thrown

    ChiselException if the width is not yet defined

  56. final def notify(): Unit

    Definition Classes
    AnyRef
  57. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  58. def printTree(writer: PrintStream, depth: Int = 4, indent: String = ""): Unit

    Prints all members of a node and recursively its inputs up to a certain depth level This method is purely used for debugging

  59. var prune: Boolean

  60. def replaceTree(newNode: Node): Unit

    Replace the subtree starting from this node with the indicated replacement

    Replace the subtree starting from this node with the indicated replacement

    newNode

    The node to start tree from

  61. def review(): Unit

    Review a node for optimization possibilities if its children have been updated

  62. def setName(n: String): Unit

    Set the name of a node when elaborated

    Set the name of a node when elaborated

    my.io.node.setName("MY_IO_NODE")
    n

    The name to set the node to

  63. def setWidth(w: Int): Unit

    Force the bit width of a node

    Force the bit width of a node

    w

    the bit width to force

  64. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  65. def toBits(): UInt

    returns

    This node as a UInt

  66. def toNode: Node

    returns

    This node

  67. def toString(): String

    Definition Classes
    AnyRef → Any
  68. def usesInClockHi(i: Node): Boolean

  69. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  70. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  71. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from nameable

Inherited from AnyRef

Inherited from Any

Ungrouped