Package

spinal

lib

Permalink

package lib

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. lib
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. class AnalysisUtils extends AnyRef

    Permalink
  2. class AnyPimped[T] extends AnyRef

    Permalink
  3. implicit class BigIntRicher extends LiteralRicher

    Permalink
  4. implicit class BinIntsRicher extends AnyRef

    Permalink
  5. implicit class BinaryBuilder extends AnyRef

    Permalink
  6. implicit class BinaryBuilder2 extends AnyRef

    Permalink
  7. class BitAggregator extends AnyRef

    Permalink
  8. class BoolPimped extends AnyRef

    Permalink
  9. class BufferCC[T <: Data] extends Component

    Permalink
  10. class BufferCCBlackBox extends BlackBox

    Permalink
  11. implicit class ByteRicher extends LiteralRicher

    Permalink
  12. implicit class BytesRicher extends AnyRef

    Permalink
  13. class ClockDomainPimped extends AnyRef

    Permalink
  14. class Counter extends ImplicitArea[UInt]

    Permalink
  15. class CounterUpDown extends ImplicitArea[UInt]

    Permalink
  16. trait DataCarrier[T <: Data] extends AnyRef

    Permalink
  17. class DataCarrierFragmentBitsPimped extends AnyRef

    Permalink
  18. class DataCarrierFragmentPimped[T <: Data] extends AnyRef

    Permalink
  19. case class DataOr[T <: Data](dataType: HardType[T]) extends Area with Product with Serializable

    Permalink
  20. type Event = Stream[NoData]

    Permalink
  21. case class EventEmitter(on: Event) extends Product with Serializable

    Permalink
  22. class EventFactory extends MSFactory

    Permalink
  23. class Flow[T <: Data] extends Bundle with IMasterSlave with DataCarrier[T]

    Permalink
  24. class FlowArbiterBuilder[T <: Data] extends AnyRef

    Permalink
  25. class FlowBitsPimped extends AnyRef

    Permalink
  26. class FlowCCUnsafeByToggle[T <: Data] extends Component

    Permalink

    CDC for a Flow, NOT SAFE for general use

    CDC for a Flow, NOT SAFE for general use

    See also

    UnsafeFlowCCByToggle.apply

  27. class FlowCmdRsp[T <: Data, T2 <: Data] extends Bundle with IMasterSlave

    Permalink
  28. class FlowFactory extends MSFactory

    Permalink
  29. class FlowFragmentBitsRouter extends AnyRef

    Permalink
  30. class FlowFragmentFactory extends MSFactory

    Permalink
  31. class FlowFragmentPimped[T <: Data] extends AnyRef

    Permalink
  32. class Fragment[T <: Data] extends Bundle

    Permalink
  33. class FragmentFactory extends AnyRef

    Permalink
  34. class GrowableAnyPimped[T] extends AnyRef

    Permalink
  35. class HistoryModifyable[T <: Data] extends Component

    Permalink
  36. trait IMasterSlave extends AnyRef

    Permalink

    Master/slave interface

  37. implicit class IntRicher extends LiteralRicher

    Permalink
  38. trait LiteralRicher extends AnyRef

    Permalink
  39. implicit class LongRicher extends LiteralRicher

    Permalink
  40. sealed trait MS extends AnyRef

    Permalink

    Declare a port as master or slave

    Declare a port as master or slave

    There are 4 available syntaxes, which are all equivalent:

    val braces = master(Flow(Bool))
    
    val short = master Flow (Bool)
    
    val spaceful = master port Flow(Bool)
    
    val variadic = Flow(Bool)
    master(variadic)

    The "braces" syntax is short and generic, but it uses braces.

    The "short" syntax is short, but it is formatted with a space between the type and its parameters, and it can be used only with:

    • Flow
    • Stream

    The "spaceful" syntax is generic and beatiful, but more verbose.

    The "variadic" syntax can be used with any number of interfaces, but can be used only if the interfaces are already declared.

    See also

    master slave

  41. trait MSFactory extends AnyRef

    Permalink

    Something which can create master/slave interfaces

  42. class MemPimped[T <: Data] extends AnyRef

    Permalink
  43. case class MemReadPort[T <: Data](dataType: T, addressWidth: Int) extends Bundle with IMasterSlave with Product with Serializable

    Permalink
  44. case class MemReadPortAsync[T <: Data](dataType: T, addressWidth: Int) extends Bundle with IMasterSlave with Product with Serializable

    Permalink
  45. case class MemReadStreamFlowPort[T <: Data](dataType: T, addressWidth: Int) extends Bundle with IMasterSlave with Product with Serializable

    Permalink
  46. case class MemReadWritePort[T <: Data](dataType: T, addressWidth: Int, maskWidth: Int = 1) extends Bundle with IMasterSlave with Product with Serializable

    Permalink
  47. case class MemWriteCmd[T <: Data](dataType: HardType[T], addressWidth: Int, maskWidth: Int = 1) extends Bundle with Product with Serializable

    Permalink
  48. case class MemWriteCmdWithMask[T <: Data](mem: Mem[T], maskWidth: Int) extends Bundle with Product with Serializable

    Permalink
  49. class MuxOHImpl extends AnyRef

    Permalink
  50. class NoData extends Bundle

    Permalink
  51. class PackedBundle extends Bundle

    Permalink

    Similar to Bundle but with bit packing capabilities.

    Similar to Bundle but with bit packing capabilities. Use pack implicit functions to assign fields to bit locations - pack(Range, [Endianness]) - Packs the data into Range aligning to bit Endianness if too wide - packFrom(Position) - Packs the data starting (LSB) at Position. Uses full data length - packTo(Position) - Packs the data ending (MSB) at Position. Uses full data length

    Providing no location tag will place the next data value immediately after the last.

    Example:
    1. val regWord = new PackedBundle {
        val init = Bool().packFrom(0) // Bit 0
        val stop = Bool() // Bit 1
        val result = Bits(16 bit).packTo(31) // Bits 16 to 31
      }
  52. class PackedWordBundle extends PackedBundle

    Permalink

    An enhanced form of PackedBundle with Word-centric packing.

    An enhanced form of PackedBundle with Word-centric packing. Offers all the same implicit packing assignment functions, but applies packing to an assigned word. - inWord(WordIndex) - Indicates which word to pack into. Must be used after a pack assigment. If no pack range was given then the entire data length will be assumed. Ranges that exceed the word will wrap into subsequent words.

    Like PackedBundle, providing no pack or word assignments will place data immediately after the last.

    Example:
    1. val wordPacked = PackedWordBundle(8 bits) {
        val aNumber = UInt(8 bits).word(0) // Bits 7 downto 0
        val bNumber = UInt(8 bits).pack(0 to 7).word(1) // Bits 8 to 15
        val large   = Bits(18 bits).word(2) // Bits 33 downto 16
        val flag    = Bool() // Bit 34
  53. class PhaseBufferCCBB extends PhaseNetlist

    Permalink
  54. class PulseCCByToggle extends Component

    Permalink
  55. case class ReadRetLinked[T <: Data, T2 <: Data](readType: HardType[T], linkedType: HardType[T2]) extends Bundle with Product with Serializable

    Permalink
  56. class ResetAggregator extends Area

    Permalink
  57. case class ResetAggregatorSource(pin: Bool, sync: Boolean, pol: Polarity) extends Product with Serializable

    Permalink
  58. class ResetCtrlFiber extends Area

    Permalink
  59. class ResetHolder extends Area

    Permalink
  60. class SamplerCC[T <: Data] extends BlackBox

    Permalink
  61. type ScalaStream[T] = scala.collection.immutable.Stream[T]

    Permalink
  62. sealed trait SlicesOrder extends AnyRef

    Permalink

    Enumeration to present order of slices.

  63. class Stream[T <: Data] extends Bundle with IMasterSlave with DataCarrier[T]

    Permalink
  64. class StreamAccessibleFifo[T <: Data] extends Component

    Permalink
  65. class StreamArbiter[T <: Data] extends Component

    Permalink

    A StreamArbiter is like a StreamMux, but with built-in complex selection logic that can arbitrate input streams based on a schedule or handle fragmented streams.

    A StreamArbiter is like a StreamMux, but with built-in complex selection logic that can arbitrate input streams based on a schedule or handle fragmented streams. Use a StreamArbiterFactory to create instances of this class.

  66. class StreamArbiterFactory extends AnyRef

    Permalink
  67. class StreamBitsPimped extends AnyRef

    Permalink
  68. class StreamBundlePimped[T <: Bundle] extends AnyRef

    Permalink
  69. class StreamCCByToggle[T <: Data] extends Component

    Permalink
  70. class StreamDelay[T <: Data] extends Component

    Permalink
  71. class StreamDemux[T <: Data] extends Component

    Permalink
  72. class StreamFactory extends MSFactory

    Permalink
  73. class StreamFifo[T <: Data] extends Component

    Permalink

    Fully redesigned in release 1.8.2 allowing improved timing closure.

    Fully redesigned in release 1.8.2 allowing improved timing closure. - latency of 0, 1, 2 cycles

  74. class StreamFifoCC[T <: Data] extends Component

    Permalink
  75. trait StreamFifoInterface[T <: Data] extends AnyRef

    Permalink
  76. class StreamFifoLowLatency[T <: Data] extends Component

    Permalink
  77. case class StreamFifoMultiChannelPop[T <: Data](payloadType: HardType[T], channelCount: Int) extends Bundle with IMasterSlave with Product with Serializable

    Permalink
  78. case class StreamFifoMultiChannelPush[T <: Data](payloadType: HardType[T], channelCount: Int) extends Bundle with IMasterSlave with Product with Serializable

    Permalink
  79. case class StreamFifoMultiChannelSharedSpace[T <: Data](payloadType: HardType[T], channelCount: Int, depth: Int, withAllocationFifo: Boolean = false) extends Component with Product with Serializable

    Permalink
  80. class StreamFlowArbiter[T <: Data] extends Area

    Permalink
  81. class StreamFork[T <: Data] extends Component

    Permalink

    A StreamFork will clone each incoming data to all its output streams.

    A StreamFork will clone each incoming data to all its output streams. If synchronous is true, all output streams will always fire together, which means that the stream will halt until all output streams are ready. If synchronous is false, output streams may be ready one at a time, at the cost of an additional flip flop (1 bit per output). The input stream will block until all output streams have processed each item regardlessly.

    Note that this means that when synchronous is true, the valid signal of the outputs depends on their inputs, which may lead to dead locks when used in combination with systems that have it the other way around. It also violates the handshake of the AXI specification (section A3.3.1).

  82. class StreamForkArea[T <: Data] extends Area

    Permalink
  83. class StreamFragmentBitsDispatcher extends Area

    Permalink
  84. case class StreamFragmentBitsDispatcherElement(sink: Stream[Bits], header: Int) extends Product with Serializable

    Permalink
  85. class StreamFragmentBitsPimped extends AnyRef

    Permalink
  86. class StreamFragmentFactory extends MSFactory

    Permalink
  87. class StreamFragmentPimped[T <: Data] extends AnyRef

    Permalink
  88. class StreamMux[T <: Data] extends Component

    Permalink
  89. class StreamPacker[T <: Data] extends Area

    Permalink

    Packs layout's Data into the given stream

    Packs layout's Data into the given stream

    stream is directly driven by this area.

    layout Data is read directly

    io.start indicates when to start packing. All layout's Data is registered before packing.

    io.done indicates when the last word has been packed.

    Use the companion object StreamPapcker to create an instance.

  90. trait StreamPipe extends AnyRef

    Permalink
  91. class StreamShiftChain[T <: Data] extends Component

    Permalink
  92. class StreamToStreamFragmentBits[T <: Data] extends Component

    Permalink
  93. class StreamTransactionCounter extends Component

    Permalink
  94. class StreamTransactionExtender[T <: Data, T2 <: Data] extends Component

    Permalink
  95. class StreamUnpacker[T <: Data] extends Area

    Permalink

    Unpacks stream's words into the given layout's Data.

    Unpacks stream's words into the given layout's Data. stream is directly driven by this area. layout Data are driven through a register.

    io.start starts unpacking io.dones is set of bits indicating when the associated Data in layout is unpacked. io.allDone indicates when the last word has been unpacked.

    Use the companion object StreamUnpacker to create an instance.

  96. class StringPimped extends AnyRef

    Permalink
  97. class Timeout extends ImplicitArea[Bool]

    Permalink
  98. class TraversableOnceAddressTransformerPimped extends AnyRef

    Permalink
  99. class TraversableOnceAnyPimped[T] extends AnyRef

    Permalink
  100. class TraversableOnceAnyTuplePimped[T, T2] extends AnyRef

    Permalink
  101. class TraversableOnceBoolPimped extends AnyRef

    Permalink
  102. class TraversableOncePimped[T <: Data] extends AnyRef

    Permalink
  103. implicit class UIntPimper extends AnyRef

    Permalink
  104. case class WhenBuilder() extends Product with Serializable

    Permalink

    Allow for example to add when programmatically in loops.

    Allow for example to add when programmatically in loops.

    See also

    WhenBuilder Documentation

  105. class FlowCCByToggle[T <: Data] extends FlowCCUnsafeByToggle[T]

    Permalink
    Annotations
    @deprecated
    Deprecated

    Renamed to 'UnsafeFlowCCByToggle' because it's not safe in many cases, see its comments

  106. class StreamDispatcherSequencial[T <: Data] extends Component

    Permalink

    Deprecated

    Do not use. Use the companion object or a normal regular StreamMux instead.

Value Members

  1. object AddWithCarry

    Permalink
  2. object AnalysisUtils

    Permalink
  3. implicit def AnyPimpedDef[T](that: T): AnyPimped[T]

    Permalink
  4. object BufferCC

    Permalink
  5. object Callable

    Permalink
  6. object CheckSocketPort

    Permalink
  7. object ClearCount

    Permalink
  8. object CountLeadingZeroes

    Permalink

    Counts the number of consecutive zero bits starting from the MSB.

  9. object CountOne

    Permalink
  10. object CountOneOnEach

    Permalink
  11. object CountTrailingZeroes

    Permalink

    Counts the number of consecutive zero bits starting from the LSB.

  12. object Counter

    Permalink

    Creates a counter

  13. object CounterFreeRun

    Permalink

    Creates an always running counter

  14. object CounterMultiRequest

    Permalink
  15. object CounterUpDown

    Permalink
  16. object DataCarrier

    Permalink
  17. object DataCc

    Permalink

    Will use the BaseType.clockDomain to figure out how to connect 2 signals together (allowed use StreamCCByToggle)

  18. object Delay

    Permalink
  19. object DelayEvent

    Permalink
  20. object DelayWithInit

    Permalink
  21. object DoCmd

    Permalink

    Run command

  22. object EndiannessSwap

    Permalink

    **************************************************************************** Big-Endian <-> Little-Endian

  23. def Event: Stream[NoData]

    Permalink
  24. object Flow extends FlowFactory

    Permalink
  25. object FlowArbiter

    Permalink
  26. object FlowCCUnsafeByToggle

    Permalink
  27. object FlowCmdRsp

    Permalink
  28. object FlowFragmentBitsRouter

    Permalink
  29. object Fragment extends FragmentFactory

    Permalink
  30. object FragmentToBitsStates extends SpinalEnum

    Permalink
  31. object GrayCounter

    Permalink
  32. object HIGHER_FIRST extends SlicesOrder

    Permalink

    Slice with higher bits process first

  33. object History

    Permalink
  34. object HistoryModifyable

    Permalink
  35. object KeepAttribute

    Permalink
  36. object LOWER_FIRST extends SlicesOrder

    Permalink

    Slice with lower bits process first

  37. object LatencyAnalysis

    Permalink
  38. object LeastSignificantBitSet

    Permalink
  39. object MajorityVote

    Permalink
  40. object Max

    Permalink
  41. object MemWriteCmd extends Serializable

    Permalink
  42. object Min

    Permalink
  43. object MuxOH extends MuxOHImpl

    Permalink
  44. object Napot

    Permalink
  45. def NoData(): NoData

    Permalink
  46. object OH

    Permalink
  47. object OHMasking

    Permalink
  48. val OHMux: MuxOHImpl

    Permalink

    One-Hot multiplexer

    One-Hot multiplexer

    See also

    one-hot encoding

  49. object OHToUInt

    Permalink
  50. object OhMux extends MuxOHImpl

    Permalink
  51. object PriorityMux

    Permalink
  52. object PropagateOnes

    Permalink
  53. object PulseCCByToggle

    Permalink
  54. object RegFlow

    Permalink
  55. object Repeat

    Permalink
  56. object ResetCtrl

    Permalink
  57. object Reverse

    Permalink
  58. def ScalaStream: scala.collection.immutable.Stream.type

    Permalink
  59. object SetCount

    Permalink
  60. object SetFromFirstOne

    Permalink
  61. object Shift

    Permalink
  62. object Stream extends StreamFactory

    Permalink
  63. object StreamAccessibleFifo

    Permalink
  64. object StreamArbiter

    Permalink
  65. def StreamArbiterFactory(): StreamArbiterFactory

    Permalink
  66. object StreamCCByToggle

    Permalink
  67. object StreamCombinerSequential

    Permalink

    This is equivalent to a StreamMux, but with a counter attached to the port selector.

  68. object StreamDemux

    Permalink

    Demultiplex one stream into multiple output streams, always selecting only one at a time.

  69. object StreamDemuxOh

    Permalink
  70. object StreamDispatcherSequential

    Permalink

    This is equivalent to a StreamDemux, but with a counter attached to the port selector.

  71. object StreamFifo

    Permalink
  72. object StreamFifoCC

    Permalink
  73. object StreamFifoLowLatency

    Permalink
  74. object StreamFifoMultiChannelBench extends App

    Permalink
  75. object StreamFlowArbiter

    Permalink

    Combine a stream and a flow to a new stream.

    Combine a stream and a flow to a new stream. If both input sources fire, the flow will be preferred.

  76. object StreamFork

    Permalink
  77. object StreamFork2

    Permalink
  78. object StreamFork3

    Permalink
  79. object StreamFragmentArbiter

    Permalink
  80. object StreamFragmentArbiterAndHeaderAdder

    Permalink
  81. object StreamFragmentGenerator

    Permalink
  82. object StreamFragmentWidthAdapter

    Permalink
  83. object StreamJoin

    Permalink

    Join multiple streams into one.

    Join multiple streams into one. The resulting stream will only fire if all of them fire, so you may want to buffer the inputs.

  84. object StreamMux

    Permalink

    Multiplex multiple streams into a single one, always only processing one at a time.

  85. object StreamPacker

    Permalink
  86. object StreamPipe

    Permalink
  87. object StreamShiftChain

    Permalink
  88. object StreamTransactionCounter

    Permalink
  89. object StreamTransactionExtender

    Permalink
  90. object StreamUnpacker

    Permalink
  91. object StreamWidthAdapter

    Permalink
  92. object Timeout

    Permalink
  93. object UIntToOh

    Permalink
  94. object UIntToOhMinusOne

    Permalink
  95. object ValidFlow

    Permalink

    Create a new Flow that is always valid, with a given payload

  96. object WrapWithReg

    Permalink
  97. package blackbox

    Permalink
  98. implicit def boolPimped(that: Bool): BoolPimped

    Permalink
  99. package bus

    Permalink
  100. implicit def clockDomainPimped(cd: ClockDomain): ClockDomainPimped

    Permalink
  101. package com

    Permalink
  102. package cpu

    Permalink
  103. implicit def dataCarrierFragmentBitsPimped(that: DataCarrier[Fragment[Bits]]): DataCarrierFragmentBitsPimped

    Permalink
  104. implicit def dataCarrierFragmentPimped[T <: Data](that: DataCarrier[Fragment[T]]): DataCarrierFragmentPimped[T]

    Permalink
  105. package dsptool

    Permalink
  106. implicit def easyFragment[T <: Data](that: Fragment[T]): T

    Permalink
  107. package eda

    Permalink
  108. package experimental

    Permalink
  109. implicit def flowBitsPimped(that: Flow[Bits]): FlowBitsPimped

    Permalink
  110. implicit def flowFragmentPimped[T <: Data](that: Flow[Fragment[T]]): FlowFragmentPimped[T]

    Permalink
  111. package formal

    Permalink
  112. implicit def fragmentFixer[T <: Data](_data: Fragment[T]): DataPimper[Fragment[T]]

    Permalink
  113. object fromGray

    Permalink
  114. package fsm

    Permalink
  115. package generator

    Permalink
  116. package generator_backup

    Permalink
  117. package graphic

    Permalink
  118. implicit def growableAnyPimped[T](that: Growable[T]): GrowableAnyPimped[T]

    Permalink
  119. package io

    Permalink
  120. package logic

    Permalink
  121. object master extends MS

    Permalink

    Declare a master port

    Declare a master port

    See MS for syntax help.

  122. package math

    Permalink
  123. implicit def memPimped[T <: Data](mem: Mem[T]): MemPimped[T]

    Permalink
  124. package memory

    Permalink
  125. package misc

    Permalink
  126. package pipeline

    Permalink
  127. def sexport[T <: SpinalTag](h: T): T

    Permalink
  128. def sexport[T](name: String, value: Any): ArrayBuffer[() ⇒ Unit]

    Permalink
  129. def sexport[T](h: Handle[T]): Handle[T]

    Permalink
  130. def sexport[T](named: Handle[T], value: ⇒ Any): ArrayBuffer[() ⇒ Unit]

    Permalink
  131. package sim

    Permalink
  132. object slave extends MS

    Permalink

    Declare a slave port

    Declare a slave port

    See MS for syntax help.

  133. package soc

    Permalink
  134. implicit def streamBitsPimped(that: Stream[Bits]): StreamBitsPimped

    Permalink
  135. implicit def streamBundlePimped[T <: Bundle](that: Stream[T]): StreamBundlePimped[T]

    Permalink
  136. implicit def streamFragmentBitsPimped(that: Stream[Fragment[Bits]]): StreamFragmentBitsPimped

    Permalink
  137. implicit def streamFragmentPimped[T <: Data](that: Stream[Fragment[T]]): StreamFragmentPimped[T]

    Permalink
  138. implicit def stringPimped(that: String): StringPimped

    Permalink
  139. package system

    Permalink
  140. object toGray

    Permalink
  141. package tools

    Permalink
  142. implicit def traversableOnceAddressTransformerPimped(that: TraversableOnce[AddressTransformer]): TraversableOnceAddressTransformerPimped

    Permalink
  143. implicit def traversableOnceAnyPimped[T](that: TraversableOnce[T]): TraversableOnceAnyPimped[T]

    Permalink
  144. implicit def traversableOnceAnyTuplePimped[T, T2](that: TraversableOnce[(T, T2)]): TraversableOnceAnyTuplePimped[T, T2]

    Permalink
  145. implicit def traversableOnceBoolPimped(that: TraversableOnce[Bool]): TraversableOnceBoolPimped

    Permalink
  146. implicit def traversableOncePimped[T <: Data](that: TraversableOnce[T]): TraversableOncePimped[T]

    Permalink
  147. object whenIndexed

    Permalink
  148. object whenMasked

    Permalink
  149. package wishbone

    Permalink

Deprecated Value Members

  1. object FlowCCByToggle

    Permalink
    Annotations
    @deprecated
    Deprecated

    Renamed to 'UnsafeFlowCCByToggle' because it's not safe in many cases, see its comments

  2. object StreamDispatcherSequencial

    Permalink

    Deprecated

    Do not use

  3. object masterWithNull extends MS

    Permalink
    Annotations
    @deprecated
    Deprecated

    Use apply or port instead: 'val b = master(maybeNull)' or 'val rgb = master port maybeNull'

  4. object slaveWithNull extends MS

    Permalink
    Annotations
    @deprecated
    Deprecated

    Use apply or port instead: 'val b = slave(maybeNull)' or 'val rgb = slave port maybeNull'

Inherited from AnyRef

Inherited from Any

Ungrouped