class Bits extends BitVector with DataPrimitives[Bits] with BaseTypePrimitives[Bits] with BitwiseOp[Bits]
The Bits type corresponds to a vector of bits that does not convey any arithmetic meaning.
val myBits1 = Bits(32 bits) val myBits2 = B(25, 8 bits) val myBits3 = B"8'xFF" val myBits4 = B"1001_0011
- See also
- Alphabetic
- By Inheritance
- Bits
- BitwiseOp
- BaseTypePrimitives
- DataPrimitives
- BitVector
- Widthable
- WidthProvider
- BaseType
- Expression
- StatementDoubleLinkedContainer
- DoubleLinkedContainer
- DeclarationStatement
- LeafStatement
- Statement
- BaseNode
- ExpressionContainer
- Data
- InComponent
- OverridedEqualsHashCode
- SpinalTagReady
- Assignable
- NameableByComponent
- Nameable
- OwnableRef
- ContextUser
- ScalaLocated
- GlobalDataUser
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new Bits()
Type Members
-
abstract
type
RefOwnerType
- Definition Classes
- OwnableRef
-
type
T = Bits
Used to know the data type of the children class of BitVector
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
##(right: Bits): Bits
Concatenation between two Bits
Concatenation between two Bits
- right
a Bits to append
- returns
a new Bits of width (w(this) + w(right))
val myBits2 = bits1 ## bits2
Example: -
def
##(right: Data): Bits
Concatenation between two data
Concatenation between two data
- Definition Classes
- Data
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def #*(count: Int): Bits
-
def
&(right: Bits): Bits
Bitwise AND operator
- def :=(value: String): Unit
-
def
:=(rangesValue: (Any, Any), _rangesValues: (Any, Any)*): Unit
Assign a range value to a Bits
Assign a range value to a Bits
- rangesValue
The first range value
- _rangesValues
Others range values
core.io.interrupt = (0 -> uartCtrl.io.interrupt, 1 -> timerCtrl.io.interrupt, default -> false)
Example: -
def
:=(that: Bits)(implicit loc: Location): Unit
Assign a data to this
Assign a data to this
- Definition Classes
- DataPrimitives
-
def
<<(that: UInt): Bits
Logical shift left (output width will increase of w(this) + max(that) bits
-
def
<<(that: Int): Bits
Logical shift left (output width will increase)
Logical shift left (output width will increase)
- that
the number of shift
- returns
a Bits of width : w(this) + that bits
val result = myBits << 4
Example: -
def
<>(that: Bits)(implicit loc: Location): Unit
Auto connection between two data
Auto connection between two data
- Definition Classes
- DataPrimitives
-
def
=/=(that: Bits): Bool
- Definition Classes
- DataPrimitives
-
def
=/=(that: MaskedLiteral): Bool
BitVector is not equal to MaskedLiteral
BitVector is not equal to MaskedLiteral
- Definition Classes
- BitVector
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
===(that: Bits): Bool
Comparison between two data
Comparison between two data
- Definition Classes
- DataPrimitives
-
def
===(that: MaskedLiteral): Bool
Compare a BitVector with a MaskedLiteral (M"110--0")
Compare a BitVector with a MaskedLiteral (M"110--0")
- that
the maskedLiteral
- returns
a Bool data containing the result of the comparison
- Definition Classes
- BitVector
val myBool = myBits === M"0-1"
Example: -
def
>>(that: UInt): Bits
Logical shift right (output width == input width)
-
def
>>(that: Int): Bits
Logical shift right (output width will decrease)
Logical shift right (output width will decrease)
- that
the number of shift
- returns
a Bits of width : w(this) - that bits
val result = myBits >> 4
Example: -
def
IFparent: Data
- Definition Classes
- Data
-
def
\(that: Bits): Bits
Use as \= to have the same behavioral as VHDL variable
Use as \= to have the same behavioral as VHDL variable
- Definition Classes
- DataPrimitives
-
def
^(right: Bits): Bits
Bitwise XOR operator
-
val
_spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
addAttribute(attribute: Attribute): Bits.this.type
- Definition Classes
- BaseType → Data → SpinalTagReady
-
def
addAttribute(name: String, value: Int): Bits.this.type
- Definition Classes
- SpinalTagReady
-
def
addAttribute(name: String, value: String): Bits.this.type
- Definition Classes
- SpinalTagReady
-
def
addAttribute(name: String): Bits.this.type
- Definition Classes
- SpinalTagReady
-
def
addTag[T <: SpinalTag](spinalTag: T): Bits.this.type
- Definition Classes
- SpinalTagReady
-
def
addTags(h: SpinalTag, tail: SpinalTag*): Bits.this.type
- Definition Classes
- SpinalTagReady
-
def
addTags[T <: SpinalTag](tags: Iterable[T]): Bits.this.type
- Definition Classes
- SpinalTagReady
-
val
algoIncrementale: Int
- Definition Classes
- BaseNode
-
val
algoInt: Int
- Definition Classes
- BaseNode
-
def
aliasAs[T <: Data](t: HardType[T]): T
Return a instance of the paramter which alias this.Bits in both read and assignments accesses.
Return a instance of the paramter which alias this.Bits in both read and assignments accesses. Usefull for union like data structures.
- t
The type in which the alias will be
- returns
The alias
-
def
allowDirectionLessIo(): Bits.this.type
Allow a Data of an io Bundle to be directionless
Allow a Data of an io Bundle to be directionless
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/iobundle.html
- Definition Classes
- Data
-
def
allowOverride(): Bits.this.type
Allow a Data to be overriden
Allow a Data to be overriden
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/assignment_overlap.html
- Definition Classes
- Data
-
def
allowPartialyAssigned(): Bits.this.type
Allow a register to be partially assigned
Allow a register to be partially assigned
- Definition Classes
- Data
-
def
allowPruning(): Bits.this.type
- Definition Classes
- Data
- def allowSimplifyIt(): Bits.this.type
-
def
allowUnsetRegToAvoidLatch(): Bits.this.type
Allow a register to have only an init (no assignments)
Allow a register to have only an init (no assignments)
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/unassigned_register.html#register-with-only-init
- Definition Classes
- Data
-
def
andMask(that: Bool): Bits.this.type
- Definition Classes
- BitVector
-
def
andR: Bool
Logical AND of all bits
Logical AND of all bits
- Definition Classes
- BitVector
-
def
apply(offset: UInt, bitCount: BitCount): Bits.this.type
Return a range of bits at offset and of width bitCount
-
def
apply(offset: Int, bitCount: BitCount): Bits.this.type
Return a range of bits at offset and of width bitCount
-
def
apply(bitId: UInt): Bool
Return the bit at index bitId
-
def
apply(bitId: Int): Bool
Return the bit at index bitId
-
def
apply(range: Range): Bits.this.type
Return a range of bits
Return a range of bits
- Definition Classes
- BitVector
val myBool = myBits(3 downto 1)
Example: -
def
as[T <: Data](dataType: HardType[T]): T
- Definition Classes
- Data
-
def
asBits: Bits
Cast data to Bits
-
def
asBool: Bool
- Definition Classes
- BitVector
-
def
asBools: Vec[Bool]
Cast the BitVector into a Vector of Bool
-
def
asData: Data
- Definition Classes
- Data
-
def
asInOut(): Bits.this.type
set a data as inout
-
def
asInput(): Bits.this.type
Set a data as input
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
asOutput(): Bits.this.type
Set a data as output
-
def
asSInt: SInt
Cast a Bits to a SInt
Cast a Bits to a SInt
- returns
a SInt data
val mySInt = myBits.asSInt
Example: -
def
asUInt: UInt
Cast a Bits to an UInt
Cast a Bits to an UInt
- returns
an UInt data
val myUInt = myBits.asUInt
Example: - def assignDontCare(): Bits.this.type
-
def
assignDontCareToUnasigned(): Bits.this.type
- Definition Classes
- Data
- def assignFormalRandom(kind: RandomExpKind): Unit
-
final
def
assignFrom(that: AnyRef, target: AnyRef = this)(implicit loc: Location): Unit
- Definition Classes
- Data
- def assignFromBits(bits: Bits, hi: Int, lo: Int): Unit
- def assignFromBits(bits: Bits): Unit
-
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
- BaseType → Assignable
-
def
bitsRange: Range
- Definition Classes
- BitVector
-
def
cldCount: Int
- Definition Classes
- DoubleLinkedContainer
-
def
clearAll(): Bits.this.type
Clear all bits
-
var
clockDomain: ClockDomain
- Definition Classes
- BaseType
- def clone(): Bits.this.type
-
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
copyDirectionOf(that: Bits): Unit
- Definition Classes
- DataPrimitives
- def copyDirectionOfImpl(that: Data): Bits.this.type
-
def
default(that: ⇒ Bits): Bits
Set a default value to a data
Set a default value to a data
- Definition Classes
- DataPrimitives
-
def
dirString(): String
- Definition Classes
- Data
-
def
dlcAppend(that: AssignmentStatement): Bits.this.type
- Definition Classes
- DoubleLinkedContainer
-
def
dlcForeach[T >: AssignmentStatement](func: (T) ⇒ Unit): Unit
- Definition Classes
- DoubleLinkedContainer
-
def
dlcHasOnlyOne: Boolean
- Definition Classes
- DoubleLinkedContainer
-
val
dlcHead: AssignmentStatement
- Definition Classes
- DoubleLinkedContainer
-
def
dlcIsEmpty: Boolean
- Definition Classes
- DoubleLinkedContainer
-
val
dlcLast: AssignmentStatement
- Definition Classes
- DoubleLinkedContainer
-
def
dlcPrepend(that: AssignmentStatement): Bits.this.type
- Definition Classes
- DoubleLinkedContainer
- def dontSimplifyIt(): Bits.this.type
-
def
drop(n: Int): Bits
Drop lowerst n bits
Drop lowerst n bits
- returns
data10bits(9 downto 4)
- Definition Classes
- BitVector
val res = data10bits.drop(4)
Example: -
def
dropHigh(n: Int): Bits
Drop highest n bits
Drop highest n bits
- returns
data10bits(5 downto 0)
- Definition Classes
- BitVector
val res = data10bits.dropHigh(4)
Example: -
def
dropLow(n: Int): Bits
- Definition Classes
- BitVector
-
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
findTag(cond: (SpinalTag) ⇒ Boolean): Option[SpinalTag]
- Definition Classes
- SpinalTagReady
- def flatten: Seq[BaseType]
- def flattenForeach(body: (BaseType) ⇒ Unit): Unit
- def flattenLocalName: Seq[String]
-
def
flip(): Bits.this.type
flip the direction of the data
flip the direction of the data
- Definition Classes
- Data
- def foreachClockDomain(func: (ClockDomain) ⇒ Unit): Unit
-
def
foreachDrivingExpression(func: (Expression) ⇒ Unit): Unit
- Definition Classes
- ExpressionContainer
-
def
foreachExpression(func: (Expression) ⇒ Unit): Unit
- Definition Classes
- DeclarationStatement → ExpressionContainer
-
def
foreachReflectableNameables(doThat: (Any) ⇒ Unit): Unit
- Definition Classes
- Nameable
-
def
foreachStatements(func: (AssignmentStatement) ⇒ Unit): Unit
- Definition Classes
- StatementDoubleLinkedContainer
-
def
foreachTag(body: (SpinalTag) ⇒ Unit): Unit
- Definition Classes
- SpinalTagReady
- def freeze(): Bits.this.type
-
def
getAheadValue(): Bits.this.type
For a register, get the value it will have at the next clock, as a combinational signal.
- def getAllTrue: Bits.this.type
-
def
getBitsWidth: Int
Return the width of the data
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
getComponent(): Component
- Definition Classes
- Data → InComponent → NameableByComponent
-
def
getComponents(): Seq[Component]
Get current component with all parents
Get current component with all parents
- Definition Classes
- InComponent
-
def
getDirection: IODirection
- Definition Classes
- Data
-
def
getDisplayName(): String
- Definition Classes
- Nameable
-
def
getDrivingReg(reportError: Boolean = true): Bits.this.type
- Definition Classes
- BaseType
-
def
getInstanceCounter: Int
- Definition Classes
- ContextUser
-
def
getMode: Byte
- Attributes
- protected
- Definition Classes
- Nameable
- def getMuxType[T <: Data](list: TraversableOnce[T]): HardType[T]
-
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
getSingleDriver: Option[Bits.this.type]
- Definition Classes
- BaseType
-
def
getTag[T <: SpinalTag](clazz: Class[T]): Option[T]
- Definition Classes
- SpinalTagReady
-
def
getTags(): LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
getTypeObject: TypeBits.type
- Definition Classes
- Bits → Expression
-
def
getWidth: Int
- Definition Classes
- Widthable → WidthProvider
-
def
getWidthNoInferation: Int
Return the width
Return the width
- Definition Classes
- BitVector
-
def
getWidthStringNoInferation: String
- Definition Classes
- BitVector
-
def
getZero: Bits.this.type
Create a data set to 0
- def getZeroUnconstrained: Bits.this.type
-
val
globalData: GlobalData
- Definition Classes
- GlobalDataUser
-
def
hasAssignement: Boolean
- Definition Classes
- BaseType
-
def
hasDataAssignment: Boolean
- Definition Classes
- BaseType
-
def
hasInit: Boolean
Does the base type have initial value
Does the base type have initial value
- Definition Classes
- BaseType
-
def
hasOnlyOneStatement: Boolean
- Definition Classes
- StatementDoubleLinkedContainer
-
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
-
def
head: AssignmentStatement
- Definition Classes
- StatementDoubleLinkedContainer
-
def
high: Int
Return the upper bound
Return the upper bound
- Definition Classes
- BitVector
-
def
init(that: Bits): Bits
Set initial value to a data
Set initial value to a data
- Definition Classes
- DataPrimitives
-
final
def
initFrom(that: AnyRef, target: AnyRef = this): Unit
- Definition Classes
- Data
-
def
initial(that: Bits): Bits
- Definition Classes
- BaseTypePrimitives
-
def
initialFrom(that: AnyRef, target: AnyRef = this): Unit
- Definition Classes
- BaseType
-
def
insertNext(s: Statement): Unit
- Definition Classes
- Statement
-
def
instanceAttributes(language: Language): Iterable[Attribute]
- Definition Classes
- SpinalTagReady
-
def
instanceAttributes: Iterable[Attribute]
- Definition Classes
- SpinalTagReady
- def isAnalog: Boolean
- def isComb: Boolean
-
def
isCompletelyUnnamed: Boolean
- Definition Classes
- Nameable
-
def
isDirectionLess: Boolean
- Definition Classes
- Data
-
def
isEmptyOfTag: Boolean
- Definition Classes
- SpinalTagReady
-
def
isFrozen(): Boolean
- Definition Classes
- BaseType
-
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
- def isRegOnAssign: Boolean
-
def
isTypeNode: Boolean
Is the baseType a node
Is the baseType a node
- Definition Classes
- BaseType
-
def
isUnknown: Bool
- Definition Classes
- BitVector
-
def
isUnnamed: Boolean
- Definition Classes
- NameableByComponent → Nameable
-
def
isUsingResetSignal: Boolean
Is the basetype using reset signal
Is the basetype using reset signal
- Definition Classes
- BaseType
-
def
isUsingSoftResetSignal: Boolean
Is the basetype using soft reset signal
Is the basetype using soft reset signal
- Definition Classes
- BaseType
-
def
isVital: Boolean
Check if the baseType is vital
Check if the baseType is vital
- Definition Classes
- BaseType
-
val
lastScopeStatement: Statement
- Definition Classes
- Statement
-
def
lsb: Bool
Return the least significant bit
Return the least significant bit
- Definition Classes
- BitVector
-
def
msb: Bool
Return the most significant bit
Return the most significant bit
- Definition Classes
- BitVector
-
def
mux[T2 <: Data](mappings: (Any, T2)*): T2
- Definition Classes
- BaseType
-
def
muxDc[T2 <: Data](mappings: (Any, T2)*): T2
- Definition Classes
- BaseType
-
def
muxList[T2 <: Data](defaultValue: T2, mappings: Seq[(Any, T2)]): T2
- Definition Classes
- BaseType
-
def
muxList[T2 <: Data](mappings: Seq[(Any, T2)]): T2
- Definition Classes
- BaseType
-
def
muxListDc[T2 <: Data](mappings: Seq[(Any, T2)]): T2
- Definition Classes
- BaseType
-
val
name: String
- Definition Classes
- Nameable
- val nameableRef: Nameable
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newExtract(offset: UInt, size: Int, extract: BitVectorRangedAccessFloating)(implicit loc: Location): Bits.this.type
Extract a range of bits of the BitVector
Extract a range of bits of the BitVector
- Definition Classes
- BitVector
-
def
newExtract(hi: Int, lo: Int, accessFactory: ⇒ BitVectorRangedAccessFixed): Bits.this.type
Extract a range of bits of the BitVector
Extract a range of bits of the BitVector
- Definition Classes
- BitVector
-
def
newExtract(bitId: UInt, extract: BitVectorBitAccessFloating): Bool
Extract a bit of the BitVector
Extract a bit of the BitVector
- Definition Classes
- BitVector
-
def
newExtract(bitId: Int, extract: BitVectorBitAccessFixed): Bool
Extract a bit of the BitVector
Extract a bit of the BitVector
- Definition Classes
- BitVector
-
val
nextScopeStatement: Statement
- Definition Classes
- Statement
-
def
noBackendCombMerge(): Bits.this.type
Put the combinatorial logic driving this signal in a separate process
Put the combinatorial logic driving this signal in a separate process
- Definition Classes
- Data
-
def
noCombLoopCheck(): Bits.this.type
Disable combinatorial loop checking for this Data
Disable combinatorial loop checking for this Data
See https://spinalhdl.github.io/SpinalDoc-RTD/master/SpinalHDL/Design%20errors/combinatorial_loop.html
- Definition Classes
- Data
-
def
normalizeInputs: Unit
- Definition Classes
- BaseType → ExpressionContainer
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
def
onEachAttributes(doIt: (Attribute) ⇒ Unit): Unit
- Definition Classes
- SpinalTagReady
-
def
opName: String
- Definition Classes
- Bits → Expression
-
def
orMask(that: Bool): Bits.this.type
- Definition Classes
- BitVector
-
def
orR: Bool
Logical OR of all bits
Logical OR of all bits
- Definition Classes
- BitVector
-
def
overrideLocalName(name: String): Bits.this.type
- Definition Classes
- Nameable
-
val
parent: Data
- Definition Classes
- Data
-
val
parentScope: ScopeStatement
- Definition Classes
- ContextUser
-
def
pull(propagateName: Boolean): Bits.this.type
- Definition Classes
- Data
-
def
pull(): Bits.this.type
Pull a signal to the top level (use for debugging)
Pull a signal to the top level (use for debugging)
- Definition Classes
- Data
-
def
purify(): Bits.this.type
- Definition Classes
- Data
-
def
randBoot(u: Unit): Bits.this.type
Useful for register that doesn't need a reset value in RTL, but need a random value for simulation (avoid x-propagation)
Useful for register that doesn't need a reset value in RTL, but need a random value for simulation (avoid x-propagation)
- Definition Classes
- Data
-
val
refOwner: RefOwnerType
- Definition Classes
- OwnableRef
- Annotations
- @DontName()
-
def
reflectNames(): Unit
- Definition Classes
- Nameable
- def remapClockDomain(func: (ClockDomain) ⇒ ClockDomain): Unit
-
def
remapDrivingExpressions(func: (Expression) ⇒ Expression): Unit
- Definition Classes
- ExpressionContainer
-
def
remapExpressions(func: (Expression) ⇒ Expression): Unit
- Definition Classes
- DeclarationStatement → ExpressionContainer
-
def
removeAssignments(data: Boolean = true, init: Boolean = true, initial: Boolean = true): Bits.this.type
Remove all assignments of the base type
-
def
removeDataAssignments(): Bits.this.type
- Definition Classes
- Data
-
def
removeInitAssignments(): Bits.this.type
- Definition Classes
- Data
- def removeStatement(): Unit
-
def
removeStatementFromScope(): Unit
- Definition Classes
- Statement
-
def
removeTag(spinalTag: SpinalTag): Bits.this.type
- Definition Classes
- SpinalTagReady
-
def
removeTags(tags: Iterable[SpinalTag]): Bits.this.type
- Definition Classes
- SpinalTagReady
- def resize(width: BitCount): Bits
-
def
resize(width: Int): Bits
Resize the bitVector to width
- def resizeFactory: Resize
-
def
resizeLeft(width: Int): Bits
Resize by keeping MSB at the same place If the final size is bigger than the original size, the leftmost bits are filled with zeroes if the final size is smaller, only width MSB are kept
Resize by keeping MSB at the same place If the final size is bigger than the original size, the leftmost bits are filled with zeroes if the final size is smaller, only width MSB are kept
- width
Final width
- returns
Resized bits vector
-
def
resized: Bits.this.type
Resized data regarding target
Resized data regarding target
- Definition Classes
- Data
- def reversed: Bits.this.type
-
def
rootIF(): Interface
root interface
root interface
- Definition Classes
- Data
-
def
rootIFList(): List[Interface]
- Definition Classes
- Data
-
def
rootIFrec(now: Data, lastRoot: List[Interface]): List[Interface]
- Definition Classes
- Data
- def rootScopeStatement: ScopeStatement
-
def
rotateLeft(that: Int): Bits
Left rotation of that bits
-
def
rotateLeft(that: UInt): T
Left rotation of that Bits
Left rotation of that Bits
- Definition Classes
- BitVector
-
def
rotateRight(that: Int): Bits
Right rotation of that bits
-
def
rotateRight(that: UInt): T
Right rotation of that Bits
Right rotation of that Bits
- Definition Classes
- BitVector
-
val
scalaTrace: Throwable
- Definition Classes
- ScalaLocated
-
def
setAll(): Bits.this.type
Set all bits
-
def
setAllTo(value: Bool): Bits.this.type
Set all bits to value
Set all bits to value
- Definition Classes
- BitVector
-
def
setAllTo(value: Boolean): Bits.this.type
Set all bits to value
Set all bits to value
- Definition Classes
- BitVector
- def setAsAnalog(): Bits.this.type
-
def
setAsComb(): Bits.this.type
Set baseType to Combinatorial
-
def
setAsDirectionLess(): Bits.this.type
remove the direction (in,out,inout) to a data
-
def
setAsReg(): Bits.this.type
Set baseType to reg
-
def
setAsTypeNode(): Bits.this.type
Set baseType to Node
Set baseType to Node
- Definition Classes
- BaseType
-
def
setAsVital(): Bits.this.type
Set the baseType to vital
Set the baseType to vital
- Definition Classes
- BaseType
-
def
setCompositeName(nameable: Nameable, postfix: String, namePriority: Byte): Bits.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String, weak: Boolean): Bits.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, postfix: String): Bits.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, namePriority: Byte): Bits.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable, weak: Boolean): Bits.this.type
- Definition Classes
- Nameable
-
def
setCompositeName(nameable: Nameable): Bits.this.type
- Definition Classes
- Nameable
-
def
setLambdaName(isNameBody: ⇒ Boolean)(nameGen: ⇒ String): Bits.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, namePriority: Byte): Bits.this.type
- Definition Classes
- Nameable
-
def
setName(name: String, weak: Boolean): Bits.this.type
- Definition Classes
- Nameable
-
def
setName(name: String): Bits.this.type
- Definition Classes
- Nameable
-
def
setNameAsWeak(): Bits.this.type
- Definition Classes
- Nameable
-
def
setOutputAsReg(): Bits.this.type
Recursively set baseType to reg only for output
Recursively set baseType to reg only for output
- Definition Classes
- Data
-
def
setPartialName(name: String, namePriority: Byte, owner: Any): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, namePriority: Byte): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String, weak: Boolean): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, namePriority: Byte): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String, weak: Boolean): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(name: String): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable, name: String): Bits.this.type
- Definition Classes
- Nameable
-
def
setPartialName(owner: Nameable): Bits.this.type
- Definition Classes
- Nameable
-
def
setRefOwner(that: Any): Unit
- Definition Classes
- OwnableRef
-
def
setScalaLocated(source: ScalaLocated): Bits.this.type
- Definition Classes
- ScalaLocated
-
def
setWeakName(name: String): Bits.this.type
- Definition Classes
- Nameable
-
def
setWidth(width: Int): Bits.this.type
Set the width of the BitVector
Set the width of the BitVector
- width
the width of the data
- returns
the BitVector of a given size
- Definition Classes
- BitVector
-
def
simplifyNode: Expression
- Definition Classes
- Expression
-
def
sliceBy(divisor: List[Int]): List[Bits]
- Definition Classes
- BitVector
-
def
sliceBy(divisor: Int*): List[Bits]
apart by a list of width
apart by a list of width
- returns
(List(A(1 downto 0), A(2 downto 4), A(9 downto 3))
- Definition Classes
- BitVector
val res = A.sliceBy(2, 3, 5) val res = A.sliceBy(List(2, 3, 5))
Example: -
def
spinalTags: LinkedHashSet[SpinalTag]
- Definition Classes
- SpinalTagReady
-
def
splitAt(n: Int): (Bits, Bits)
Split at n st bits
Split at n st bits
- returns
(data10bits(8 downto 4), data10bits(3 downto 0))
- Definition Classes
- BitVector
val res = data10bits.splitAt(4)
Example: -
def
stabilized(func: (Expression) ⇒ Expression, seed: Expression): Expression
- Definition Classes
- ExpressionContainer
-
def
subdivideIn(sliceWidth: BitCount): Vec[T]
- Definition Classes
- BitVector
-
def
subdivideIn(sliceCount: SlicesCount): Vec[T]
- Definition Classes
- BitVector
-
def
subdivideIn(sliceWidth: BitCount, strict: Boolean): Vec[T]
Split the BitVector into slice of x bits
Split the BitVector into slice of x bits
- sliceWidth
the width of the slice
- strict
allow
subdivideIn
to generate vectors with varying size- returns
a Vector of slices
- Definition Classes
- BitVector
val res = myBits.subdivideIn(3 bits)
Example: -
def
subdivideIn(sliceCount: SlicesCount, strict: Boolean): Vec[T]
Split the BitVector into x slice
Split the BitVector into x slice
- sliceCount
the width of the slice
- strict
allow
subdivideIn
to generate vectors with varying size- returns
a Vector of slices
- Definition Classes
- BitVector
val res = myBits.subdivideIn(3 slices)
Example: -
def
switchAssign[T2 <: BaseType](sel: T2)(mappings: (Any, Bits)*): Unit
- Definition Classes
- DataPrimitives
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
take(n: Int): Bits
Take lowerst n bits
Take lowerst n bits
- returns
data10bits(3 downto 0)
- Definition Classes
- BitVector
val res = data10bits.take(4)
Example: -
def
takeHigh(n: Int): Bits
Take highest n bits
Take highest n bits
- returns
data10bits(9 downto 6)
- Definition Classes
- BitVector
val res = data10bits.takeHigh(4)
Example: -
def
takeLow(n: Int): Bits
- Definition Classes
- BitVector
-
def
toDataType[T <: Data](dataType: T): T
Cast a Bits to a given data type
Cast a Bits to a given data type
- dataType
the wanted data type
- returns
a new data type assign with the value of Bits
val myUInt = myBits.toDataType(UInt)
Example: -
def
toIo(): Bits.this.type
- Definition Classes
- Data
-
def
toMuxInput[T <: Data](muxOutput: T): T
- Definition Classes
- Data
-
def
toString(): String
- Definition Classes
- BitVector → BaseType → Expression → Nameable → AnyRef → Any
-
def
toStringMultiLine(): String
- Definition Classes
- BaseNode
-
def
toStringRec(level: Int = 1): String
- Definition Classes
- Expression
-
def
unary_~: Bits
Inverse bitwise operator
- def unfreeze(): Bits.this.type
-
def
unsetName(): Bits.this.type
- Definition Classes
- Nameable
- def valueRange: Range
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
walkDrivingExpressions(func: (Expression) ⇒ Unit): Unit
- Definition Classes
- ExpressionContainer
-
def
walkExpression(func: (Expression) ⇒ Unit): Unit
- Definition Classes
- ExpressionContainer
-
def
walkExpressionPostorder(func: (Expression) ⇒ Unit): Unit
- Definition Classes
- ExpressionContainer
-
def
walkParentTreeStatements(func: (TreeStatement) ⇒ Unit): Unit
- Definition Classes
- Statement
-
def
walkParentTreeStatementsUntilRootScope(func: (TreeStatement) ⇒ Unit): Unit
- Definition Classes
- Statement
-
def
walkRemapDrivingExpressions(func: (Expression) ⇒ Expression): Unit
- Definition Classes
- ExpressionContainer
-
def
walkRemapExpressions(func: (Expression) ⇒ Expression): Unit
- Definition Classes
- ExpressionContainer
-
def
wrapCast[T <: BaseType](result: T, node: Cast): T
- Definition Classes
- BaseType
-
def
wrapNext(): Bits.this.type
- Definition Classes
- Data
-
def
xorMask(that: Bool): Bits.this.type
- Definition Classes
- BitVector
-
def
xorR: Bool
Logical XOR of all bits
Logical XOR of all bits
- Definition Classes
- BitVector
-
def
|(right: Bits): Bits
Bitwise OR operator
-
def
|<<(that: UInt): Bits
Logical shift left (output width == input width)
-
def
|<<(that: Int): Bits
Logical shift left (output width == input width)
-
def
|>>(that: UInt): Bits
Logical shift Right (output width == input width)
-
def
|>>(that: Int): Bits
Logical shift right (output width == input width)
Logical shift right (output width == input width)
- that
the number of shift
- returns
a Bits of width : w(this)
val result = myBits |>> 4
Example:
Deprecated Value Members
-
def
asDirectionLess(): Bits.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
-
def
genIf(cond: Boolean): Bits.this.type
Generate this if condition is true
Generate this if condition is true
- Definition Classes
- Data
- Annotations
- @deprecated
- Deprecated
does not work with <>, use 'someBool generate Type()' or 'if(condition) Type() else null' instead
-
def
range: Range
Return the range
Return the range
- Definition Classes
- BitVector
- Annotations
- @deprecated
- Deprecated
Use bitsRange instead