Used to know the data type of the children class of BitVector
Concatenation between two Bits
Concatenation between two Bits
a Bits to append
a new Bits of width (w(this) + w(right))
val myBits2 = bits1 ## bits2
Concatenation between two signals
Concatenation between two signals
Return the count time concatenation of the signal.
Bitwise AND operator
Assign a range value to a Bits
Assign a range value to a Bits
The first range value
Others range values
core.io.interrupt = (0 -> uartCtrl.io.interrupt, 1 -> timerCtrl.io.interrupt, default -> false)
Standard hardware assignment, equivalent to <= in VHDL/Verilog
Standard hardware assignment, equivalent to <= in VHDL/Verilog
Logical shift left (output width will increase of w(this) + max(that) bits
Logical shift left (output width will increase)
Logical shift left (output width will increase)
the number of shift
a Bits of width : w(this) + that bits
val result = myBits << 4
Automatic connection between two hardware signals or two bundles of the same type.
Automatic connection between two hardware signals or two bundles of the same type.
Direction is inferred by using signal direction (in/out). (Similar behavior to :=)
isNotEqualTo comparison between two hardware signals
isNotEqualTo comparison between two hardware signals
BitVector is not equal to MaskedLiteral
BitVector is not equal to MaskedLiteral
isEqualTo comparison between two hardware signals
isEqualTo comparison between two hardware signals
Compare a BitVector with a MaskedLiteral (M"110--0")
Compare a BitVector with a MaskedLiteral (M"110--0")
the maskedLiteral
a Bool data containing the result of the comparison
val myBool = myBits === M"0-1"
Logical shift right (output width == input width)
Logical shift right (output width will decrease)
Logical shift right (output width will decrease)
the number of shift
a Bits of width : w(this) - that bits
val result = myBits >> 4
Use as \= to have the same behavioral as VHDL variable
Use as \= to have the same behavioral as VHDL variable
Bitwise XOR operator
Return a instance of the parameter which alias this.Bits in both read and assignments accesses.
Return a instance of the parameter which alias this.Bits in both read and assignments accesses. Useful for union like data structures.
The type in which the alias will be
The alias
Allow a signal of an io Bundle to be directionless.
Allow a signal of an io Bundle to be directionless.
Allow a signal to be overridden.
Allow a signal to be overridden.
Allow a register to be partially assigned
Allow a register to be partially assigned
Allow a register to have only an init (no assignments)
Allow a register to have only an init (no assignments)
Hardware logical AND of all bits
Hardware logical AND of all bits
Equivalent to this.asBits === ((BigInt(1) << getWidth) - 1).
Return a range of bits at offset and of width bitCount
Return a range of bits at offset and of width bitCount
Return the bit at index bitId
Return the bit at index bitId
Return a range of bits
Return a range of bits
val myBool = myBits(3 downto 1)
Cast signal to Bits
Return this.lsb
Return this.lsb
Cast the BitVector into a vector of Bool
Cast the BitVector into a vector of Bool
Set a signal as inout
Set a data as input
Set a data as output
Cast a Bits to a SInt
Cast a Bits to a SInt
a SInt data
val mySInt = myBits.asSInt
Cast a Bits to an UInt
Cast a Bits to an UInt
an UInt data
val myUInt = myBits.asUInt
Assign the default 'x' value to all signals composing this type.
Clear all bits
Set a default value to a signal.
Set a default value to a signal.
Drop lowest n bits
Drop lowest n bits
data10bits(9 downto 4)
val res = data10bits.drop(4)
Drop highest n bits
Drop highest n bits
data10bits(5 downto 0)
val res = data10bits.dropHigh(4)
Flip the direction of the signal.
Flip the direction of the signal.
in and out are swapped, inout stay the same.
For a register, get the value it will have at the next clock, as a combinational signal.
Return the width of the data
Get current component with all parents
Get current component with all parents
Return the width
Return the width
Create a signal set to 0
Does the base type have initial value
Does the base type have initial value
Return the upper bound
Return the upper bound
Set initial value of the signal
Set initial value of the signal
Set initial value only if is not thatnull
Set initial value only if is not thatnull
Set initial value as 0
Set initial value as 0
Is the baseType a node
Is the baseType a node
Is the basetype using reset signal
Is the basetype using reset signal
Is the basetype using soft reset signal
Is the basetype using soft reset signal
Check if the baseType is vital
Check if the baseType is vital
Return the least significant bit
Return the least significant bit
Return the most significant bit
Return the most significant bit
Use a SpinalHDL data as a selector for a mux.
Use a SpinalHDL data as a selector for a mux.
Version of SpinalHDL mux that allows Don't Care.
Version of SpinalHDL mux that allows Don't Care.
Use a scala.Seq of SpinalHDL data as mux inputs.
Use a scala.Seq of SpinalHDL data as mux inputs.
Use a scala.Seq of SpinalHDL data as mux inputs.
Use a scala.Seq of SpinalHDL data as mux inputs.
Version of SpinalHDL muxList that allows Don't Care.
Version of SpinalHDL muxList that allows Don't Care.
Hardware logical NAND of all bits
Hardware logical NAND of all bits
Extract a range of bits of the BitVector
Extract a range of bits of the BitVector
Extract a range of bits of the BitVector
Extract a range of bits of the BitVector
Extract a bit of the BitVector
Extract a bit of the BitVector
Extract a bit of the BitVector
Extract a bit of the BitVector
Put the combinatorial logic driving this signal in a separate process
Put the combinatorial logic driving this signal in a separate process
Disable combinatorial loop checking for this Data
Disable combinatorial loop checking for this Data
Hardware logical NOR of all bits
Hardware logical NOR of all bits
Hardware logical NXOR of all bits
Hardware logical NXOR of all bits
Hardware logical OR of all bits
Hardware logical OR of all bits
Equivalent to this.asBits =/= 0.
Pull a signal to the top level (use for debugging)
Pull a signal to the top level (use for debugging)
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)
Remove all assignments of the base type
Return a resized representation of x.
Return a resized representation of x.
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
Final width
Resized bits vector
Return a version of the signal which is allowed to be automatically resized where needed.
Return a version of the signal which is allowed to be automatically resized where needed.
The resize operation is deferred until the point of assignment later. The resize may widen or truncate, retaining the LSB.
root interface
root interface
Left rotation of that bits
Left rotation of that Bits
Left rotation of that Bits
Right rotation of that bits
Right rotation of that Bits
Right rotation of that Bits
Set all bits
Set all bits to value
Set all bits to value
Set all bits to value
Set all bits to value
Set baseType to Combinatorial
Remove the direction (in, out, inout) to a signal
Set baseType to reg
Set baseType to Node
Set baseType to Node
Set the baseType to vital
Set the baseType to vital
Recursively set baseType to reg only for output
Recursively set baseType to reg only for output
Set the width of the BitVector
Set the width of the BitVector
the width of the data
the BitVector of a given size
apart by a list of width
apart by a list of width
(List(A(1 downto 0), A(2 downto 4), A(9 downto 3))
val res = A.sliceBy(2, 3, 5) val res = A.sliceBy(List(2, 3, 5))
Split at n st bits
Split at n st bits
(data10bits(8 downto 4), data10bits(3 downto 0))
val res = data10bits.splitAt(4)
Return this BitVector splitted in a Vec[BitVector] of strictly sliceWidth bits
Split this BitVector into slices of at most sliceWidth bits
Split the BitVector into x slice
Split the BitVector into x slice
the width of the slice
allow subdivideIn to generate vectors with varying size
a Vector of slices
val res = myBits.subdivideIn(3 slices)
Take lowest n bits
Take lowest n bits
data10bits(3 downto 0)
val res = data10bits.take(4)
Take highest n bits
Take highest n bits
data10bits(9 downto 6)
val res = data10bits.takeHigh(4)
Cast a Bits to a given data type
Cast a Bits to a given data type
the wanted data type
a new data type assign with the value of Bits
val myUInt = myBits.toDataType(UInt)
Inverse bitwise operator
Hardware logical XOR of all bits
Hardware logical XOR of all bits
Equivalent to this.asBools.reduce(_ ^ _).
Bitwise OR operator
Logical shift left (output width == input width)
Logical shift left (output width == input width)
Logical shift Right (output width == input width)
Logical shift right (output width == input width)
Logical shift right (output width == input width)
the number of shift
a Bits of width : w(this)
val result = myBits |>> 4
(Since version ???) use setAsDirectionLess instead
(Since version ) see corresponding Javadoc for more information.
Generate this if condition is true
Generate this if condition is true
does not work with <>, use 'someBool generate Type()' or 'if(condition) Type() else null' instead
Return the range
Return the range
Use bitsRange instead
The
Bitstype corresponds to a vector of bits that does not convey any arithmetic meaning.BitsDocumentation