t

spinal.lib.bus.misc

BusSlaveFactory

trait BusSlaveFactory extends Area

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BusSlaveFactory
  2. Area
  3. OverridedEqualsHashCode
  4. ValCallbackRec
  5. ValCallback
  6. NameableByComponent
  7. Nameable
  8. ContextUser
  9. ScalaLocated
  10. GlobalDataUser
  11. OwnableRef
  12. AnyRef
  13. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. abstract type RefOwnerType
    Definition Classes
    OwnableRef

Abstract Value Members

  1. abstract def busDataWidth: Int

    Return the data width of the bus

  2. abstract def nonStopWrite[T <: Data](that: T, bitOffset: Int = 0, documentation: String = null): T

    Permanently assign that by the bus write data from bitOffset

  3. abstract def onReadPrimitive(address: AddressMapping, haltSensitive: Boolean, documentation: String)(doThat: ⇒ Unit): Unit
  4. abstract def onWritePrimitive(address: AddressMapping, haltSensitive: Boolean, documentation: String)(doThat: ⇒ Unit): Unit
  5. abstract def readAddress(): UInt
  6. abstract def readHalt(): Unit
  7. abstract def readPrimitive[T <: Data](that: T, address: AddressMapping, bitOffset: Int, documentation: String): Unit
  8. abstract def writeAddress(): UInt
  9. abstract def writeHalt(): Unit
  10. abstract def writePrimitive[T <: Data](that: T, address: AddressMapping, bitOffset: Int, documentation: String): Unit

