Used to know the data type of the children class of BitVector
Concatenation between two data
Concatenation between two data
Modulo
Logical AND operator
Multiplication
Addition
Safe Addition with 1 bit expand
Safe Addition with saturation
Substraction
Safe Substraction with 1 bit expand
Safe Substraction with saturation
Division
Assign a range value to a SInt
Assign a range value to a SInt
The first range value
Others range values
core.io.interrupt = (0 -> uartCtrl.io.interrupt, 1 -> timerCtrl.io.interrupt, default -> false)
Assign a data to this
Assign a data to this
Is less than right
Logical shift Left (output width will increase of : w(this) + max(that) bits
Logical left shift (w(T) = w(this) + shift)
Is equal or less than right
Auto connection between two data
Auto connection between two data
BitVector is not equal to MaskedLiteral
BitVector is not equal to MaskedLiteral
Comparison between two data
Comparison between two data
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"
Is greater than right
Is equal or greater than right
Logical shift Right (output width == input width)
Logical shift Right (output width == input width)
the number of right shift
a Bits of width : w(this)
val result = mySInt >> myUIntShift
Logical right shift (w(T) = w(this) - shift)
Concatenation between a SInt and a Bool
Concatenation between a SInt and UInt
Concatenation between two SInt
Concatenation between two SInt
an SInt to append
a new SInt of width (width(this) + width(right))
val mySInt = sInt1 @@ sInt2
Use as \= to have the same behavioral as VHDL variable
Use as \= to have the same behavioral as VHDL variable
Logical XOR operator
Allow a data to be overrided
Allow a data to be overrided
Logical AND of all bits
Logical AND of all bits
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 data to Bits
Cast the BitVector into a Vector of Bool
set a data as inout
Set a data as input
Set a data as output
Cast a SInt into an UInt
Cast a SInt into an UInt
a UInt data
myUInt := mySInt.asUInt
SInt ceil
lowest n bits Round Operation by BitCount
lowest n bits Round Operation by BitCount
SInt roundUp lowest m bits, friendly for hardware timing and area sign * ceil(abs(x))
Clear all bits
Clear all bits
Set a default value to a data
Set a default value to a data
Drop lowerst n bits
Drop lowerst 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 data
flip the direction of the data
return w(this)-n bits
SInt roundUp lowest m bits, friendly for hardware timing and area sign * floor(abs(x))
Generate this if condition is true
Generate this if condition is true
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 data 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 to a data
Set initial value to a data
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 maximum value between this and right
Return the maximum value between this and right
Return the minimum value between this and right
Return the minimum value between this and right
Return the most significant bit
Return the most significant bit
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
Logical OR of all bits
Logical OR of all bits
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
Resize the bitVector to width
Resized data regarding target
Resized data regarding target
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
SInt roundDown lowest m bits, complex for hardware , not recommended The algorithm represented by python code : ceil(x - 0.5)
SInt roundToInf sign * floor(abs(x) + 0.5)
SInt roundToZero The algorithm represented by python code : sign * ceil(abs(x) - 0.5)
SInt roundUp lowest m bits, friendly for hardware timing and area floor(x + 0.5)
Saturation highest m 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 data
Set baseType to reg
Set baseType to Node
Set baseType to Node
Set the baseType to vital
Set the baseType to vital
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)
Split the BitVector into slice of x bits * @example
Split the BitVector into slice of x bits * @example
val res = myBits.subdiviedIn(3 bits)
the width of the slice
a Vector of slices
Split the BitVector into x slice
Split the BitVector into x slice
the width of the slice
a Vector of slices
val res = myBits.subdiviedIn(3 slices)
SInt symmetric
SInt symmetric
return a SInt which minValue equal -maxValue
val symmetrySInt = mySInt.symmetry
Take lowerst n bits
Take lowerst 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)
highest m bits Discard
Negative number
Negative number
return a negative number
val result = -mySInt
Inverse bitwise operator
Logical XOR of all bits
Logical XOR of all bits
Logical 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 right shift
a Bits of width : w(this)
val result = myUInt |>> 4
(Since version ???) use setAsDirectionLess instead
(Since version ) see corresponding Javadoc for more information.
Return the range
Return the range
Use bitsRange instead
The SInt type corresponds to a vector of bits that can be used for signed integer arithmetic.
SInt Documentation