class LsuCachelessPlugin extends FiberPlugin with DBusAccessService with LsuCachelessBusProvider
Implements an LSU without any cache. The tricky thing about this implementation, is the withSpeculativeLoadFlush parameter, which allows the plugin to speculatively emit non-io memory load to the memory system, even if the load result may be trashed away.
The plugin does support MMU aswell as atomic instruction. This allows to run linux without data cache :D. This is usefull from a verification perspective.
To get good timings on FPGA in a SoC, consider setting : - forkAt = 1 - joinAt = 2
This allows the memory bus CMD to have very relaxed timings by avoiding the XLEN bits adder aswell as the PMA data path. The down side is that the memory bus respons data path timings are stressed, but as this only impact the data path (no control path), it seems to be generaly better.
- Alphabetic
- By Inheritance
- LsuCachelessPlugin
- LsuCachelessBusProvider
- DBusAccessService
- FiberPlugin
- Hostable
- Area
- OverridedEqualsHashCode
- ValCallbackRec
- ValCallback
- NameableByComponent
- Nameable
- ContextUser
- ScalaLocated
- GlobalDataUser
- OwnableRef
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Type Members
-
abstract
type
RefOwnerType
- Definition Classes
- OwnableRef
Value Members
- val FENCE: NamedType[Bool]
- val WITH_ACCESS: NamedType[Bool]
- val WITH_RSP: NamedType[Bool]
-
val
_context: Capture
- Definition Classes
- Area
-
def
accessRefillCount: Int
- Definition Classes
- LsuCachelessPlugin → DBusAccessService
-
val
accessRetainer: Retainer
- Definition Classes
- DBusAccessService
-
def
accessWake: Bits
- Definition Classes
- LsuCachelessPlugin → DBusAccessService
-
def
addService[T](that: T): T
- Definition Classes
- FiberPlugin
- var addressAt: Int
-
def
awaitBuild(): Unit
- Definition Classes
- FiberPlugin
- def bufferSize: Int
-
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
-
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
- var forkAt: Int
-
def
getDisplayName(): String
- Definition Classes
- Nameable
-
def
getInstanceCounter: Int
- Definition Classes
- ContextUser
-
def
getLsuCachelessBus(): LsuCachelessBus
- Definition Classes
- LsuCachelessPlugin → 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
-
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 joinAt: Int
- var layer: LaneLayer
-
val
lockables: LinkedHashSet[() ⇒ Lock]
- Definition Classes
- FiberPlugin
- val logic: Handle[Area { ... /* 35 definitions in type refinement */ }]
-
val
name: String
- Definition Classes
- Nameable
-
def
newDBusAccess(): DBusAccess
- Definition Classes
- DBusAccessService
-
def
overrideLocalName(name: String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
val
parentScope: ScopeStatement
- Definition Classes
- ContextUser
-
var
pluginEnabled: Boolean
- Definition Classes
- FiberPlugin
- var pmaAt: Int
- val pmaBuilder: Handle[PmaLogic]
- var pmpPortParameter: Any
-
val
refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
-
def
reflectNames(): Unit
- Definition Classes
- Nameable
- val regions: Handle[ArrayBuffer[PmaRegion]]
-
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): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, namePriority: Byte): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, weak: Boolean): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setHost(h: PluginHost): Unit
- Definition Classes
- FiberPlugin → Hostable
-
def
setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, namePriority: Byte): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, weak: Boolean): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setName(name: String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setNameAsWeak(): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte, owner: Any): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, weak: Boolean): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, namePriority: Byte): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, weak: Boolean): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
-
def
setScalaLocated(source: ScalaLocated): LsuCachelessPlugin.this.type
- Definition Classes
- ScalaLocated
-
def
setWeakName(name: String): LsuCachelessPlugin.this.type
- Definition Classes
- Nameable
-
def
setupRetain(l: ⇒ Lock): Unit
- Definition Classes
- FiberPlugin
-
val
subservices: ArrayBuffer[Any]
- Definition Classes
- FiberPlugin
-
def
toString(): String
- Definition Classes
- Area → Nameable → AnyRef → Any
- var translationPortParameter: Any
- var translationStorageParameter: Any
- var triggerAt: Int
-
def
unsetName(): LsuCachelessPlugin.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
- var withAmo: Boolean
-
def
withPrefix(prefix: String): FiberPlugin
- Definition Classes
- FiberPlugin
- var withSpeculativeLoadFlush: Boolean