Package

Chisel

Permalink

package Chisel

Source
package.scala
Linear Supertypes
AnyRef, Any
Content Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Chisel
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract class AccessTracker extends Node with Delay

    Permalink
  2. abstract class Aggregate extends Data

    Permalink
  3. class Arbiter[T <: Data] extends LockingArbiter[T]

    Permalink

    Hardware module that is used to sequence n producers into 1 consumer.

    Hardware module that is used to sequence n producers into 1 consumer. Priority is given to lower producer

    Example:
    1. val arb = Module(new Arbiter(2, UInt()))
        arb.io.in(0) <> producer0.io.out
        arb.io.in(1) <> producer1.io.out
        consumer.io.in <> arb.io.out
  4. class ArbiterIO[T <: Data] extends Bundle

    Permalink

    An I/O bundle for the Arbiter

  5. class Assert extends Node with Delay

    Permalink
  6. class AsyncFifo[T <: Data] extends Module

    Permalink

    Asynchronous Fifo.

    Asynchronous Fifo. Used to cross two clock domains.

  7. class Backend extends FileSystemUtilities

    Permalink
  8. case class BinaryOp(op: String) extends Op with Product with Serializable

    Permalink
  9. class Binding extends Node

    Permalink
  10. class BitPat extends AnyRef

    Permalink

    A class to create bit patterns Use the BitPat object instead of this class directly

  11. abstract class Bits extends Data with proc

    Permalink

    Base class for built-in Chisel types Bits and SInt.

  12. class BitsInObject extends UInt

    Permalink
  13. abstract class BlackBox extends Module

    Permalink

    This class allows the connection to Verilog modules outside of chisel after generation

    This class allows the connection to Verilog modules outside of chisel after generation

    Example:
    1.  class DSP48E1 extends BlackBox {
      val io = new [[Chisel.Bundle Bundle]] // Create I/O with same as DSP
      val dspParams = new [[Chisel.VerilogParameters VerilogParameters]] // Create Parameters to be specified
      setVerilogParams(dspParams)
      renameClock("clk", "clock")
      renameReset("rst")
      // Implement functionality of DSP to allow simulation verification
      }
  14. class Bool extends UInt

    Permalink
  15. case class BoolEx(expr: Ex[Boolean]) extends Product with Serializable

    Permalink
  16. class Bundle extends Aggregate

    Permalink

    Defines a collection of datum of different types into a single coherent whole.

  17. class CEntry extends AnyRef

    Permalink
  18. class CSENode extends AnyRef

    Permalink
  19. case class CStruct(name: String, fields: Array[(String, Bits)]) extends Product with Serializable

    Permalink
  20. class ChiselConfig extends AnyRef

    Permalink
  21. class ChiselError extends AnyRef

    Permalink
  22. class ChiselException extends Exception

    Permalink
  23. class Clock extends Node

    Permalink

    Create a new clock

  24. class Collector extends World

    Permalink
  25. class Complex[T <: Data with Num[T]] extends Bundle with Num[Complex[T]]

    Permalink

    Complex number representation create using the object Complex

    Complex number representation create using the object Complex

    Example:
    1. val myNum = Complex[Fixed](Fixed(3, 16, 8), Fixed(1, 16, 8))
  26. class ComponentDef extends AnyRef

    Permalink
  27. class Counter extends AnyRef

    Permalink

    A counter module, can also be created using Counter

  28. class CppBackend extends Backend

    Permalink
  29. abstract class Data extends Node

    Permalink

    *Data* is part of the *Node* Composite Pattern class hierarchy.

    *Data* is part of the *Node* Composite Pattern class hierarchy. It is the root of the type system which includes composites (Bundle, Vec) and atomic types (UInt, SInt, etc.). * Instances of Data are meant to help with construction and correctness of a logic graph. They will trimmed out of the graph before a *Backend* generates target code.

  30. class Dbl extends Bits with Num[Dbl]

    Permalink

    A double precision floating point representation Create using Dbl

  31. class DecoupledIO[+T <: Data] extends Bundle

    Permalink

    An I/O Bundle with simple handshaking using valid and ready signals for data 'bits'

    An I/O Bundle with simple handshaking using valid and ready signals for data 'bits'

    Example:
    1.  val io = Decoupled(UInt(width=4))
      io.valid := io.ready
      io.bits := UInt(5)
    Note

    can be created using Decoupled

  32. trait Delay extends Node

    Permalink
  33. class DeqIO[T <: Data] extends DecoupledIO[T]

    Permalink

    An I/O bundle for dequeuing data with valid/ready handshaking

  34. case class DivisorParam(pname: String, init: Int, min: Int, max: Int, par: Param[Any]) extends Param[Int] with Product with Serializable

    Permalink
  35. class DotBackend extends Backend

    Permalink
  36. class EnqIO[T <: Data] extends DecoupledIO[T]

    Permalink

    An I/O bundle for enqueuing data with valid/ready handshaking

    An I/O bundle for enqueuing data with valid/ready handshaking

    Example:
    1.  val io = new EnqIO(UInt(width=5))
      when (myCond) { io.enq(UInt(3)) }
  37. case class EnumParam(pname: String, init: String, values: List[String]) extends Param[String] with Product with Serializable

    Permalink
  38. abstract class Ex[T] extends AnyRef

    Permalink
  39. final case class ExAdd(a: Ex[Int], b: Ex[Int]) extends Ex[Int] with Product with Serializable

    Permalink
  40. final case class ExAnd(a: Ex[Boolean], b: Ex[Boolean]) extends Ex[Boolean] with Product with Serializable

    Permalink
  41. final case class ExEq[T](a: Ex[T], b: Ex[T]) extends Ex[Boolean] with Product with Serializable

    Permalink
  42. final case class ExGt(a: Ex[Int], b: Ex[Int]) extends Ex[Boolean] with Product with Serializable

    Permalink
  43. final case class ExGte(a: Ex[Int], b: Ex[Int]) extends Ex[Boolean] with Product with Serializable

    Permalink
  44. final case class ExLit[T](value: T) extends Ex[T] with Product with Serializable

    Permalink
  45. final case class ExLt(a: Ex[Int], b: Ex[Int]) extends Ex[Boolean] with Product with Serializable

    Permalink
  46. final case class ExLte(a: Ex[Int], b: Ex[Int]) extends Ex[Boolean] with Product with Serializable

    Permalink
  47. final case class ExMod(a: Ex[Int], b: Ex[Int]) extends Ex[Int] with Product with Serializable

    Permalink
  48. final case class ExMul(a: Ex[Int], b: Ex[Int]) extends Ex[Int] with Product with Serializable

    Permalink
  49. final case class ExNeq[T](a: Ex[T], b: Ex[T]) extends Ex[Boolean] with Product with Serializable

    Permalink
  50. final case class ExOr(a: Ex[Boolean], b: Ex[Boolean]) extends Ex[Boolean] with Product with Serializable

    Permalink
  51. final case class ExSub(a: Ex[Int], b: Ex[Int]) extends Ex[Int] with Product with Serializable

    Permalink
  52. final case class ExVar[T](name: Any) extends Ex[T] with Product with Serializable

    Permalink
  53. final case class ExXor(a: Ex[Boolean], b: Ex[Boolean]) extends Ex[Boolean] with Product with Serializable

    Permalink
  54. class Extract extends Node

    Permalink
  55. class FPGABackend extends VerilogBackend

    Permalink

    class with no inline mem

  56. class Fame1CppBackend extends CppBackend with Fame1Transform

    Permalink
  57. class Fame1FPGABackend extends FPGABackend with Fame1Transform

    Permalink
  58. trait Fame1Transform extends Backend

    Permalink
  59. class Fame1VerilogBackend extends VerilogBackend with Fame1Transform

    Permalink
  60. class Fame1Wrapper extends Module

    Permalink
  61. class Fame1WrapperIO extends Bundle

    Permalink
  62. class FameDecoupledIO[+T <: Data] extends Bundle

    Permalink
  63. class FameQueue[T <: Data] extends Module

    Permalink
  64. class FameQueueTracker extends Module

    Permalink
  65. class FameQueueTrackerIO extends Bundle

    Permalink
  66. class Field[T] extends AnyRef

    Permalink
  67. trait FileSystemUtilities extends AnyRef

    Permalink
  68. class Fixed extends Bits with Num[Fixed]

    Permalink

    A Fixed point data type

  69. class Flo extends Bits with Num[Flo]

    Permalink

    A 32 bit floating point representation class Create using the Flo object

  70. class FloBackend extends Backend

    Permalink
  71. class GetWidthException extends Exception

    Permalink
  72. case class GreaterEqParam(pname: String, init: Int, par: Param[Any], max: Int) extends Param[Int] with Product with Serializable

    Permalink
  73. case class GreaterParam(pname: String, init: Int, par: Param[Any], max: Int) extends Param[Int] with Product with Serializable

    Permalink
  74. abstract class IODirection extends AnyRef

    Permalink
  75. class Insert extends Node with proc

    Permalink
  76. class Instance extends World

    Permalink
  77. case class IntEx(expr: Ex[Int]) extends Product with Serializable

    Permalink
  78. final case class Knob[T](name: Any) extends Product with Serializable

    Permalink
  79. class KnobUndefinedException extends RuntimeException

    Permalink
  80. case class LessEqParam(pname: String, init: Int, min: Int, par: Param[Any]) extends Param[Int] with Product with Serializable

    Permalink
  81. case class LessParam(pname: String, init: Int, min: Int, par: Param[Any]) extends Param[Int] with Product with Serializable

    Permalink
  82. class Literal extends Node

    Permalink

    Stores the actual value of a scala literal as a string.

    Stores the actual value of a scala literal as a string. This class should not end-up being instantiated directly in user code.

  83. class LockingArbiter[T <: Data] extends LockingArbiterLike[T]

    Permalink

  84. abstract class LockingArbiterLike[T <: Data] extends Module

    Permalink
  85. class LockingRRArbiter[T <: Data] extends LockingArbiterLike[T]

    Permalink

  86. class Log2 extends Log2Like

    Permalink

    Compute Log2 with truncation Use the Log2 object rather than this class directly

  87. abstract class Log2Like extends Op

    Permalink

    A class defining an Operator which has a output width log2 of the number of input bits

  88. case class LogicalOp(op: String) extends Op with Product with Serializable

    Permalink
  89. class MapTester[+T <: Module] extends Tester[T]

    Permalink

    A tester to check a node graph from INPUTs to OUTPUTs directly

  90. class Mem[T <: Data] extends AccessTracker with VecLike[T]

    Permalink
  91. abstract class MemAccess extends Node

    Permalink
  92. class MemRead extends MemAccess

    Permalink
  93. class MemReadWrite extends MemAccess

    Permalink
  94. class MemSeqRead extends MemAccess with Delay

    Permalink
  95. class MemWrite extends MemAccess

    Permalink
  96. abstract class Module extends Nameable

    Permalink

    A Module or block to logically divide a hardware design

    A Module or block to logically divide a hardware design

    Example:
    1.  class MyModule extends Module {
        val io = new Bundle {
          val dataIn = UInt(INPUT, 4)
          val dataOut = UInt(OUTPUT, 4)
        }
        io.dataOut := io.dataIn
      }
      val myInst = Module(new MyModule) // create a MyModule
    Note

    This is the same construct as module in verilog Also see Module object

  97. class Mux extends Op

    Permalink

    Mux class defined as an operator

  98. trait Nameable extends AnyRef

    Permalink

    This trait allows an instantiation of something to be given a particular name

  99. abstract class Node extends Nameable

    Permalink

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

    *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).

  100. trait Num[T <: Data] extends AnyRef

    Permalink

    This trait enforces numerical properties on the data such as being able to add, subtract, multiply, divide etc

  101. class OHToUInt extends Log2Like

    Permalink

    Converts a One Hot encoding to a UInt Use the OHToUInt object rather than this class directly

  102. abstract class Op extends Node

    Permalink
  103. abstract class Param[+T] extends AnyRef

    Permalink
  104. case class ParamInvalidException(msg: String) extends Exception with Product with Serializable

    Permalink
  105. class ParameterUndefinedException extends RuntimeException

    Permalink
  106. final class Parameters extends AnyRef

    Permalink
  107. class Pipe[T <: Data] extends Module

    Permalink

    A hardware module that delays data coming down the pipeline by the number of cycles set by the latency parameter.

    A hardware module that delays data coming down the pipeline by the number of cycles set by the latency parameter. Functionality is similar to ShiftRegister but this exposes a Pipe interface.

    Example:
    1. val pipe = new Pipe(UInt())
      pipe.io.enq <> produce.io.out
      consumer.io.in <> pipe.io.deq
  108. class Printf extends PrintfBase

    Permalink
  109. class PrintfBase extends Node with Delay

    Permalink
  110. class PriorityEncoder extends Log2Like

    Permalink

    A class to detect the trailing bit Use the PriorityEncoder object rather than this class directly

  111. class PutativeMemWrite extends Node with proc

    Permalink
  112. class Queue[T <: Data] extends Module

    Permalink

    A hardware module implementing a Queue

    A hardware module implementing a Queue

    T

    the type of data to queue

    Example:
    1. val q = new Queue(UInt(), 16)
        q.io.enq <> producer.io.out
        consumer.io.in <> q.io.deq
  113. class QueueIO[T <: Data] extends Bundle

    Permalink

    An I/O Bundle for Queues

    An I/O Bundle for Queues

    T

    the type of data to queue (such as UInt)

  114. class ROM[T <: Data] extends Vec[T]

    Permalink

    Class defining a ROM Use the ROM object rather than instantiating the ROM directly

  115. class ROMData extends Node

    Permalink

    ROMData stores the data for ROM

  116. class ROMRead extends Node

    Permalink

    Class to read from ROM - internal, do not use

  117. class RRArbiter[T <: Data] extends LockingRRArbiter[T]

    Permalink

    Hardware module that is used to sequence n producers into 1 consumer.

    Hardware module that is used to sequence n producers into 1 consumer. Producers are chosen in round robin order.

    Example:
    1. val arb = new Module(RRArbiter(2, UInt())
         arb.io.in(0) <> producer0.io.out
         arb.io.in(1) <> producer1.io.out
         consumer.io.in <> arb.io.out
  118. case class RangeParam(pname: String, init: Int, min: Int, max: Int) extends Param[Int] with Product with Serializable

    Permalink
  119. case class ReductionOp(op: String) extends Op with Product with Serializable

    Permalink
  120. class Reg extends Node with Delay with proc

    Permalink
  121. class RegIO[T <: Data] extends Bundle

    Permalink
  122. class RegReset extends Reg

    Permalink
  123. class SInt extends Bits with Num[SInt]

    Permalink
  124. class SeqMem[T <: Data] extends Mem[T]

    Permalink
  125. class Sprintf extends PrintfBase

    Permalink
  126. class SysCBackend extends CppBackend

    Permalink

    If we have structured/aggregate types as top-level ports, we define suitable structures for encapsulating their components, in order to treat them as sc_fifo elements.

  127. case class TestApplicationException(exitVal: Int, lastMessage: String) extends RuntimeException with Product with Serializable

    Permalink
  128. class TestIO extends AnyRef

    Permalink
  129. class Tester[+T <: Module] extends FileSystemUtilities

    Permalink

    This class is the super class for test cases

    This class is the super class for test cases

    Example:
    1. class myTest(c : TestModule) extends Tester(c) { ... }
  130. trait Tests extends AnyRef

    Permalink
  131. class UInt extends Bits with Num[UInt]

    Permalink
  132. case class UnaryOp(op: String) extends Op with Product with Serializable

    Permalink
  133. trait UsesParameters extends AnyRef

    Permalink
  134. class ValidIO[+T <: Data] extends Bundle

    Permalink

    An I/O Bundle containing data and a signal determining if it is valid

    An I/O Bundle containing data and a signal determining if it is valid

    Example:
    1.  myIO = Valid[UInt](UInt(width=4))
      myIO.valid := Bool(true)
      myIO.bits := UInt(5)
    Note

    can be constucted using the object Valid

  135. case class ValueParam(pname: String, init: Any) extends Param[Any] with Product with Serializable

    Permalink
  136. class VcdBackend extends Backend

    Permalink
  137. class Vec[T <: Data] extends Aggregate with VecLike[T] with Cloneable

    Permalink
  138. trait VecLike[T <: Data] extends IndexedSeq[T]

    Permalink
  139. class VecProc extends Node with proc

    Permalink
  140. class VerilogBackend extends Backend

    Permalink
  141. class VerilogParameters extends AnyRef

    Permalink

    This class enables the definition of verilog parameters without having to to string building

    This class enables the definition of verilog parameters without having to to string building

    Example:
    1.  class MyParams extends VerilogParameters {
        val MY_STR_PARAM = "FOO_BAR"
        val MY_INT_PARAM = 3
        val MY_BOOL_PARAM = true
      }

      This will generate a string

       #(
        .MY_STR_PARAM("FOO_BAR"),
        .MY_INT_PARAM(3),
        .MY_BOOL_PARAM(1)
      )

      Set these parameters with

      setVerilogParameters(new MyParams)

      inside a BlackBox module or use

      setVerilogParameters(myCustomString)
  142. class Version extends Ordered[Version]

    Permalink

    Version - dotted string with up to three components.

    Version - dotted string with up to three components. Comparisons are done component by component for the smallest number of components. So: "3" >= "2.99.99" "3" < "4" "3" >= "3.99.99" "3.9" >= "3" "3.9" >= "3.0" "3.9" >= "3.9.99"

    The empty string "" is the "maximum" version and compares > all other versions.

  143. abstract class View extends AnyRef

    Permalink
  144. final case class ViewSym(view: View) extends Product with Serializable

    Permalink
  145. class Width extends Ordered[Width]

    Permalink

    Create a new width

  146. abstract class World extends AnyRef

    Permalink
  147. abstract class _Lookup extends AnyRef

    Permalink
  148. sealed abstract class _Var[T] extends AnyRef

    Permalink
  149. final case class _VarKnob[T](kname: Any) extends _Var[T] with Product with Serializable

    Permalink
  150. final case class _VarLet[T](pname: Any, expr: Ex[T]) extends _Var[T] with Product with Serializable

    Permalink
  151. implicit final class fromBigIntToLiteral extends AnyVal

    Permalink
  152. implicit final class fromBooleanToLiteral extends AnyVal

    Permalink
  153. implicit final class fromIntToLiteral extends AnyVal

    Permalink
  154. implicit final class fromStringToLiteral extends AnyVal

    Permalink
  155. trait proc extends Node

    Permalink
  156. class when extends AnyRef

    Permalink

    A class representing the when block Use when rather than this class directly

