class LsuPlugin extends FiberPlugin with DBusAccessService with LsuCachelessBusProvider with LsuService with CmoService

The LsuPlugin does many things : - Handle the AGU (Address Generation Unit) - Interface with the L1 cache - Handle the MMU integration - Implement the PMA checks(Physical Memory Access) - Implement the IO accesses - Implement the AMO/LR/SC instructino - Impplement a store buffer - Implement the prefetching request - Implement RISC-V debug triggers related to memory load/store

So, it has a lot of different functionalities which sometimes are thigtly coupled together in order to reduce area and increase FMax which can make it challenging to read.

Linear Supertypes
CmoService, LsuService, LsuCachelessBusProvider, DBusAccessService, FiberPlugin, Hostable, Area, OverridedEqualsHashCode, ValCallbackRec, ValCallback, NameableByComponent, Nameable, ContextUser, ScalaLocated, GlobalDataUser, OwnableRef, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. LsuPlugin
  2. CmoService
  3. LsuService
  4. LsuCachelessBusProvider
  5. DBusAccessService
  6. FiberPlugin
  7. Hostable
  8. Area
  9. OverridedEqualsHashCode
  10. ValCallbackRec
  11. ValCallback
  12. NameableByComponent
  13. Nameable
  14. ContextUser
  15. ScalaLocated
  16. GlobalDataUser
  17. OwnableRef
  18. AnyRef
  19. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new LsuPlugin(layer: LaneLayer, withRva: Boolean, translationStorageParameter: Any, translationPortParameter: Any, pmpPortParameter: Any, softwarePrefetch: Boolean, addressAt: Int = 0, triggerAt: Int = 1, pmaAt: Int = 1, ctrlAt: Int = 2, wbAt: Int = 2, storeRs2At: Int = 0, storeBufferSlots: Int = 0, storeBufferOps: Int = 0)

