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