t

spinal.lib.bus.misc

BusSlaveFactoryDelayed

trait BusSlaveFactoryDelayed extends BusSlaveFactory

BusSlaveFactoryDelayed captures each primitives (BusSlaveFactoryElement) into a data-model

Example:
  1. class Apb3SlaveFactory(bus : Apb3) extends BusSlaveFactoryDelayed{
        override def build(): Unit = { ... }
        override def busDataWidth: Int = bus.config.dataWidth
     }
Linear Supertypes
BusSlaveFactory, Area, Nameable, ContextUser, ScalaLocated, GlobalDataUser, OwnableRef, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. BusSlaveFactoryDelayed
  2. BusSlaveFactory
  3. Area
  4. Nameable
  5. ContextUser
  6. ScalaLocated
  7. GlobalDataUser
  8. OwnableRef
  9. AnyRef
  10. 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 build(): Unit

    In this function you have to define the read/write logic thanks to element, elementsPerAddress and elementsPerRangeAddress This is the only thing with def busDataWidth that should be implement by class that extends BusSlaveFactoryDelay

  2. abstract def busDataWidth: Int

    Return the data width of the bus

    Return the data width of the bus

    Definition Classes
    BusSlaveFactory
  3. abstract def readAddress(): UInt
    Definition Classes
    BusSlaveFactory
  4. abstract def readHalt(): Unit
    Definition Classes
    BusSlaveFactory
  5. abstract def writeAddress(): UInt
    Definition Classes
    BusSlaveFactory
  6. abstract def writeHalt(): Unit
    Definition Classes
    BusSlaveFactory

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
    Definition Classes
    BusSlaveFactory
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clearOnSet[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
    Definition Classes
    BusSlaveFactory
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  8. def component: Component
    Definition Classes
    ContextUser
  9. def createAndDriveFlow[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0): 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

    Definition Classes
    BusSlaveFactory
  10. def createReadAndClearOnSet[T <: Data](dataType: T, address: BigInt, bitOffset: Int = 0): T
    Definition Classes
    BusSlaveFactory
  11. 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

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

    Definition Classes
    BusSlaveFactory
  12. def createReadMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Create multi-words read register of type dataType

    Create multi-words read register of type dataType

    Definition Classes
    BusSlaveFactory
  13. 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

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

    Definition Classes
    BusSlaveFactory
  14. def createWriteAndReadMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Create multi-words write and read register of type dataType

    Create multi-words write and read register of type dataType

    Definition Classes
    BusSlaveFactory
  15. def createWriteMultiWord[T <: Data](that: T, address: BigInt, documentation: String = null): T

    Create multi-words write register of type dataType

    Create multi-words write register of type dataType

    Definition Classes
    BusSlaveFactory
  16. 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

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

    Definition Classes
    BusSlaveFactory
  17. def dataModelString(): String
  18. def doBitsAccumulationAndClearOnRead(that: Bits, address: BigInt, bitOffset: Int = 0): Unit

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

    Instanciate 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

    Definition Classes
    BusSlaveFactory
  19. def doMappedElements(jobs: Seq[BusSlaveFactoryElement], askWrite: Bool, askRead: Bool, doWrite: Bool, doRead: Bool, writeData: Bits, readData: Bits): Unit
  20. def doMappedReadElements(jobs: Seq[BusSlaveFactoryElement], askRead: Bool, doRead: Bool, readData: Bits): Unit
  21. def doMappedWriteElements(jobs: Seq[BusSlaveFactoryElement], askWrite: Bool, doWrite: Bool, writeData: Bits): Unit
  22. def doNonStopWrite(writeData: Bits): 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

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

    Definition Classes
    BusSlaveFactory
  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

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

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

    Drive and read that on multi-word

    Drive and read that on multi-word

    Definition Classes
    BusSlaveFactory
  26. def driveFlow[T <: Data](that: Flow[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

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

    Drive that on multi-words

    Drive that on multi-words

    Definition Classes
    BusSlaveFactory
  28. val elements: ArrayBuffer[BusSlaveFactoryElement]

    Contains all elements created

  29. val elementsOk: HashSet[BusSlaveFactoryElement]
  30. val elementsPerAddress: LinkedHashMap[AddressMapping, ArrayBuffer[BusSlaveFactoryElement]]

    Contains all elements related to an address

  31. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  32. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  33. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  34. def foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
    Definition Classes
    Nameable
  35. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  36. def getConfig: BusSlaveFactoryConfig
    Definition Classes
    BusSlaveFactory
  37. def getDisplayName(): String
    Definition Classes
    Nameable
  38. def getInstanceCounter: Int
    Definition Classes
    ContextUser
  39. def getName(default: String): String
    Definition Classes
    Nameable
  40. def getName(): String
    Definition Classes
    Nameable
  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
    ContextUser → ScalaLocated
  45. val globalData: GlobalData
    Definition Classes
    GlobalDataUser
  46. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  47. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  48. def isNamed: Boolean
    Definition Classes
    Nameable
  49. def isReading(address: BigInt): Bool

    Return true if the bus is reading

    Return true if the bus is reading

    Definition Classes
    BusSlaveFactory
  50. def isUnnamed: Boolean
    Definition Classes
    Nameable
  51. def isWriting(address: BigInt): Bool

    Return true if the bus is writing

    Return true if the bus is writing

    Definition Classes
    BusSlaveFactory
  52. def multiCycleRead(address: AddressMapping, cycles: BigInt): Unit
    Definition Classes
    BusSlaveFactory
  53. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  54. def nonStopWrite[T <: Data](that: T, bitOffset: Int = 0, documentation: String = null): T

    Permanently assign that by the bus write data from bitOffset

    Permanently assign that by the bus write data from bitOffset

    Definition Classes
    BusSlaveFactoryDelayedBusSlaveFactory
  55. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  56. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  57. def onRead(address: BigInt, documentation: String = null)(doThat: ⇒ Unit): Unit

    Call doThat when a read transaction occurs on address

    Call doThat when a read transaction occurs on address

    Definition Classes
    BusSlaveFactory
  58. def onReadPrimitive(address: AddressMapping, haltSensitive: Boolean, documentation: String)(doThat: ⇒ Unit): Unit
  59. def onWrite(address: BigInt, documentation: String = null)(doThat: ⇒ Unit): Unit

    Call doThat when a write transaction occurs on address

    Call doThat when a write transaction occurs on address

    Definition Classes
    BusSlaveFactory
  60. def onWritePrimitive(address: AddressMapping, haltSensitive: Boolean, documentation: String)(doThat: ⇒ Unit): Unit
  61. val parentScope: ScopeStatement
    Definition Classes
    ContextUser
  62. def printDataModel(): Unit
  63. 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

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

    Definition Classes
    BusSlaveFactory
  64. def readAddress(address: AddressMapping): UInt
    Definition Classes
    BusSlaveFactory
  65. def readAndClearOnSet[T <: Data](that: T, address: BigInt, bitOffset: Int = 0): T
    Definition Classes
    BusSlaveFactory
  66. 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

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

    Definition Classes
    BusSlaveFactory
  67. def readAndWriteMultiWord(that: Data, address: BigInt, documentation: String = null): Unit

    Create the memory mapping to write/read that from address

    Create the memory mapping to write/read that from address

    Definition Classes
    BusSlaveFactory
  68. 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 followings addresses

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

    Definition Classes
    BusSlaveFactory
  69. def readPrimitive[T <: Data](that: T, address: AddressMapping, bitOffset: Int, documentation: String): Unit
  70. def readStreamNonBlocking[T <: Data](that: Stream[T], address: BigInt, validBitOffset: Int, payloadBitOffset: Int): Unit

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

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

    Definition Classes
    BusSlaveFactory
  71. 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.

    Definition Classes
    BusSlaveFactory
    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

  72. def readSyncMemWordAligned[T <: Data](mem: Mem[T], addressOffset: BigInt, bitOffset: Int = 0): Mem[T]
    Definition Classes
    BusSlaveFactory
  73. val refOwner: RefOwnerType
    Definition Classes
    OwnableRef
    Annotations
    @dontName()
  74. def reflectNames(): Unit
    Definition Classes
    Area
  75. def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  76. def setCompositeName(nameable: Nameable, postfix: String): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  77. def setCompositeName(nameable: Nameable, weak: Boolean): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  78. def setCompositeName(nameable: Nameable): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  79. def setConfig(value: BusSlaveFactoryConfig): BusSlaveFactoryDelayed.this.type
    Definition Classes
    BusSlaveFactory
  80. def setName(name: String, weak: Boolean): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  81. def setPartialName(name: String, weak: Boolean): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  82. def setPartialName(owner: Nameable, name: String, weak: Boolean): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  83. def setPartialName(name: String): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  84. def setPartialName(owner: Nameable, name: String): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  85. def setRefOwner(that: Any): Unit
    Definition Classes
    OwnableRef
  86. def setScalaLocated(source: ScalaLocated): BusSlaveFactoryDelayed.this.type
    Definition Classes
    ScalaLocated
  87. def setWeakName(name: String): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  88. def setWordEndianness(value: Endianness): BusSlaveFactory

    Set the endianness during write/read multiword

    Set the endianness during write/read multiword

    Definition Classes
    BusSlaveFactory
  89. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  90. def toString(): String
    Definition Classes
    Area → Nameable → AnyRef → Any
  91. def unsetName(): BusSlaveFactoryDelayed.this.type
    Definition Classes
    Nameable
  92. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  93. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  94. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  95. def wordAddressInc: Int

    Address incrementation used by the read and write multi words registers

    Address incrementation used by the read and write multi words registers

    Definition Classes
    BusSlaveFactory
  96. def write[T <: Data](address: BigInt, bitMapping: (Int, Data)*): Unit
    Definition Classes
    BusSlaveFactory
  97. 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

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

    Definition Classes
    BusSlaveFactory
  98. def writeAddress(address: AddressMapping): UInt
    Definition Classes
    BusSlaveFactory
  99. def writeMemWordAligned[T <: Data](mem: Mem[T], addressOffset: BigInt, bitOffset: Int = 0): Mem[T]
    Definition Classes
    BusSlaveFactory
  100. 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 followings addresses

    Definition Classes
    BusSlaveFactory
  101. def writePrimitive[T <: Data](that: T, address: AddressMapping, bitOffset: Int, documentation: String): Unit

Deprecated Value Members

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

    Use createReadAndWrite instead

Inherited from BusSlaveFactory

Inherited from Area

Inherited from Nameable

Inherited from ContextUser

Inherited from ScalaLocated

Inherited from GlobalDataUser

Inherited from OwnableRef

Inherited from AnyRef

Inherited from Any

Ungrouped