Type Members

  1. abstract type RefOwnerType
    Definition Classes
    OwnableRef
  2. case class StoreBufferPop() extends Bundle with Product with Serializable
  3. case class StoreBufferPush() extends Bundle with Product with Serializable

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 SB_PTR: NamedType[UInt]
  5. val _context: Capture
    Definition Classes
    Area
  6. def accessRefillCount: Int
    Definition Classes
    LsuPluginDBusAccessService
  7. val accessRetainer: Retainer
    Definition Classes
    DBusAccessService
  8. def accessWake: Bits
    Definition Classes
    LsuPluginDBusAccessService
  9. def addService[T](that: T): T
    Definition Classes
    FiberPlugin
  10. var addressAt: Int
  11. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  12. def awaitBuild(): Unit
    Definition Classes
    FiberPlugin
  13. def buildBefore(l: ⇒ Lock): Unit
    Definition Classes
    FiberPlugin
  14. var buildCount: Int
    Definition Classes
    FiberPlugin
  15. def busParam: LsuCachelessBusParam
  16. def childNamePriority: Byte
    Definition Classes
    Area
  17. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native() @IntrinsicCandidate()
  18. def component: Component
    Definition Classes
    ContextUser
  19. var ctrlAt: Int
  20. val dbusAccesses: ArrayBuffer[DBusAccess]
    Definition Classes
    DBusAccessService
  21. def during: AnyRef { ... /* 2 definitions in type refinement */ }
    Definition Classes
    FiberPlugin
  22. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  23. def equals(obj: Any): Boolean
    Definition Classes
    OverridedEqualsHashCode → AnyRef → Any
  24. def foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
    Definition Classes
    Nameable
  25. def getBlockSize: Int
    Definition Classes
    LsuPluginLsuService
  26. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @IntrinsicCandidate()
  27. def getDisplayName(): String
    Definition Classes
    Nameable
  28. def getInstanceCounter: Int
    Definition Classes
    ContextUser
  29. def getLsuCachelessBus(): LsuCachelessBus
    Definition Classes
    LsuPluginLsuCachelessBusProvider
  30. def getMode: Byte
    Attributes
    protected
    Definition Classes
    Nameable
  31. def getName(default: String): String
    Definition Classes
    NameableByComponent → Nameable
  32. def getName(): String
    Definition Classes
    NameableByComponent → Nameable
  33. def getPartialName(): String
    Definition Classes
    Nameable
  34. def getPath(from: Component, to: Component): Seq[Component]
    Definition Classes
    NameableByComponent
  35. def getRefOwnersChain(): List[Any]
    Definition Classes
    OwnableRef
  36. def getScalaLocationLong: String
    Definition Classes
    ScalaLocated
  37. def getScalaLocationShort: String
    Definition Classes
    ScalaLocated
  38. def getScalaTrace(): Throwable
    Definition Classes
    ScalaLocated
  39. val globalData: GlobalData
    Definition Classes
    GlobalDataUser
  40. def hashCode(): Int
    Definition Classes
    OverridedEqualsHashCode → AnyRef → Any
  41. var host: PluginHost
    Definition Classes
    FiberPlugin
  42. val hostLock: Lock
    Definition Classes
    FiberPlugin
  43. val invalidationPorts: ArrayBuffer[LsuL1InvalidationBus]
    Definition Classes
    LsuService
  44. val invalidationRetainer: Retainer
    Definition Classes
    LsuService
  45. val ioRegions: Handle[ArrayBuffer[PmaRegion]]
  46. def isCompletelyUnnamed: Boolean
    Definition Classes
    Nameable
  47. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  48. final def isNamed: Boolean
    Definition Classes
    Nameable
  49. def isPriorityApplicable(namePriority: Byte): Boolean
    Definition Classes
    Nameable
  50. def isUnnamed: Boolean
    Definition Classes
    NameableByComponent → Nameable
  51. var layer: LaneLayer
  52. val lockables: LinkedHashSet[() ⇒ Lock]
    Definition Classes
    FiberPlugin
  53. val logic: Handle[Area { ... /* 51 definitions in type refinement */ }]
  54. def lsuCommitProbe: Flow[LsuCommitProbe]
    Definition Classes
    LsuPluginLsuService
  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. def newDBusAccess(): DBusAccess
    Definition Classes
    DBusAccessService
  59. def newInvalidationPort(): LsuL1InvalidationBus
    Definition Classes
    LsuService
  60. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  61. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @IntrinsicCandidate()
  62. def overrideLocalName(name: String): LsuPlugin.this.type
    Definition Classes
    Nameable
  63. val parentScope: ScopeStatement
    Definition Classes
    ContextUser
  64. var pluginEnabled: Boolean
    Definition Classes
    FiberPlugin
  65. var pmaAt: Int
  66. val pmaBuilder: Handle[Area { ... /* 3 definitions in type refinement */ }]
  67. var pmpPortParameter: Any
  68. val refOwner: RefOwnerType
    Definition Classes
    OwnableRef
    Annotations
    @DontName()
  69. def reflectNames(): Unit
    Definition Classes
    Nameable
  70. def retains(head: Any, tail: Any*): RetainerGroup
    Definition Classes
    FiberPlugin
  71. def retains(that: Seq[Any]): RetainerGroup
    Definition Classes
    FiberPlugin
  72. def rework[T](body: ⇒ T): T
    Definition Classes
    Area
  73. val scalaTrace: Throwable
    Definition Classes
    ScalaLocated
  74. def setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): LsuPlugin.this.type
    Definition Classes
    Nameable
  75. def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): LsuPlugin.this.type
    Definition Classes
    Nameable
  76. def setCompositeName(nameable: Nameable, postfix: String): LsuPlugin.this.type
    Definition Classes
    Nameable
  77. def setCompositeName(nameable: Nameable, namePriority: Byte): LsuPlugin.this.type
    Definition Classes
    Nameable
  78. def setCompositeName(nameable: Nameable, weak: Boolean): LsuPlugin.this.type
    Definition Classes
    Nameable
  79. def setCompositeName(nameable: Nameable): LsuPlugin.this.type
    Definition Classes
    Nameable
  80. def setHost(h: PluginHost): Unit
    Definition Classes
    FiberPlugin → Hostable
  81. def setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): LsuPlugin.this.type
    Definition Classes
    Nameable
  82. def setName(name: String, namePriority: Byte): LsuPlugin.this.type
    Definition Classes
    Nameable
  83. def setName(name: String, weak: Boolean): LsuPlugin.this.type
    Definition Classes
    Nameable
  84. def setName(name: String): LsuPlugin.this.type
    Definition Classes
    Nameable
  85. def setNameAsWeak(): LsuPlugin.this.type
    Definition Classes
    Nameable
  86. def setPartialName(name: String, namePriority: Byte, owner: Any): LsuPlugin.this.type
    Definition Classes
    Nameable
  87. def setPartialName(name: String, namePriority: Byte): LsuPlugin.this.type
    Definition Classes
    Nameable
  88. def setPartialName(name: String, weak: Boolean): LsuPlugin.this.type
    Definition Classes
    Nameable
  89. def setPartialName(owner: Nameable, name: String, namePriority: Byte): LsuPlugin.this.type
    Definition Classes
    Nameable
  90. def setPartialName(owner: Nameable, name: String, weak: Boolean): LsuPlugin.this.type
    Definition Classes
    Nameable
  91. def setPartialName(name: String): LsuPlugin.this.type
    Definition Classes
    Nameable
  92. def setPartialName(owner: Nameable, name: String): LsuPlugin.this.type
    Definition Classes
    Nameable
  93. def setPartialName(owner: Nameable): LsuPlugin.this.type
    Definition Classes
    Nameable
  94. def setRefOwner(that: Any): Unit
    Definition Classes
    OwnableRef
  95. def setScalaLocated(source: ScalaLocated): LsuPlugin.this.type
    Definition Classes
    ScalaLocated
  96. def setWeakName(name: String): LsuPlugin.this.type
    Definition Classes
    Nameable
  97. def setupRetain(l: ⇒ Lock): Unit
    Definition Classes
    FiberPlugin
  98. var softwarePrefetch: Boolean
  99. var storeBufferOps: Int
  100. var storeBufferSlots: Int
  101. var storeRs2At: Int
  102. val subservices: ArrayBuffer[Any]
    Definition Classes
    FiberPlugin
  103. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  104. val tagWidth: Int
  105. def toString(): String
    Definition Classes
    Area → Nameable → AnyRef → Any
  106. var translationPortParameter: Any
  107. var translationStorageParameter: Any
  108. var triggerAt: Int
  109. def unsetName(): LsuPlugin.this.type
    Definition Classes
    Nameable
  110. def valCallback[T](ref: T, name: String): T
    Definition Classes
    ValCallbackRec → ValCallback
  111. def valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
    Definition Classes
    ValCallbackRec
  112. def valCallbackRec(obj: Any, name: String): Unit
    Definition Classes
    Area → ValCallbackRec
  113. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  114. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  115. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  116. var wbAt: Int
  117. def withPrefix(prefix: String): FiberPlugin
    Definition Classes
    FiberPlugin
  118. var withRva: Boolean
  119. def withSoftwarePrefetch: Boolean
    Definition Classes
    LsuPluginCmoService

Deprecated Value Members

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

Inherited from CmoService

Inherited from LsuService

Inherited from LsuCachelessBusProvider

Inherited from DBusAccessService

Inherited from FiberPlugin

Inherited from Hostable

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