class PackedBundle extends Bundle
Similar to Bundle but with bit packing capabilities. Use pack implicit functions to assign fields to bit locations - pack(Range, [Endianness]) - Packs the data into Range aligning to bit Endianness if too wide - packFrom(Position) - Packs the data starting (LSB) at Position. Uses full data length - packTo(Position) - Packs the data ending (MSB) at Position. Uses full data length
Providing no location tag will place the next data value immediately after the last.
val regWord = new PackedBundle { val init = Bool().packFrom(0) // Bit 0 val stop = Bool() // Bit 1 val result = Bits(16 bit).packTo(31) // Bits 16 to 31 }
- Alphabetic
- By Inheritance
- PackedBundle
- Bundle
- ValCallbackRec
- ValCallback
- MultiData
- Data
- InComponent
- OverridedEqualsHashCode
- SpinalTagReady
- Assignable
- NameableByComponent
- Nameable
- OwnableRef
- ContextUser
- ScalaLocated
- GlobalDataUser
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new PackedBundle()
Type Members
- implicit class DataPositionEnrich[T <: Data] extends AnyRef
- abstract type RefOwnerType
- Definition Classes
- OwnableRef
- class TagBitPackExact extends SpinalTag
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def ##(right: Data): Bits
- Definition Classes
- Data
- final def ##: Int
- Definition Classes
- AnyRef → Any
- def #*(count: Int): Bits
- Definition Classes
- Data
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def IFparent: Data
- Definition Classes
- Data
- val _spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- def addAttribute(attribute: Attribute): PackedBundle.this.type
- Definition Classes
- Data → SpinalTagReady
- def addAttribute(name: String, value: Int): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def addAttribute(name: String, value: String): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def addAttribute(name: String): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def addTag[T <: SpinalTag](spinalTag: T): PackedBundle.this.type
- Definition Classes
- MultiData → SpinalTagReady
- def addTags(h: SpinalTag, tail: SpinalTag*): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def addTags[T <: SpinalTag](tags: Iterable[T]): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def allowDirectionLessIo(): PackedBundle.this.type
- Definition Classes
- Data
- def allowOverride(): PackedBundle.this.type
- Definition Classes
- Data
- def allowPartialyAssigned(): PackedBundle.this.type
- Definition Classes
- Data
- def allowPruning(): PackedBundle.this.type
- Definition Classes
- Data
- def allowSimplifyIt(): PackedBundle.this.type
- Definition Classes
- Data
- def allowUnsetRegToAvoidLatch(): PackedBundle.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(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def asInput(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def asOutput(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def assignAllByName(that: Bundle): Unit
- Definition Classes
- Bundle
- def assignDontCare(): PackedBundle.this.type
- Definition Classes
- Data
- def assignDontCareToUnasigned(): PackedBundle.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 assignFromImpl(that: AnyRef, target: AnyRef, kind: AnyRef)(implicit loc: Location): Unit
- Attributes
- protected
- Definition Classes
- Bundle → Assignable
- 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(): PackedBundle.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): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def dirString(): String
- Definition Classes
- Data
- def dontSimplifyIt(): PackedBundle.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
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- 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(): PackedBundle.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(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def getAheadValue(): PackedBundle.this.type
- Definition Classes
- Data
- def getBitsWidth: Int
- Definition Classes
- MultiData → Data
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- 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 getMode: Byte
- Attributes
- protected
- Definition Classes
- Nameable
- 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 getPackedWidth: Int
- 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: PackedBundle.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
- 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 isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- 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
- def isUnnamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
- def mappings: ArrayBuffer[(Range, Data)]
Gets the mappings of Range to Data for this PackedBundle
Gets the mappings of Range to Data for this PackedBundle
- returns
Seq of (Range,Data) for all elements
- val name: String
- Definition Classes
- Nameable
- val nameableRef: Nameable
- Attributes
- protected
- Definition Classes
- Nameable
- Annotations
- @DontName()
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noBackendCombMerge(): PackedBundle.this.type
- Definition Classes
- Data
- def noCombLoopCheck(): PackedBundle.this.type
- Definition Classes
- Data
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def onEachAttributes(doIt: (Attribute) => Unit): Unit
- Definition Classes
- SpinalTagReady
- def overrideLocalName(name: String): PackedBundle.this.type
- Definition Classes
- Nameable
- def packed: Bits
- val parent: Data
- Definition Classes
- Data
- val parentScope: ScopeStatement
- Definition Classes
- ContextUser
- def pull(propagateName: Boolean): PackedBundle.this.type
- Definition Classes
- Data
- def pull(): PackedBundle.this.type
- Definition Classes
- Data
- def purify(): PackedBundle.this.type
- Definition Classes
- Data
- def randBoot(u: Unit): PackedBundle.this.type
- Definition Classes
- Data
- val refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
- def reflectNames(): Unit
- Definition Classes
- Nameable
- def removeAssignments(data: Boolean, init: Boolean, initial: Boolean): PackedBundle.this.type
- Definition Classes
- Data
- def removeDataAssignments(): PackedBundle.this.type
- Definition Classes
- Data
- def removeInitAssignments(): PackedBundle.this.type
- Definition Classes
- Data
- def removeTag(spinalTag: SpinalTag): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def removeTags(tags: Iterable[SpinalTag]): PackedBundle.this.type
- Definition Classes
- SpinalTagReady
- def resized: PackedBundle.this.type
- Definition Classes
- Data
- 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(): PackedBundle.this.type
- Definition Classes
- Data
- def setAsAnalog(): PackedBundle.this.type
- Definition Classes
- Data
- def setAsComb(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def setAsDirectionLess(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def setAsReg(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): PackedBundle.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): PackedBundle.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, postfix: String): PackedBundle.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, namePriority: Byte): PackedBundle.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable, weak: Boolean): PackedBundle.this.type
- Definition Classes
- Nameable
- def setCompositeName(nameable: Nameable): PackedBundle.this.type
- Definition Classes
- Nameable
- def setLambdaName(isNameBody: => Boolean)(nameGen: => String): PackedBundle.this.type
- Definition Classes
- Nameable
- def setName(name: String, namePriority: Byte): PackedBundle.this.type
- Definition Classes
- Nameable
- def setName(name: String, weak: Boolean): PackedBundle.this.type
- Definition Classes
- Nameable
- def setName(name: String): PackedBundle.this.type
- Definition Classes
- Nameable
- def setNameAsWeak(): PackedBundle.this.type
- Definition Classes
- Nameable
- def setOutputAsReg(): PackedBundle.this.type
- Definition Classes
- Data
- def setPartialName(name: String, namePriority: Byte, owner: Any): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String, namePriority: Byte): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String, weak: Boolean): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String, namePriority: Byte): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String, weak: Boolean): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(name: String): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable, name: String): PackedBundle.this.type
- Definition Classes
- Nameable
- def setPartialName(owner: Nameable): PackedBundle.this.type
- Definition Classes
- Nameable
- def setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
- def setScalaLocated(source: ScalaLocated): PackedBundle.this.type
- Definition Classes
- ScalaLocated
- def setWeakName(name: String): PackedBundle.this.type
- Definition Classes
- Nameable
- def skipOver(count: BitCount): Unit
Skips over the specified number of bits.
Skips over the specified number of bits. The next unspecified field will be placed starting
count
number of bits after the last placed field.- count
Number of bits to skip over
- Attributes
- protected
- def spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toIo(): PackedBundle.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 unfreeze(): PackedBundle.this.type
- Definition Classes
- MultiData → Data
- def unpack(bits: Bits, hi: Int, lo: Int): Unit
- def unpack(bits: Bits): Unit
- def unsetName(): PackedBundle.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
- PackedBundle → Bundle → ValCallbackRec
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- def wrapNext(): PackedBundle.this.type
- Definition Classes
- Data
- def zipByName(that: MultiData, rec: ArrayBuffer[(BaseType, BaseType)]): ArrayBuffer[(BaseType, BaseType)]
- Definition Classes
- MultiData
Deprecated Value Members
- def asDirectionLess(): PackedBundle.this.type
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
(Since version ???) use setAsDirectionLess instead
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- def genIf(cond: Boolean): PackedBundle.this.type
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
does not work with <>, use 'someBool generate Type()' or 'if(condition) Type() else null' instead