case class LsuL1Bus(p: LsuL1BusParameter) extends Bundle with IMasterSlave with Product with Serializable
Define the VexiiRiscv LsuL1 native memory bus. Its memory coherency protocol is close to tilelink, but has a few minor twists : - probe request may fail in Vexii, and so, need to be retried - probe request which produce a permition downgrade will be acknoledged on the probe.rsp bus, but will also generate a write.cmd writeback (which can be data-less)
All memory transaction are assumed to be the size of a cache line, including probes.
- Alphabetic
- By Inheritance
- LsuL1Bus
- Serializable
- Serializable
- Product
- Equals
- IMasterSlave
- Bundle
- ValCallbackRec
- ValCallback
- MultiData
- Data
- InComponent
- OverridedEqualsHashCode
- SpinalTagReady
- Assignable
- NameableByComponent
- Nameable
- OwnableRef
- ContextUser
- ScalaLocated
- GlobalDataUser
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new LsuL1Bus(p: LsuL1BusParameter)
Type Members
-
abstract
type
RefOwnerType
- Definition Classes
- OwnableRef
Value Members
-
def
##(right: Data): Bits
- Definition Classes
- Data
-
def
#*(count: Int): Bits
- Definition Classes
- Data
-
def
IFparent: Data
- Definition Classes
- Data
-
val
_spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
addAttribute(attribute: Attribute): LsuL1Bus.this.type
- Definition Classes
- Data → SpinalTagReady
-
def
addAttribute(name: String, value: Int): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
addAttribute(name: String, value: String): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
addAttribute(name: String): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
addTag[T <: SpinalTag](spinalTag: T): LsuL1Bus.this.type
- Definition Classes
- MultiData → SpinalTagReady
-
def
addTags(h: SpinalTag, tail: SpinalTag*): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
addTags[T <: SpinalTag](tags: Iterable[T]): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
allowDirectionLessIo(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
allowOverride(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
allowPartialyAssigned(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
allowPruning(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
allowSimplifyIt(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
allowUnsetRegToAvoidLatch(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
as[T <: Data](dataType: HardType[T]): T
- Definition Classes
- Data
-
def
asBits: Bits
- Definition Classes
- MultiData → Data
-
def
asData: Data
- Definition Classes
- Data
-
def
asInOut(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
asInput(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
asMaster(): Unit
- Definition Classes
- LsuL1Bus → IMasterSlave
-
def
asOutput(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
asSlave(): Unit
- Definition Classes
- IMasterSlave
-
def
assignAllByName(that: Bundle): Unit
- Definition Classes
- Bundle
-
def
assignDontCare(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
assignDontCareToUnasigned(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
assignFormalRandom(kind: RandomExpKind): Unit
- Definition Classes
- MultiData → Data
-
final
def
assignFrom(that: AnyRef, target: AnyRef)(implicit loc: Location): Unit
- Definition Classes
- Data
-
def
assignFromBits(bits: Bits, hi: Int, lo: Int): Unit
- Definition Classes
- MultiData → Data
-
def
assignFromBits(bits: Bits): Unit
- Definition Classes
- MultiData → Data
-
def
assignFromBits(bits: Bits, offset: Int, bitCount: BitCount): Unit
- Definition Classes
- Data
-
def
assignSomeByName(that: Bundle): Unit
- Definition Classes
- Bundle
-
def
assignUnassignedByName(that: MultiData): Unit
- Definition Classes
- MultiData
-
def
bundleAssign(that: Bundle)(f: (Data, Data) ⇒ Unit): Unit
- Definition Classes
- Bundle
-
def
checkDir(that: Bundle): Boolean
- Definition Classes
- Bundle
-
def
clearAll(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
clone(): Bundle
- Definition Classes
- Bundle → Data → AnyRef
-
def
component: Component
- Definition Classes
- ContextUser
-
final
def
compositAssignFrom(that: AnyRef, target: AnyRef, kind: AnyRef)(implicit loc: Location): Unit
- Definition Classes
- Assignable
-
val
compositeAssign: Assignable
- Definition Classes
- Assignable
-
def
copyDirectionOfImpl(that: Data): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
dirString(): String
- Definition Classes
- Data
-
def
dontSimplifyIt(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
elements: ArrayBuffer[(String, Data)]
- Definition Classes
- Bundle → MultiData
-
var
elementsCache: ArrayBuffer[(String, Data)]
- Definition Classes
- Bundle
-
def
elementsString: String
- Definition Classes
- MultiData
-
def
equals(obj: Any): Boolean
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
-
def
existsTag(cond: (SpinalTag) ⇒ Boolean): Boolean
- Definition Classes
- SpinalTagReady
-
def
filterTag(cond: (SpinalTag) ⇒ Boolean): Iterable[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
find(name: String): Data
- Definition Classes
- MultiData
-
def
findTag(cond: (SpinalTag) ⇒ Boolean): Option[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
flatten: Seq[BaseType]
- Definition Classes
- MultiData → Data
-
def
flattenForeach(body: (BaseType) ⇒ Unit): Unit
- Definition Classes
- MultiData → Data
-
def
flattenLocalName: Seq[String]
- Definition Classes
- MultiData → Data
-
def
flip(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
- Definition Classes
- Nameable
-
def
foreachTag(body: (SpinalTag) ⇒ Unit): Unit
- Definition Classes
- SpinalTagReady
-
def
freeze(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
getAheadValue(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
getBitsWidth: Int
- Definition Classes
- MultiData → Data
-
def
getComponent(): Component
- Definition Classes
- Data → InComponent → NameableByComponent
-
def
getComponents(): Seq[Component]
- Definition Classes
- InComponent
-
def
getDirection: IODirection
- Definition Classes
- Data
-
def
getDisplayName(): String
- Definition Classes
- Nameable
-
def
getInstanceCounter: Int
- Definition Classes
- ContextUser
-
def
getMuxType[T <: Data](list: TraversableOnce[T]): HardType[T]
- Definition Classes
- Data
-
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
getRealSource: Any
- Definition Classes
- Assignable
-
def
getRealSourceNoRec: Any
- Definition Classes
- Data → Assignable
-
def
getRefOwnersChain(): List[Any]
- Definition Classes
- OwnableRef
-
def
getRootParent: Data
- Definition Classes
- Data
-
def
getRtlPath(separator: String): String
- Definition Classes
- Data
-
def
getScalaLocationLong: String
- Definition Classes
- ScalaLocated
-
def
getScalaLocationShort: String
- Definition Classes
- ScalaLocated
-
def
getScalaTrace(): Throwable
- Definition Classes
- ScalaLocated
-
def
getTag[T <: SpinalTag](clazz: Class[T]): Option[T]
- Definition Classes
- SpinalTagReady
-
def
getTags(): LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
getTypeString: String
- Definition Classes
- Bundle
-
def
getZero: LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
val
globalData: GlobalData
- Definition Classes
- GlobalDataUser
-
var
hardtype: HardType[_]
- Definition Classes
- Bundle
-
def
hasTag[T <: SpinalTag](clazz: Class[T]): Boolean
- Definition Classes
- SpinalTagReady
-
def
hasTag(spinalTag: SpinalTag): Boolean
- Definition Classes
- SpinalTagReady
-
def
hashCode(): Int
- Definition Classes
- OverridedEqualsHashCode → AnyRef → Any
-
final
def
initFrom(that: AnyRef, target: AnyRef): Unit
- Definition Classes
- Data
-
def
instanceAttributes(language: Language): Iterable[Attribute]
- Definition Classes
- SpinalTagReady
-
def
instanceAttributes: Iterable[Attribute]
- Definition Classes
- SpinalTagReady
-
final
def
intoMaster(): LsuL1Bus.this.type
- Definition Classes
- IMasterSlave
-
final
def
intoSlave(): LsuL1Bus.this.type
- Definition Classes
- IMasterSlave
-
def
isAnalog: Boolean
- Definition Classes
- Data
-
def
isComb: Boolean
- Definition Classes
- Data
-
def
isCompletelyUnnamed: Boolean
- Definition Classes
- Nameable
-
def
isDirectionLess: Boolean
- Definition Classes
- Data
-
def
isEmptyOfTag: Boolean
- Definition Classes
- SpinalTagReady
-
def
isInOut: Boolean
- Definition Classes
- Data
-
def
isInput: Boolean
- Definition Classes
- Data
-
def
isInputOrInOut: Boolean
- Definition Classes
- Data
-
final
def
isMasterInterface: Boolean
- Definition Classes
- IMasterSlave
-
final
def
isNamed: Boolean
- Definition Classes
- Nameable
-
def
isOutput: Boolean
- Definition Classes
- Data
-
def
isOutputOrInOut: Boolean
- Definition Classes
- Data
-
def
isPriorityApplicable(namePriority: Byte): Boolean
- Definition Classes
- Nameable
-
def
isReg: Boolean
- Definition Classes
- Data
-
def
isRegOnAssign: Boolean
- Definition Classes
- Data
-
final
def
isSlaveInterface: Boolean
- Definition Classes
- IMasterSlave
-
def
isUnnamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
-
val
name: String
- Definition Classes
- Nameable
-
def
noBackendCombMerge(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
noCombLoopCheck(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
onEachAttributes(doIt: (Attribute) ⇒ Unit): Unit
- Definition Classes
- SpinalTagReady
-
def
overrideLocalName(name: String): LsuL1Bus.this.type
- Definition Classes
- Nameable
- val p: LsuL1BusParameter
-
val
parent: Data
- Definition Classes
- Data
-
val
parentScope: ScopeStatement
- Definition Classes
- ContextUser
- val probe: LsuL1ProbeBus
-
def
pull(propagateName: Boolean): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
pull(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
purify(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
randBoot(u: Unit): LsuL1Bus.this.type
- Definition Classes
- Data
- val read: LsuL1ReadBus
-
val
refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
-
def
reflectNames(): Unit
- Definition Classes
- Nameable
-
def
removeAssignments(data: Boolean, init: Boolean, initial: Boolean): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
removeDataAssignments(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
removeInitAssignments(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
removeTag(spinalTag: SpinalTag): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
removeTags(tags: Iterable[SpinalTag]): LsuL1Bus.this.type
- Definition Classes
- SpinalTagReady
-
def
resized: LsuL1Bus.this.type
- Definition Classes
- Data
- def resizer(newDataWidth: Int): LsuL1Bus
-
def
rootIF(): Interface
- Definition Classes
- Data
-
def
rootIFList(): List[Interface]
- Definition Classes
- Data
-
def
rootIFrec(now: Data, lastRoot: List[Interface]): List[Interface]
- Definition Classes
- Data
-
val
scalaTrace: Throwable
- Definition Classes
- ScalaLocated
-
def
setAll(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
setAsAnalog(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
setAsComb(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
setAsDirectionLess(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
final
def
setAsMaster(): Unit
- Definition Classes
- IMasterSlave
-
def
setAsReg(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
final
def
setAsSlave(): Unit
- Definition Classes
- IMasterSlave
-
def
setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, namePriority: Byte): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, weak: Boolean): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, namePriority: Byte): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, weak: Boolean): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setName(name: String): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setNameAsWeak(): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setOutputAsReg(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
setPartialName(name: String, namePriority: Byte, owner: Any): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, weak: Boolean): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, namePriority: Byte): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, weak: Boolean): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
-
def
setScalaLocated(source: ScalaLocated): LsuL1Bus.this.type
- Definition Classes
- ScalaLocated
-
def
setWeakName(name: String): LsuL1Bus.this.type
- Definition Classes
- Nameable
-
def
spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def toAxi4(): Axi4
-
def
toIo(): LsuL1Bus.this.type
- Definition Classes
- Data
-
def
toMuxInput[T <: Data](muxOutput: T): T
- Definition Classes
- Data
-
def
toString(): String
- Definition Classes
- Bundle → Nameable → AnyRef → Any
-
def
toTilelink(probeInflightMax: Int = 2): Bus
In short, when coherency is disabled : tl.A << read.cmd + write.cmd tl.D >> read.rsp + write.rsp
In short, when coherency is disabled : tl.A << read.cmd + write.cmd tl.D >> read.rsp + write.rsp
when coherency is enabled : tl.A << read.cmd tl.B + failed probe.rsp >> probe.cmd tl.C << probe.rsp that changed nothing + write.cmd tl.D >> read.rsp + write.rsp tl.E << read.ack
-
def
unfreeze(): LsuL1Bus.this.type
- Definition Classes
- MultiData → Data
-
def
unsetName(): LsuL1Bus.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(ref: Any, name: String): Unit
- Definition Classes
- Bundle → ValCallbackRec
-
def
wrapNext(): LsuL1Bus.this.type
- Definition Classes
- Data
- val write: LsuL1WriteBus
-
def
zipByName(that: MultiData, rec: ArrayBuffer[(BaseType, BaseType)]): ArrayBuffer[(BaseType, BaseType)]
- Definition Classes
- MultiData
Deprecated Value Members
-
def
asDirectionLess(): LsuL1Bus.this.type
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
(Since version ???) use setAsDirectionLess instead
-
def
genIf(cond: Boolean): LsuL1Bus.this.type
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
does not work with <>, use 'someBool generate Type()' or 'if(condition) Type() else null' instead