Concrete 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. val _config: BusSlaveFactoryConfig

    Configuration of the BusSlaveFactory

    Configuration of the BusSlaveFactory

    Attributes
    protected
  5. val _context: Capture
    Definition Classes
    Area
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def childNamePriority: Byte
    Definition Classes
    Area
  8. def clearOnClear[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
  9. def clearOnSet[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  11. def component: Component
    Definition Classes
    ContextUser
  12. def createAndDriveFlow[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0, checkByteEnable: Boolean = false, documentation: String = null): Flow[T]

    Create a writable Flow register of type dataType at address and placed at bitOffset in the word

    Create a writable Flow register of type dataType at address and placed at bitOffset in the word

    checkByteEnable

    do not trigger flow if byte enable is all zero. See https://github.com/SpinalHDL/SpinalHDL/issues/1265 for the discussion about this behaviour.

  13. def createReadAndClearOnSet[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0): T
  14. def createReadAndSetOnSet[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0): T
  15. def createReadAndWrite[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    Create a read-write register of type dataType at address and placed at bitOffset in the word

  16. def createReadMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Create multi-words read register of type dataType

  17. def createReadOnly[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    Create a read-only register of type dataType at address and placed at bitOffset in the word

  18. def createWriteAndReadMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Create multi-words write and read register of type dataType

  19. def createWriteMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Create multi-words write register of type dataType

  20. def createWriteOnly[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    Create a write-only register of type dataType at address and placed at bitOffset in the word

  21. def doBitsAccumulationAndClearOnRead(that: Bits, address: BigInt, bitOffset: Int = 0): Unit

    Instantiate an internal register which at each cycle do : reg := reg | that Then when a read occur, the register is cleared.

    Instantiate an internal register which at each cycle do : reg := reg | that Then when a read occur, the register is cleared. This register is readable at address and placed at bitOffset in the word

  22. def drive[T <: Data](address: BigInt, bitMapping: (Int, Data)*): Unit
  23. def drive[T <: Data](that: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    Drive that with a register writable at address placed at bitOffset in the word

  24. def driveAndRead[T <: Data](that: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    Drive that with a register writable and readable at address placed at bitOffset in the word

  25. def driveAndReadMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Drive and read that on multi-word

  26. def driveFlow[T <: Data](that: Flow[T], address: BigInt, bitOffset: Int = 0, checkByteEnable: Boolean = false, documentation: String = null): Unit

    Emit on that a transaction when a write happen at address by using data placed at bitOffset in the word

    Emit on that a transaction when a write happen at address by using data placed at bitOffset in the word

    checkByteEnable

    do not trigger flow if byte enable is all zero. See https://github.com/SpinalHDL/SpinalHDL/issues/1265 for the discussion about this behaviour.

  27. def driveMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Drive that on multi-words

  28. def driveStream[T <: Data](that: Stream[T], address: BigInt, bitOffset: Int = 0): Unit

    Emit on that a transaction when a write happen at address, by using data placed at bitOffset in the word.

    Emit on that a transaction when a write happen at address, by using data placed at bitOffset in the word. Block the write transaction until the transaction succeeds (stream becomes ready).

  29. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  30. def equals(obj: Any): Boolean
    Definition Classes
    OverridedEqualsHashCode → AnyRef → Any
  31. def foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
    Definition Classes
    Nameable
  32. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  33. def getConfig: BusSlaveFactoryConfig
  34. def getDisplayName(): String
    Definition Classes
    Nameable
  35. def getInstanceCounter: Int
    Definition Classes
    ContextUser
  36. def getMode: Byte
    Attributes
    protected
    Definition Classes
    Nameable
  37. def getName(default: String): String
    Definition Classes
    NameableByComponentNameable
  38. def getName(): String
    Definition Classes
    NameableByComponentNameable
  39. def getPartialName(): String
    Definition Classes
    Nameable
  40. def getPath(from: Component, to: Component): Seq[Component]
    Definition Classes
    NameableByComponent
  41. def getRefOwnersChain(): List[Any]
    Definition Classes
    OwnableRef
  42. def getScalaLocationLong: String
    Definition Classes
    ScalaLocated
  43. def getScalaLocationShort: String
    Definition Classes
    ScalaLocated
  44. def getScalaTrace(): Throwable
    Definition Classes
    ScalaLocated
  45. val globalData: GlobalData
    Definition Classes
    GlobalDataUser
  46. def hashCode(): Int
    Definition Classes
    OverridedEqualsHashCode → AnyRef → Any
  47. def isCompletelyUnnamed: Boolean
    Definition Classes
    Nameable
  48. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  49. final def isNamed: Boolean
    Definition Classes
    Nameable
  50. def isPriorityApplicable(namePriority: Byte): Boolean
    Definition Classes
    Nameable
  51. def isReading(address: BigInt): Bool

    Return true if the bus is reading

  52. def isUnnamed: Boolean
    Definition Classes
    NameableByComponentNameable
  53. def isWriting(address: BigInt): Bool

    Return true if the bus is writing

  54. def multiCycleRead(address: AddressMapping, cycles: BigInt): Unit
  55. val name: String
    Definition Classes
    Nameable
  56. val nameableRef: Nameable
    Attributes
    protected
    Definition Classes
    Nameable
    Annotations
    @DontName()
  57. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  58. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  59. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  60. def onRead(address: BigInt, documentation: String = null)(doThat: ⇒ Unit): Unit

    Call doThat when a read transaction occurs on address

  61. def onWrite(address: BigInt, documentation: String = null)(doThat: ⇒ Unit): Unit

    Call doThat when a write transaction occurs on address

  62. def overrideLocalName(name: String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  63. val parentScope: ScopeStatement
    Definition Classes
    ContextUser
  64. def read[T <: Data](address: BigInt, bitMapping: (Int, Data)*): Unit
  65. def read[T <: Data](that: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    When the bus read the address, fill the response with that at bitOffset

  66. def readAddress(address: AddressMapping): UInt
  67. def readAndClearOnSet[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
  68. def readAndSetOnSet[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
  69. def readAndWrite(that: Data, address: BigInt, bitOffset: Int = 0, documentation: String = null): Unit

    Make that readable and writable at address and placed at bitOffset in the word

  70. def readAndWriteMultiWord(that: Data, address: BigInt, documentation: String = null): Unit

    Create the memory mapping to write/read that from address

  71. def readError(): Unit
  72. val readErrorFlag: Bool
  73. def readFire(): Bool
  74. def readMultiWord(that: Data, address: BigInt, documentation: String = null): Unit

    Create the memory mapping to read that from address If that is bigger than one word it extends the register on following addresses.

  75. def readStreamBlockCycles[T <: Data](that: Stream[T], address: BigInt, blockCycles: UInt, timeout: Bool = null): Unit

    Same as readStreamNonBlocking, but block the bus for at most blockCycles before returning the NACK.

    Same as readStreamNonBlocking, but block the bus for at most blockCycles before returning the NACK.

    T

    type of stream payload

    that

    data to read over bus

    address

    address to map at

    blockCycles

    cycles to block read transaction before returning NACK

    timeout

    whether the read transaction timed out (returned NACK)

  76. def readStreamNonBlocking[T <: Data](that: Stream[T], address: BigInt, validBitOffset: Int, payloadBitOffset: Int, validInverted: Boolean = false): Unit

    Read that and consume the transaction when a read happen at address.

  77. def readStreamNonBlocking[T <: Data](that: Stream[T], address: BigInt): Unit

    Read that (that is bigger than the busWidth) and consume the transaction when a read happen at address.

    Read that (that is bigger than the busWidth) and consume the transaction when a read happen at address.

    Note

    in order to avoid to read wrong data read first the address which contains the valid signal. Little : payload - valid at address 0x00 Big : valid - payload at address 0x00 Once the valid signal is true you can read all registers

  78. def readSyncMemMultiWord[T <: Data](mem: Mem[T], addressOffset: BigInt, memOffset: UInt = U(0).resized): Mem[T]

    Memory map a Mem to bus for reading.

    Memory map a Mem to bus for reading. Elements can be larger than bus data width in bits.

  79. def readSyncMemWordAligned[T <: Data](mem: Mem[T], addressOffset: BigInt, bitOffset: Int = 0, memOffset: UInt = U(0).resized): Mem[T]
  80. val refOwner: RefOwnerType
    Definition Classes
    OwnableRef
    Annotations
    @DontName()
  81. def reflectNames(): Unit
    Definition Classes
    Nameable
  82. def rework[T](body: ⇒ T): T
    Definition Classes
    Area
  83. val scalaTrace: Throwable
    Definition Classes
    ScalaLocated
  84. def setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  85. def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  86. def setCompositeName(nameable: Nameable, postfix: String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  87. def setCompositeName(nameable: Nameable, namePriority: Byte): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  88. def setCompositeName(nameable: Nameable, weak: Boolean): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  89. def setCompositeName(nameable: Nameable): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  90. def setConfig(value: BusSlaveFactoryConfig): BusSlaveFactory.this.type
  91. def setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  92. def setName(name: String, namePriority: Byte): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  93. def setName(name: String, weak: Boolean): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  94. def setName(name: String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  95. def setNameAsWeak(): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  96. def setOnClear[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
  97. def setOnSet[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
  98. def setPartialName(name: String, namePriority: Byte, owner: Any): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  99. def setPartialName(name: String, namePriority: Byte): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  100. def setPartialName(name: String, weak: Boolean): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  101. def setPartialName(owner: Nameable, name: String, namePriority: Byte): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  102. def setPartialName(owner: Nameable, name: String, weak: Boolean): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  103. def setPartialName(name: String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  104. def setPartialName(owner: Nameable, name: String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  105. def setPartialName(owner: Nameable): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  106. def setRefOwner(that: Any): Unit
    Definition Classes
    OwnableRef
  107. def setScalaLocated(source: ScalaLocated): BusSlaveFactory.this.type
    Definition Classes
    ScalaLocated
  108. def setWeakName(name: String): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  109. def setWordEndianness(value: Endianness): BusSlaveFactory

    Set the endianness during write/read multiword

  110. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  111. def toString(): String
    Definition Classes
    AreaNameable → AnyRef → Any
  112. def unsetName(): BusSlaveFactory.this.type
    Definition Classes
    Nameable
  113. def valCallback[T](ref: T, name: String): T
    Definition Classes
    ValCallbackRec → ValCallback
  114. def valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
    Definition Classes
    ValCallbackRec
  115. def valCallbackRec(obj: Any, name: String): Unit
    Definition Classes
    AreaValCallbackRec
  116. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  117. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  118. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  119. def withOffset(offset: BigInt): BusSlaveFactoryAddressWrapper
  120. def wordAddressInc: Int

    Address incrementation used by the read and write multi words registers

  121. def write[T <: Data](address: BigInt, bitMapping: (Int, Data)*): Unit
  122. def write[T <: Data](that: T, address: BigInt, bitOffset: Int = 0, documentation: String = null): T

    When the bus write the address, assign that with bus’s data from bitOffset

  123. def writeAddress(address: AddressMapping): UInt
  124. def writeByteEnable(): Bits

    Byte enable bits, defaulting to all ones

  125. def writeError(): Unit
  126. val writeErrorFlag: Bool
  127. def writeFire(): Bool
  128. def writeMemMultiWord[T <: Data](mem: Mem[T], addressOffset: BigInt): Mem[T]

    Memory map a Mem to bus for writing.

    Memory map a Mem to bus for writing. Elements can be larger than bus data width in bits.

  129. def writeMemWordAligned[T <: Data](mem: Mem[T], addressOffset: BigInt, bitOffset: Int = 0, memOffset: UInt = U(0).resized): Mem[T]
  130. def writeMultiWord(that: Data, address: BigInt, documentation: String = null): Unit

    Create the memory mapping to write that at address.

    Create the memory mapping to write that at address. If that is bigger than one word it extends the register on following addresses.

Deprecated Value Members

  1. def createReadWrite[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0): T
    Annotations
    @deprecated
    Deprecated

    (Since version ???) Use createReadAndWrite instead

  2. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] ) @Deprecated
    Deprecated

Inherited from Area

Inherited from OverridedEqualsHashCode

Inherited from ValCallbackRec

Inherited from ValCallback

Inherited from NameableByComponent

Inherited from Nameable

Inherited from ContextUser

Inherited from ScalaLocated

Inherited from GlobalDataUser

Inherited from OwnableRef

Inherited from AnyRef

Inherited from Any

Ungrouped