Value Members

  1. object ACos

    Permalink

    Compute the acos or inverse cos value of a Flo or Dbl returning the result in radians

    Compute the acos or inverse cos value of a Flo or Dbl returning the result in radians

    Note

    This computes the value in scala on a literal and will not generate hardware

  2. object ASin

    Permalink

    Compute the asin or inverse sin value of a Flo or Dbl returning the result in radians

    Compute the asin or inverse sin value of a Flo or Dbl returning the result in radians

    Note

    This computes the value in scala on a literal and will not generate hardware

  3. object ATan

    Permalink

    Compute the atan or inverse tan value of a Flo or Dbl returning the result in radians

    Compute the atan or inverse tan value of a Flo or Dbl returning the result in radians

    Note

    This computes the value in scala on a literal and will not generate hardware

  4. package AdvTester

    Permalink
  5. object ArbiterCtrl

    Permalink

    Arbiter Control determining which producer has access

  6. object BinaryOp extends Serializable

    Permalink
  7. object Binding

    Permalink
  8. object BitPat

    Permalink

    A bit pattern object to enable representation of dont cares

  9. object Bits

    Permalink
  10. object Bool

    Permalink
  11. object BuildInfo extends Product with Serializable

    Permalink

    This object was generated by sbt-buildinfo.

  12. object Bundle

    Permalink
  13. object CSE

    Permalink
  14. object CString

    Permalink
  15. object Cat

    Permalink
  16. object Ceil

    Permalink

    Compute the ceiling of a Flo or Dbl

    Compute the ceiling of a Flo or Dbl

    Note

    This computes the value in scala on a literal and will not generate hardware

  17. object ChiselError

    Permalink

    This Singleton implements a log4j compatible interface.

    This Singleton implements a log4j compatible interface. It is used through out the Chisel package to report errors and warnings detected at runtime.

  18. object Clock

    Permalink

    Create a new Clock

  19. object Complex

    Permalink

    Representation for complex numbers

  20. object Concatenate

    Permalink
  21. object Cos

    Permalink

    Compute the cos value of a Flo or Dbl in radians

    Compute the cos value of a Flo or Dbl in radians

    Note

    This computes the value in scala on a literal and will not generate hardware

  22. object Counter

    Permalink

    Counter Object for Counter

    Counter Object for Counter

    Example:
    1.  val countOn = Bool(true) // increment counter every clock cycle
      val myCounter = Counter(8)
      when ( myCounter.inc() ) {
      ... // When counter value is max at 7 do something
      }
  23. object Data

    Permalink
  24. object Dbl

    Permalink

    Create a 64 bit double precision floating point representation

  25. object Decoupled

    Permalink

    Adds a ready-valid handshaking protocol to any interface

    Adds a ready-valid handshaking protocol to any interface

    Note

    the I/O can be 'flipped' so the data is INPUT instead using the function flip

  26. object DelayBetween

    Permalink

    DelayBetween works out the number of registers or delays for all possible directional paths between two nodes

  27. object Driver extends FileSystemUtilities

    Permalink
  28. object Dump

    Permalink
  29. object Enum

    Permalink

    An object for creating C style Enums

  30. object Ex

    Permalink
  31. object Extract

    Permalink
  32. object Fame1Transform

    Permalink
  33. object FameDecoupledIO

    Permalink
  34. object Fill

    Permalink

    Fill fans out a Node to multiple copies

  35. object FillInterleaved

    Permalink
  36. object Fixed

    Permalink

    Factory methods for Fixed

  37. object Flipped

    Permalink
  38. object Flo

    Permalink

    Create a 32 bit floating point Object

  39. object Floor

    Permalink

    Compute the floor of a Flo or Dbl

    Compute the floor of a Flo or Dbl

    Note

    This computes the value in scala on a literal and will not generate hardware

  40. object INPUT extends IODirection

    Permalink

    Define the IODirection INPUT

  41. object ImplicitConversions

    Permalink
  42. object Implicits

    Permalink
  43. object Input

    Permalink
  44. object IntParam

    Permalink
  45. object JHFormat

    Permalink
  46. object LFSR16

    Permalink

    linear feedback shift register

  47. object ListLookup

    Permalink
  48. object Lit

    Permalink

    A factory for literal values

  49. object Literal

    Permalink
  50. object Log

    Permalink

    Compute the log of a Flo or Dbl

    Compute the log of a Flo or Dbl

    Note

    This computes the value in scala on a literal and will not generate hardware

  51. object Log2

    Permalink

    Compute Log2 with truncation of a UInt in hardware using a Mux Tree An alternative interpretation is it computes the minimum number of bits needed to represent x

    Compute Log2 with truncation of a UInt in hardware using a Mux Tree An alternative interpretation is it computes the minimum number of bits needed to represent x

    Example:
    1. data_out := Log2(data_in)
    Note

    Truncation is used so Log2(UInt(12412)) = 13

  52. object LogicalOp extends Serializable

    Permalink
  53. object Lookup

    Permalink
  54. object Mem

    Permalink

    *seqRead* means that if a port tries to read the same address that another port is writing to in the same cycle, the read data is random garbage (from a LFSR, which returns "1" on its first invocation).

  55. object Module

    Permalink

    Methods to insert Modules into components correctly

  56. object Multiplex

    Permalink

    A multiplexor which is a generalization of Mux to use nodes which aren't bools Mux uses this method internally If the values are not literals a Mux class is created and initialized

  57. object Mux

    Permalink

    Implement a Multiplexor with a Bool A convienient wrapper for Multiplex

  58. object Mux1H

    Permalink

    Builds a Mux tree out of the input signal vector using a one hot encoded select signal.

    Builds a Mux tree out of the input signal vector using a one hot encoded select signal. Returns the output of the Mux tree.

  59. object MuxCase

    Permalink

    MuxCase returns the first value that is enabled in a map of values

  60. object MuxLookup

    Permalink

    MuxLookup creates a cascade of n Muxs to search for a key value

  61. object NODIR extends IODirection

    Permalink

    Define the IODirection NODIR

  62. object Node

    Permalink
  63. object NodeExtract

    Permalink
  64. object NodeFill

    Permalink

    NodeFill copys an instance of a Node multiple times or fans it out Any change to a Node such as setting inputs or changing width will is applied to all of them

  65. object OHToUInt

    Permalink

    Converts from One Hot Encoding to a UInt indicating which bit is active This is the inverse of UIntToOH

  66. object OUTPUT extends IODirection

    Permalink

    Define the IODirection OUTPUT

  67. object Op

    Permalink
  68. object Output

    Permalink
  69. object Parameters

    Permalink
  70. object Params

    Permalink
  71. object PartitionIslands

    Permalink
  72. object Pipe

    Permalink

    Similar to a shift register but with handshaking at start

    Similar to a shift register but with handshaking at start

    Example:
    1. consumer.io.in := Pipe(producer.io.out, 2)
  73. object PopCount

    Permalink

    Returns the number of bits set (i.e value is 1) in the input signal.

    Returns the number of bits set (i.e value is 1) in the input signal.

    Example:
    1. PopCount(UInt(29)) === UInt(4)
  74. object Pow

    Permalink

    Compute the power of a Flo or Dbl

    Compute the power of a Flo or Dbl

    Note

    This computes the value in scala on a literal and will not generate hardware

  75. object Printer

    Permalink
  76. object PriorityEncoder

    Permalink

    returns

    the bit position of the trailing 1 in the input vector with the assumption that multiple bits of the input bit vector can be set

    Example:
    1. data_out := PriorityEncoder(data_in)
  77. object PriorityEncoderOH

    Permalink

    Returns a bit vector in which only the least-significant 1 bit in the input vector, if any, is set.

  78. object PriorityMux

    Permalink

    Builds a Mux tree under the assumption that multiple select signals can be enabled.

    Builds a Mux tree under the assumption that multiple select signals can be enabled. Priority is given to the first select signal.

    returns

    the output of the Mux tree

  79. object Queue

    Permalink

    Generic hardware queue.

    Generic hardware queue. Required parameter entries controls the depth of the queues. The width of the queue is determined from the inputs.

    Example:
    1. consumer.io.in := Queue(producer.io.out, 16)
  80. object ROM

    Permalink

    Read Only Memory object Optionally create in a map with integer addresses attached Create a Vec of literals rather than ROM directly

  81. object ReductionOp extends Serializable

    Permalink
  82. object Reg

    Permalink
  83. object RegEnable

    Permalink

    A register with an Enable signal

  84. object RegInit

    Permalink
  85. object RegNext

    Permalink
  86. object Reverse

    Permalink

    Litte/big bit endian conversion: reverse the order of the bits in a UInt.

  87. object Round

    Permalink

    Round a Flo or Dbl to the nearest integer

    Round a Flo or Dbl to the nearest integer

    Note

    This computes the value in scala on a literal and will not generate hardware

  88. object SCWrapper

    Permalink
  89. object SInt

    Permalink
  90. object Scanner

    Permalink
  91. object SeqMem

    Permalink
  92. object ShiftRegister

    Permalink

    Returns the n-cycle delayed version of the input signal.

  93. object Sin

    Permalink

    Compute the sin value of a Flo or Dbl in radians

    Compute the sin value of a Flo or Dbl in radians

    Note

    This computes the value in scala on a literal and will not generate hardware

  94. object Sqrt

    Permalink

    Compute the square root of a Flo or Dbl

    Compute the square root of a Flo or Dbl

    Note

    This computes the value in scala on a literal and will not generate hardware

  95. object Tan

    Permalink

    Compute the tan value of a Flo or Dbl in radians

    Compute the tan value of a Flo or Dbl in radians

    Note

    This computes the value in scala on a literal and will not generate hardware

  96. object Tester

    Permalink
  97. object UInt

    Permalink
  98. object UIntToOH

    Permalink

    returns

    the one hot encoding of the input UInt

    Example:
    1.  val myOH = UIntToOH(UInt(5), 8) -> 0x20
      val myOH2 = UIntToOH(UInt(0), 8) -> 0x01
  99. object UnaryOp extends Serializable

    Permalink
  100. object Valid

    Permalink

    Adds a valid protocol to any interface By default this creates a ValidIO class with valid and bits set to OUTPUT

    Adds a valid protocol to any interface By default this creates a ValidIO class with valid and bits set to OUTPUT

    Example:
    1.  myIO = Valid(UInt(width=4))
      myIO.valid := Bool(true)
      myIO.bits := UInt(5)
    Note

    can be set to INPUT using the function flip

  101. object Vec

    Permalink
  102. object VecMux

    Permalink
  103. object VerilogBackend

    Permalink
  104. object Version

    Permalink
  105. object Width

    Permalink

    Get the number of bits required

  106. object Wire

    Permalink

    Chisel3 - Wrap a Chisel data type with a Wire.

    Chisel3 - Wrap a Chisel data type with a Wire.

    This sets the isWired state. It will be required for Chisel 3.0 The logic is:

    • for each element in a module:
      • is that element assigned to?
      • is that element defined with only a type (no compute logic)? If so, the element's definition must be wrapped in a Wire.
  107. object World

    Permalink
  108. object andR

    Permalink
  109. object chiselCast

    Permalink

    Cast a node to be Bits

  110. object chiselEnvironmentArguments

    Permalink

    If there is an environment variable chiselArguments, construct an Array[String] of its value split on ' ', otherwise, return a 0 length Array[String]

    If there is an environment variable chiselArguments, construct an Array[String] of its value split on ' ', otherwise, return a 0 length Array[String]

    This makes it easy to merge with command line arguments and have the latter take precedence.

    def main(args: Array[String]) {
        val readArgs(chiselEnvironmentArguments() ++ args)
        ...
    }
  111. object chiselMain

    Permalink

    _chiselMain_ behaves as if it constructs an execution tree from the constructor of a sub class of Module which is passed as a parameter.

    _chiselMain_ behaves as if it constructs an execution tree from the constructor of a sub class of Module which is passed as a parameter. That execution tree is simplified by aggregating all calls which are not constructors of a Module instance into the parent which is. The simplified tree (encoded through _Driver.children_) forms the basis of the generated verilog. Each node in the simplified execution tree is a _Module_ instance from which a verilog module is textually derived. As an optimization, _Backend_ classes output modules which are textually equivalent only once and update a _Module_ instance's _moduleName_ accordingly.

  112. object chiselMainTest

    Permalink
  113. object conjugate

    Permalink

    Compute the conjugate of a complex number using the function conj

  114. object foldR

    Permalink

    Fold Right with a function

  115. package iotesters

    Permalink
  116. object is

    Permalink

    An object for separate cases in switch It is equivalent to a when block comparing to the condition Use outside of a switch statement is illegal

  117. object isLessThan

    Permalink

    Usefulness is questionable, remove?

  118. object isPow2

    Permalink

    Check if an Integer is a power of 2

  119. object log2Ceil

    Permalink

    Compute the log2 rounded up

  120. object log2Down

    Permalink

    Compute the log2 rounded down with min value of 1

  121. object log2Floor

    Permalink

    Compute the log2 rounded down

  122. object log2Up

    Permalink

    Compute the log2 rounded up with min value of 1

  123. object orR

    Permalink
  124. object stop

    Permalink
  125. object switch

    Permalink

    Conditional logic to form a switch block

    Conditional logic to form a switch block

    Example:
    1.  ... // default values here
      switch ( myState ) {
        is( state1 ) {
          ... // some logic here
        }
        is( state2 ) {
          ... // some logic here
        }
      }
  126. package testers

    Permalink
  127. object throwException

    Permalink
  128. object throwQuietException

    Permalink
  129. object unless

    Permalink

    This is identical to when with the condition inverted

  130. object when

    Permalink

    An object to create conditional logic See when for functions elsewhen and otherwise

    An object to create conditional logic See when for functions elsewhen and otherwise

    Example:
    1. when ( myData === UInt(3) ) {
        ... // Some logic
      } .elsewhen ( myData === UInt(1) ) {
        ... // Some logic
      } .otherwise {
        ... // Some logic
      }
  131. object xorR

    Permalink

Inherited from AnyRef

Inherited from Any

Ungrouped