Packages

o

chisel3

VecInit

object VecInit extends VecInit$Intf

Source
Aggregate.scala
Linear Supertypes
VecInit$Intf, SourceInfoDoc, AnyRef, Any
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. VecInit
  2. VecInit$Intf
  3. SourceInfoDoc
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def _fillImpl[T <: Data](n: Int, m: Int, p: Int)(gen: => T)(implicit sourceInfo: SourceInfo): Vec[Vec[Vec[T]]]
    Attributes
    protected
  5. def _fillImpl[T <: Data](n: Int, m: Int)(gen: => T)(implicit sourceInfo: SourceInfo): Vec[Vec[T]]
    Attributes
    protected
  6. def _fillImpl[T <: Data](n: Int)(gen: => T)(implicit sourceInfo: SourceInfo): Vec[T]
    Attributes
    protected
  7. def _iterateImpl[T <: Data](start: T, len: Int)(f: (T) => T)(implicit sourceInfo: SourceInfo): Vec[T]
    Attributes
    protected
  8. def _tabulateImpl[T <: Data](n: Int, m: Int, p: Int)(gen: (Int, Int, Int) => T)(implicit sourceInfo: SourceInfo): Vec[Vec[Vec[T]]]
    Attributes
    protected
  9. def _tabulateImpl[T <: Data](n: Int, m: Int)(gen: (Int, Int) => T)(implicit sourceInfo: SourceInfo): Vec[Vec[T]]
    Attributes
    protected
  10. def _tabulateImpl[T <: Data](n: Int)(gen: (Int) => T)(implicit sourceInfo: SourceInfo): Vec[T]
    Attributes
    protected
  11. macro def apply[T <: Data](elt0: T, elts: T*): Vec[T]

    Creates a new Vec composed of the input Data nodes.

    Creates a new Vec composed of the input Data nodes.

    Definition Classes
    VecInit$Intf
    Note

    input elements should be of the same type (this is checked at the FIRRTL level, but not at the Scala / Chisel level)

    ,

    the width of all output elements is the width of the largest input element

    ,

    output elements are connected from the input elements

  12. macro def apply[T <: Data](elts: Seq[T]): Vec[T]

    Creates a new Vec composed of elements of the input Seq of Data nodes.

    Creates a new Vec composed of elements of the input Seq of Data nodes.

    Definition Classes
    VecInit$Intf
    Note

    input elements should be of the same type (this is checked at the FIRRTL level, but not at the Scala / Chisel level)

    ,

    the width of all output elements is the width of the largest input element

    ,

    output elements are connected from the input elements

  13. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  14. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  15. def do_apply[T <: Data](elt0: T, elts: T*)(implicit sourceInfo: SourceInfo): Vec[T]

    Definition Classes
    VecInit$Intf
  16. def do_apply[T <: Data](elts: Seq[T])(implicit sourceInfo: SourceInfo): Vec[T]

    Definition Classes
    VecInit$Intf
  17. def do_fill[T <: Data](n: Int, m: Int, p: Int)(gen: => T)(implicit sourceInfo: SourceInfo): Vec[Vec[Vec[T]]]

    Definition Classes
    VecInit$Intf
  18. def do_fill[T <: Data](n: Int, m: Int)(gen: => T)(implicit sourceInfo: SourceInfo): Vec[Vec[T]]

    Definition Classes
    VecInit$Intf
  19. def do_fill[T <: Data](n: Int)(gen: => T)(implicit sourceInfo: SourceInfo): Vec[T]

    Definition Classes
    VecInit$Intf
  20. def do_iterate[T <: Data](start: T, len: Int)(f: (T) => T)(implicit sourceInfo: SourceInfo): Vec[T]

    Definition Classes
    VecInit$Intf
  21. def do_tabulate[T <: Data](n: Int, m: Int, p: Int)(gen: (Int, Int, Int) => T)(implicit sourceInfo: SourceInfo): Vec[Vec[Vec[T]]]

    Definition Classes
    VecInit$Intf
  22. def do_tabulate[T <: Data](n: Int, m: Int)(gen: (Int, Int) => T)(implicit sourceInfo: SourceInfo): Vec[Vec[T]]

    Definition Classes
    VecInit$Intf
  23. def do_tabulate[T <: Data](n: Int)(gen: (Int) => T)(implicit sourceInfo: SourceInfo): Vec[T]

    Definition Classes
    VecInit$Intf
  24. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  25. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  26. macro def fill[T <: Data](n: Int, m: Int, p: Int)(gen: => T): Vec[Vec[Vec[T]]]

    Creates a new 3D Vec of length n by m by p composed of the result of the given function applied to an element of data type T.

    Creates a new 3D Vec of length n by m by p composed of the result of the given function applied to an element of data type T.

    n

    number of 2D vectors inside outer vector

    m

    number of 1D vectors in each 2D vector

    p

    number of elements in each 1D vector

    gen

    function that takes in an element T and returns an output element of the same type

    Definition Classes
    VecInit$Intf
  27. macro def fill[T <: Data](n: Int, m: Int)(gen: => T): Vec[Vec[T]]

    Creates a new 2D Vec of length n by m composed of the result of the given function applied to an element of data type T.

    Creates a new 2D Vec of length n by m composed of the result of the given function applied to an element of data type T.

    n

    number of inner vectors (rows) in the outer vector

    m

    number of elements in each inner vector (column)

    gen

    function that takes in an element T and returns an output element of the same type

    Definition Classes
    VecInit$Intf
  28. macro def fill[T <: Data](n: Int)(gen: => T): Vec[T]

    Creates a new Vec of length n composed of the result of the given function applied to an element of data type T.

    Creates a new Vec of length n composed of the result of the given function applied to an element of data type T.

    n

    number of elements in the vector

    gen

    function that takes in an element T and returns an output element of the same type

    Definition Classes
    VecInit$Intf
  29. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  30. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  31. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  32. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  33. macro def iterate[T <: Data](start: T, len: Int)(f: (T) => T): Vec[T]

    Creates a new Vec of length n composed of the result of the given function applied to an element of data type T.

    Creates a new Vec of length n composed of the result of the given function applied to an element of data type T.

    start

    First element in the Vec

    len

    Lenth of elements in the Vec

    f

    Function that applies the element T from previous index and returns the output element to the next index

    Definition Classes
    VecInit$Intf
  34. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  35. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  36. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  37. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  38. macro def tabulate[T <: Data](n: Int, m: Int, p: Int)(gen: (Int, Int, Int) => T): Vec[Vec[Vec[T]]]

    Creates a new 3D Vec of length n by m by p composed of the results of the given function applied over a range of integer values starting from 0.

    Creates a new 3D Vec of length n by m by p composed of the results of the given function applied over a range of integer values starting from 0.

    n

    number of 2D vectors inside outer vector

    m

    number of 1D vectors in each 2D vector

    p

    number of elements in each 1D vector

    gen

    function that takes in an Int (the index) and returns a Data that becomes the output element

    Definition Classes
    VecInit$Intf
  39. macro def tabulate[T <: Data](n: Int, m: Int)(gen: (Int, Int) => T): Vec[Vec[T]]

    Creates a new 2D Vec of length n by m composed of the results of the given function applied over a range of integer values starting from 0.

    Creates a new 2D Vec of length n by m composed of the results of the given function applied over a range of integer values starting from 0.

    n

    number of 1D vectors inside outer vector

    m

    number of elements in each 1D vector (the function is applied from 0 to n-1)

    gen

    function that takes in an Int (the index) and returns a Data that becomes the output element

    Definition Classes
    VecInit$Intf
  40. macro def tabulate[T <: Data](n: Int)(gen: (Int) => T): Vec[T]

    Creates a new Vec of length n composed of the results of the given function applied over a range of integer values starting from 0.

    Creates a new Vec of length n composed of the results of the given function applied over a range of integer values starting from 0.

    n

    number of elements in the vector (the function is applied from 0 to n-1)

    gen

    function that takes in an Int (the index) and returns a Data that becomes the output element

    Definition Classes
    VecInit$Intf
  41. def toString(): String
    Definition Classes
    AnyRef → Any
  42. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  43. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  44. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from VecInit$Intf

Inherited from SourceInfoDoc

Inherited from AnyRef

Inherited from Any

Ungrouped

SourceInfoTransformMacro

These internal methods are not part of the public-facing API!

The equivalent public-facing methods do not have the do_ prefix or have the same name. Use and look at the documentation for those. If you want left shift, use <<, not do_<<. If you want conversion to a Seq of Bools look at the asBools above, not the one below. Users can safely ignore every method in this group!

🐉🐉🐉 Here be dragons... 🐉🐉🐉

These do_X methods are used to enable both implicit passing of SourceInfo while also supporting chained apply methods. In effect all "normal" methods that you, as a user, will use in your designs, are converted to their "hidden", do_*, via macro transformations. Without using macros here, only one of the above wanted behaviors is allowed (implicit passing and chained applies)---the compiler interprets a chained apply as an explicit 'implicit' argument and will throw type errors.

The "normal", public-facing methods then take no SourceInfo. However, a macro transforms this public-facing method into a call to an internal, hidden do_* that takes an explicit SourceInfo by inserting an implicitly[SourceInfo] as the explicit argument.