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
Ordering
- Alphabetic
- By Inheritance
Inherited
- LsuPlugin
- CmoService
- LsuService
- LsuCachelessBusProvider
- DBusAccessService
- FiberPlugin
- Hostable
- Area
- OverridedEqualsHashCode
- ValCallbackRec
- ValCallback
- NameableByComponent
- Nameable
- ContextUser
- ScalaLocated
- GlobalDataUser
- OwnableRef
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- All
Instance Constructors
- 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
-
abstract
type
RefOwnerType
- Definition Classes
- OwnableRef
- case class StoreBufferPop() extends Bundle with Product with Serializable
- case class StoreBufferPush() extends Bundle with Product with Serializable
Value Members
- val SB_PTR: NamedType[UInt]
-
val
_context: Capture
- Definition Classes
- Area
-
def
accessRefillCount: Int
- Definition Classes
- LsuPlugin → DBusAccessService
-
val
accessRetainer: Retainer
- Definition Classes
- DBusAccessService
-
def
accessWake: Bits
- Definition Classes
- LsuPlugin → DBusAccessService
-
def
addService[T](that: T): T
- Definition Classes
- FiberPlugin
- var addressAt: Int
-
def
awaitBuild(): Unit
- Definition Classes
- FiberPlugin
-
def
buildBefore(l: ⇒ Lock): Unit
- Definition Classes
- FiberPlugin
-
var
buildCount: Int
- Definition Classes
- FiberPlugin
- def busParam: LsuCachelessBusParam
-
def
childNamePriority: Byte
- Definition Classes
- Area
-
def
component: Component
- Definition Classes
- ContextUser
- var ctrlAt: Int
-
val
dbusAccesses: ArrayBuffer[DBusAccess]
- Definition Classes
- DBusAccessService
-
def
during: AnyRef { ... /* 2 definitions in type refinement */ }
- Definition Classes
- FiberPlugin
-
def
equals(obj: Any): Boolean
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
-
def
foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
- Definition Classes
- Nameable
-
def
getBlockSize: Int
- Definition Classes
- LsuPlugin → LsuService
-
def
getDisplayName(): String
- Definition Classes
- Nameable
-
def
getInstanceCounter: Int
- Definition Classes
- ContextUser
-
def
getLsuCachelessBus(): LsuCachelessBus
- Definition Classes
- LsuPlugin → LsuCachelessBusProvider
-
def
getName(default: String): String
- Definition Classes
- NameableByComponent → Nameable
-
def
getName(): String
- Definition Classes
- NameableByComponent → Nameable
-
def
getPartialName(): String
- Definition Classes
- Nameable
-
def
getPath(from: Component, to: Component): Seq[Component]
- Definition Classes
- NameableByComponent
-
def
getRefOwnersChain(): List[Any]
- Definition Classes
- OwnableRef
-
def
getScalaLocationLong: String
- Definition Classes
- ScalaLocated
-
def
getScalaLocationShort: String
- Definition Classes
- ScalaLocated
-
def
getScalaTrace(): Throwable
- Definition Classes
- ScalaLocated
-
val
globalData: GlobalData
- Definition Classes
- GlobalDataUser
-
def
hashCode(): Int
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
-
var
host: PluginHost
- Definition Classes
- FiberPlugin
-
val
hostLock: Lock
- Definition Classes
- FiberPlugin
-
val
invalidationPorts: ArrayBuffer[LsuL1InvalidationBus]
- Definition Classes
- LsuService
-
val
invalidationRetainer: Retainer
- Definition Classes
- LsuService
- val ioRegions: Handle[ArrayBuffer[PmaRegion]]
-
def
isCompletelyUnnamed: Boolean
- Definition Classes
- Nameable
-
final
def
isNamed: Boolean
- Definition Classes
- Nameable
-
def
isPriorityApplicable(namePriority: Byte): Boolean
- Definition Classes
- Nameable
-
def
isUnnamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
- var layer: LaneLayer
-
val
lockables: LinkedHashSet[() ⇒ Lock]
- Definition Classes
- FiberPlugin
- val logic: Handle[Area { ... /* 51 definitions in type refinement */ }]
-
def
lsuCommitProbe: Flow[LsuCommitProbe]
- Definition Classes
- LsuPlugin → LsuService
-
val
name: String
- Definition Classes
- Nameable
-
def
newDBusAccess(): DBusAccess
- Definition Classes
- DBusAccessService
-
def
newInvalidationPort(): LsuL1InvalidationBus
- Definition Classes
- LsuService
-
def
overrideLocalName(name: String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
val
parentScope: ScopeStatement
- Definition Classes
- ContextUser
-
var
pluginEnabled: Boolean
- Definition Classes
- FiberPlugin
- var pmaAt: Int
- val pmaBuilder: Handle[Area { ... /* 3 definitions in type refinement */ }]
- var pmpPortParameter: Any
-
val
refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
-
def
reflectNames(): Unit
- Definition Classes
- Nameable
-
def
retains(head: Any, tail: Any*): RetainerGroup
- Definition Classes
- FiberPlugin
-
def
retains(that: Seq[Any]): RetainerGroup
- Definition Classes
- FiberPlugin
-
def
rework[T](body: ⇒ T): T
- Definition Classes
- Area
-
val
scalaTrace: Throwable
- Definition Classes
- ScalaLocated
-
def
setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, namePriority: Byte): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, weak: Boolean): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setHost(h: PluginHost): Unit
- Definition Classes
- FiberPlugin → Hostable
-
def
setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, namePriority: Byte): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, weak: Boolean): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setNameAsWeak(): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte, owner: Any): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, weak: Boolean): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, namePriority: Byte): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, weak: Boolean): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
-
def
setScalaLocated(source: ScalaLocated): LsuPlugin.this.type
- Definition Classes
- ScalaLocated
-
def
setWeakName(name: String): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
setupRetain(l: ⇒ Lock): Unit
- Definition Classes
- FiberPlugin
- var softwarePrefetch: Boolean
- var storeBufferOps: Int
- var storeBufferSlots: Int
- var storeRs2At: Int
-
val
subservices: ArrayBuffer[Any]
- Definition Classes
- FiberPlugin
- val tagWidth: Int
-
def
toString(): String
- Definition Classes
- Area → Nameable → AnyRef → Any
- var translationPortParameter: Any
- var translationStorageParameter: Any
- var triggerAt: Int
-
def
unsetName(): LsuPlugin.this.type
- Definition Classes
- Nameable
-
def
valCallback[T](ref: T, name: String): T
- Definition Classes
- ValCallbackRec → ValCallback
-
def
valCallbackOn(ref: Any, name: String, refs: Set[Any]): Unit
- Definition Classes
- ValCallbackRec
-
def
valCallbackRec(obj: Any, name: String): Unit
- Definition Classes
- Area → ValCallbackRec
- var wbAt: Int
-
def
withPrefix(prefix: String): FiberPlugin
- Definition Classes
- FiberPlugin
- var withRva: Boolean
-
def
withSoftwarePrefetch: Boolean
- Definition Classes
- LsuPlugin → CmoService