c

chisel3

# SInt 

#### sealed class SInt extends Bits with Num[SInt]

A data type for signed integers, represented as a binary bitvector. Defines arithmetic operations between other integer types.

Source
Bits.scala
Linear Supertypes
Num[SInt], Bits, ToBoolable, Element, Data, SourceInfoDoc, NamedComponent, HasId, internal.InstanceId, AnyRef, Any
Ordering
1. Grouped
2. Alphabetic
3. By Inheritance
Inherited
1. SInt
2. Num
3. Bits
4. ToBoolable
5. Element
6. Data
7. SourceInfoDoc
8. NamedComponent
9. HasId
10. InstanceId
11. AnyRef
12. Any
1. Hide All
2. Show All
Visibility
1. Public
2. All

### Value Members

1. final def !=(arg0: Any)
Definition Classes
AnyRef → Any
2. final macro def ##(that: Bits): UInt

Concatenation operator

Concatenation operator

that

a hardware component

returns

this Bits concatenated to the most significant end of `that`

Definition Classes
Bits
Note

The width of the returned Bits is `width of this` + `width of that`.

3. final def ##(): Int
Definition Classes
AnyRef → Any
4. final macro def %(that: SInt): SInt

Modulo operator

Modulo operator

that

a hardware type

returns

the remainder of this numeric-like type divided by `that`

Definition Classes
Num
Note

This method generates a fully combinational divider which can result in significant cycle time and area costs.

5. final macro def &(that: SInt): SInt

Bitwise and operator

Bitwise and operator

that

a hardware SInt

returns

the bitwise and of this SInt and `that`

Note

The width of the returned SInt is `max(width of this, width of that)`.

6. final macro def *(that: UInt): SInt

Multiplication operator

Multiplication operator

that

a hardware SInt

returns

the product of this SInt and `that`

Note

The width of the returned SInt is `width of this` + `width of that`.

,

This method generates a fully combinational multiplier which can result in significant cycle time and area costs.

7. final macro def *(that: SInt): SInt

Multiplication operator

Multiplication operator

that

a hardware type

returns

the product of this numeric-like type and `that`

Definition Classes
Num
Note

The width of the returned hardware type is `width of this` + `width of that`.

,

This method generates a fully combinational multiplier which can result in significant cycle time and area costs.

8. final macro def +(that: SInt): SInt

that

a hardware type

returns

the sum of this numeric-like type and `that`

Definition Classes
Num
Note

The width of the returned hardware type is `max(width of this, width of that)`.

9. final macro def +%(that: SInt): SInt

that

a hardware SInt

returns

the sum of this SInt and `that` shifted right by one

Note

The width of the returned SInt is `max(width of this, width of that)`.

10. final macro def +&(that: SInt): SInt

that

a hardware SInt

returns

the sum of this SInt and `that`

Note

The width of the returned SInt is `max(width of this, width of that) + 1`.

11. final macro def -(that: SInt): SInt

Subtraction operator

Subtraction operator

that

a hardware type

returns

the difference of this numeric-like type less `that`

Definition Classes
Num
Note

The width of the returned hardware type is `max(width of this, width of that) + 1`.

12. final macro def -%(that: SInt): SInt

Subtraction operator (constant width)

Subtraction operator (constant width)

that

a hardware SInt

returns

the difference of this SInt less `that` shifted right by one

Note

The width of the returned SInt is `max(width of this, width of that)`.

13. final macro def -&(that: SInt): SInt

Subtraction operator (increasing width)

Subtraction operator (increasing width)

that

a hardware SInt

returns

the difference of this SInt less `that`

Note

The width of the returned SInt is `max(width of this, width of that) + 1`.

14. final macro def /(that: SInt): SInt

Division operator

Division operator

that

a hardware type

returns

the quotient of this numeric-like type divided by `that`

Definition Classes
Num
To do

full rules

Note

This method generates a fully combinational divider which can result in significant cycle time and area costs.

15. final def :=(that: ⇒ Data)(implicit sourceInfo: SourceInfo, connectionCompileOptions: CompileOptions): Unit

Connect this data to that data mono-directionally and element-wise.

Connect this data to that data mono-directionally and element-wise.

This uses the MonoConnect algorithm.

that

the data to connect to

Definition Classes
Data
16. final macro def <(that: SInt): Bool

Less than operator

Less than operator

that

a hardware type

returns

a hardware Bool asserted if this numeric-like type is less than `that`

Definition Classes
Num
17. final macro def <<(that: UInt): Bits

Dynamic left shift operator

Dynamic left shift operator

that

a hardware component

returns

this Bits dynamically shifted left by `that` many places, shifting in zeros from the right

Definition Classes
Bits
Note

The width of the returned Bits is `width of this + pow(2, width of that) - 1`.

18. final macro def <<(that: Int): Bits

Static left shift operator

Static left shift operator

that

an amount to shift by

returns

this Bits with `that` many zeros concatenated to its least significant end

Definition Classes
Bits
Note

The width of the returned Bits is `width of this` + `that`.

19. final macro def <<(that: BigInt): Bits

Static left shift operator

Static left shift operator

that

an amount to shift by

returns

this Bits with `that` many zeros concatenated to its least significant end

Definition Classes
Bits
Note

The width of the returned Bits is `width of this` + `that`.

20. final macro def <=(that: SInt): Bool

Less than or equal to operator

Less than or equal to operator

that

a hardware type

returns

a hardware Bool asserted if this numeric-like type is less than or equal to `that`

Definition Classes
Num
21. final def <>(that: ⇒ Data)(implicit sourceInfo: SourceInfo, connectionCompileOptions: CompileOptions): Unit

Connect this data to that data bi-directionally and element-wise.

Connect this data to that data bi-directionally and element-wise.

This uses the BiConnect algorithm.

that

the data to connect to

Definition Classes
Data
22. final macro def =/=(that: SInt): Bool

Dynamic not equals operator

Dynamic not equals operator

that

a hardware SInt

returns

a hardware Bool asserted if this SInt is not equal to `that`

23. final def ==(arg0: Any)
Definition Classes
AnyRef → Any
24. final macro def ===(that: SInt): Bool

Dynamic equals operator

Dynamic equals operator

that

a hardware SInt

returns

a hardware Bool asserted if this SInt is equal to `that`

25. final macro def >(that: SInt): Bool

Greater than operator

Greater than operator

that

a hardware component

returns

a hardware Bool asserted if this numeric-like type is greater than `that`

Definition Classes
Num
26. final macro def >=(that: SInt): Bool

Greater than or equal to operator

Greater than or equal to operator

that

a hardware component

returns

a hardware Bool asserted if this numeric-like type is greather than or equal to `that`

Definition Classes
Num
27. final macro def >>(that: UInt): Bits

Dynamic right shift operator

Dynamic right shift operator

that

a hardware component

returns

this Bits dynamically shifted right by the value of `that` component, inserting zeros into the most significant bits.

Definition Classes
Bits
Note

The width of the returned Bits is unchanged, i.e., the `width of this`.

28. final macro def >>(that: Int): Bits

Static right shift operator

Static right shift operator

that

an amount to shift by

returns

this Bits with `that` many least significant bits truncated

Definition Classes
Bits
Note

The width of the returned Bits is unchanged, i.e., the `width of this`.

29. final macro def >>(that: BigInt): Bits

Static right shift operator

Static right shift operator

that

an amount to shift by

returns

this Bits with `that` many least significant bits truncated

Definition Classes
Bits
Note

The width of the returned Bits is unchanged, i.e., the `width of this`.

30. final macro def ^(that: SInt): SInt

Bitwise exclusive or (xor) operator

Bitwise exclusive or (xor) operator

that

a hardware SInt

returns

the bitwise xor of this SInt and `that`

Note

The width of the returned SInt is `max(width of this, width of that)`.

31. final macro def abs(): SInt

Absolute value operator

Absolute value operator

returns

a hardware type with a value equal to the absolute value of this numeric-like type

Definition Classes
Num
Note

The width of the returned hardware type is unchanged, i.e., the `width of this`.

32. final macro def apply(x: BigInt, y: BigInt): UInt

Returns a subset of bits on this Bits from `hi` to `lo` (inclusive), statically addressed.

Returns a subset of bits on this Bits from `hi` to `lo` (inclusive), statically addressed.

x

the high bit

y

the low bit

returns

a hardware component contain the requested bits

Definition Classes
Bits
Example:
1. ```myBits = 0x5 = 0b101
myBits(1,0) => 0b01  // extracts the two least significant bits```
33. final macro def apply(x: Int, y: Int): UInt

Returns a subset of bits on this Bits from `hi` to `lo` (inclusive), statically addressed.

Returns a subset of bits on this Bits from `hi` to `lo` (inclusive), statically addressed.

x

the high bit

y

the low bit

returns

a hardware component contain the requested bits

Definition Classes
Bits
Example:
1. ```myBits = 0x5 = 0b101
myBits(1,0) => 0b01  // extracts the two least significant bits```
34. final macro def apply(x: UInt): Bool

Returns the specified bit on this wire as a Bool, dynamically addressed.

Returns the specified bit on this wire as a Bool, dynamically addressed.

x

a hardware component whose value will be used for dynamic addressing

returns

the specified bit

Definition Classes
Bits
35. final macro def apply(x: Int): Bool

Returns the specified bit on this Bits as a Bool, statically addressed.

Returns the specified bit on this Bits as a Bool, statically addressed.

x

an index

returns

the specified bit

Definition Classes
Bits
Note

convenience method allowing direct use of scala.Int without implicits

36. final macro def apply(x: BigInt): Bool

Returns the specified bit on this Bits as a Bool, statically addressed.

Returns the specified bit on this Bits as a Bool, statically addressed.

x

an index

returns

the specified bit

Definition Classes
Bits
37. final macro def asBool(): Bool

Casts this SInt to a Bool

Casts this SInt to a Bool

Definition Classes
ToBoolable
Note

The width must be known and equal to 1

38. final macro def asBools(): Seq[Bool]

Returns the contents of this wire as a scala.collection.Seq of Bool.

Returns the contents of this wire as a scala.collection.Seq of Bool.

Definition Classes
Bits
39. final macro def asFixedPoint(that: BinaryPoint)

Reinterpret this Bits as a FixedPoint.

Reinterpret this Bits as a FixedPoint.

Definition Classes
Bits
Note

The value is not guaranteed to be preserved. For example, a UInt of width 3 and value 7 (0b111) would become a FixedPoint with value -1. The interpretation of the number is also affected by the specified binary point. Caution is advised!

40. final def asInstanceOf[T0]: T0
Definition Classes
Any
41. final macro def asInterval(that: IntervalRange)

Reinterpret cast as a Interval.

Reinterpret cast as a Interval.

Definition Classes
Bits
Note

value not guaranteed to be preserved: for example, an UInt of width 3 and value 7 (0b111) would become a FixedInt with value -1, the interpretation of the number is also affected by the specified binary point. Caution advised

42. final macro def asSInt(): SInt

Reinterpret this Bits as an SInt

Reinterpret this Bits as an SInt

Definition Classes
Bits
Note

The arithmetic value is not preserved if the most-significant bit is set. For example, a UInt of width 3 and value 7 (0b111) would become an SInt of width 3 and value -1.

43. macro def asTypeOf[T <: Data](that: T): T

Does a reinterpret cast of the bits in this node into the format that provides.

Does a reinterpret cast of the bits in this node into the format that provides. Returns a new Wire of that type. Does not modify existing nodes.

x.asTypeOf(that) performs the inverse operation of x := that.toBits.

Definition Classes
Data
Note

bit widths are NOT checked, may pad or drop bits from input

,

that should have known widths

44. final macro def asUInt(): UInt

Reinterpret cast to UInt.

Reinterpret cast to UInt.

Definition Classes
Data
Note

value not guaranteed to be preserved: for example, a SInt of width 3 and value -1 (0b111) would become an UInt with value 7

,

Aggregates are recursively packed with the first element appearing in the least-significant bits of the result.

45. def autoSeed(name: String): SInt.this.type

Takes the last seed suggested.

Takes the last seed suggested. Multiple calls to this function will take the last given seed, unless this HasId is a module port (see overridden method in Data.scala).

If the final computed name conflicts with the final name of another signal, the final name may get uniquified by appending a digit at the end of the name.

Is a lower priority than suggestName, in that regardless of whether autoSeed was called, suggestName will always take precedence if it was called.

returns

this object

Definition Classes
Data → HasId
46. def binding: Option[Binding]
Attributes
protected[chisel3]
Definition Classes
Data
47. def bindingToString: String
Attributes
protected
Definition Classes
Data
48. def binding_=(target: Binding): Unit
Attributes
protected
Definition Classes
Data
49. def circuitName: String
Attributes
protected
Definition Classes
HasId
50. def clone()
Attributes
protected[lang]
Definition Classes
AnyRef
Annotations
@throws( ... ) @native()
51. def cloneType: SInt.this.type

Internal API; Chisel users should look at chisel3.chiselTypeOf(...).

Internal API; Chisel users should look at chisel3.chiselTypeOf(...).

cloneType must be defined for any Chisel object extending Data. It is responsible for constructing a basic copy of the object being cloned.

returns

a copy of the object.

Definition Classes
BitsData
52. def computeName(defaultPrefix: Option[String], defaultSeed: Option[String]): Option[String]

Computes the name of this HasId, if one exists

Computes the name of this HasId, if one exists

defaultPrefix

Optionally provide a default prefix for computing the name

defaultSeed

Optionally provide default seed for computing the name

returns

the name, if it can be computed

Definition Classes
HasId
53. def do_##(that: Bits)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt

Definition Classes
Bits
54. def do_%(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntNum
55. def do_&(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

56. def do_*(that: UInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

57. def do_*(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntNum
58. def do_+(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

add (default - no growth) operator

add (default - no growth) operator

Definition Classes
SIntNum
59. def do_+%(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

60. def do_+&(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

61. def do_-(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

subtract (default - no growth) operator

subtract (default - no growth) operator

Definition Classes
SIntNum
62. def do_-%(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

63. def do_-&(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

64. def do_/(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntNum
65. def do_<(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
SIntNum
66. def do_<<(that: UInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
67. def do_<<(that: BigInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
68. def do_<<(that: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
69. def do_<=(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
SIntNum
70. def do_=/=(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

71. def do_===(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

72. def do_>(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
SIntNum
73. def do_>=(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
SIntNum
74. def do_>>(that: UInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
75. def do_>>(that: BigInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
76. def do_>>(that: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
77. def do_^(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

78. def do_abs(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntNum
79. final def do_apply(x: BigInt, y: BigInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt

Definition Classes
Bits
80. final def do_apply(x: Int, y: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt

Definition Classes
Bits
81. final def do_apply(x: UInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
Bits
82. final def do_apply(x: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
Bits
83. final def do_apply(x: BigInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
Bits
84. final def do_asBool(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
Bits → ToBoolable
85. def do_asBools(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Seq[Bool]

Definition Classes
Bits
86. def do_asFixedPoint(binaryPoint: BinaryPoint)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions)

Definition Classes
SIntBits
87. def do_asInterval(range: IntervalRange = IntervalRange.Unknown)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions)
Definition Classes
SIntBits
88. def do_asSInt(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
89. def do_asTypeOf[T <: Data](that: T)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): T

Definition Classes
Data
90. def do_asUInt(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt

Definition Classes
SIntData
91. def do_head(n: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt

Definition Classes
Bits
92. def do_max(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
Num
93. def do_min(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
Num
94. def do_pad(that: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt.this.type

Definition Classes
Bits
95. def do_tail(n: Int)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt

Definition Classes
Bits
96. def do_unary_~(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

Definition Classes
SIntBits
97. def do_|(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

98. final def eq(arg0: AnyRef)
Definition Classes
AnyRef
99. def equals(that: Any)
Definition Classes
HasId → AnyRef → Any
100. def finalize(): Unit
Attributes
protected[lang]
Definition Classes
AnyRef
Annotations
@throws( classOf[java.lang.Throwable] )
101. final def getClass(): Class[_]
Definition Classes
AnyRef → Any
Annotations
@native()
102. final def getWidth: Int

Returns the width, in bits, if currently known.

Returns the width, in bits, if currently known.

Definition Classes
Data
103. def hasSeed

returns

Whether either autoName or suggestName has been called

Definition Classes
HasId
104. def hashCode(): Int
Definition Classes
HasId → AnyRef → Any
105. final macro def head(n: Int): UInt

n

the number of bits to take

returns

The `n` most significant bits of this Bits

Definition Classes
Bits
106. def instanceName: String
Definition Classes
HasId → InstanceId
107. final def isInstanceOf[T0]
Definition Classes
Any
108. def isLit()
Definition Classes
Data
109. final def isWidthKnown

Returns whether the width is currently known.

Returns whether the width is currently known.

Definition Classes
Data
110. def litOption(): Option[BigInt]

If this is a literal that is representable as bits, returns the value as a BigInt.

If this is a literal that is representable as bits, returns the value as a BigInt. If not a literal, or not representable as bits (for example, is or contains Analog), returns None.

Definition Classes
ElementData
111. def litValue()

Returns the literal value if this is a literal that is representable as bits, otherwise crashes.

Returns the literal value if this is a literal that is representable as bits, otherwise crashes.

Definition Classes
Data
112. final macro def max(that: SInt): SInt

Maximum operator

Maximum operator

that

a hardware type

returns

a hardware type with a value equal to the mimimum value of this numeric-like type and `that`

Definition Classes
Num
Note

The width of the returned hardware type is `max(width of this, width of that)`.

113. final macro def min(that: SInt): SInt

Minimum operator

Minimum operator

that

a hardware numeric-like type

returns

a hardware type with a value equal to the mimimum value of this numeric-like type and `that`

Definition Classes
Num
Note

The width of the returned hardware type is `max(width of this, width of that)`.

114. def name: String
Definition Classes
Element
115. final def ne(arg0: AnyRef)
Definition Classes
AnyRef
116. final def notify(): Unit
Definition Classes
AnyRef
Annotations
@native()
117. final def notifyAll(): Unit
Definition Classes
AnyRef
Annotations
@native()
118. final macro def pad(that: Int): SInt.this.type

that

returns

this @coll zero padded up to width `that`. If `that` is less than the width of the original component, this method returns the original component.

Definition Classes
Bits
Note

For SInts only, this will do sign extension.

119. def parentModName: String
Definition Classes
HasId → InstanceId
120. def parentPathName: String
Definition Classes
HasId → InstanceId
121. def pathName: String
Definition Classes
HasId → InstanceId
122. def suggestName(seed: ⇒ String): SInt.this.type

Takes the first seed suggested.

Takes the first seed suggested. Multiple calls to this function will be ignored. If the final computed name conflicts with another name, it may get uniquified by appending a digit at the end.

Is a higher priority than autoSeed, in that regardless of whether autoSeed was called, suggestName will always take precedence.

seed

The seed for the name of this component

returns

this object

Definition Classes
HasId
123. final def synchronized[T0](arg0: ⇒ T0): T0
Definition Classes
AnyRef
124. final macro def tail(n: Int): UInt

Tail operator

Tail operator

n

the number of bits to remove

returns

This Bits with the `n` most significant bits removed.

Definition Classes
Bits
125. final def toAbsoluteTarget

Returns a FIRRTL IsMember that refers to the absolute path to this object in the elaborated hardware graph

Returns a FIRRTL IsMember that refers to the absolute path to this object in the elaborated hardware graph

Definition Classes
NamedComponent → InstanceId
126. final macro def toBool(): Bool

Casts this SInt to a Bool

Casts this SInt to a Bool

Definition Classes
ToBoolable
Note

The width must be known and equal to 1

127. final macro def toBools(): Seq[Bool]

Returns the contents of this wire as a scala.collection.Seq of Bool.

Returns the contents of this wire as a scala.collection.Seq of Bool.

Definition Classes
Bits
128. final def toNamed

Returns a FIRRTL ComponentName that references this object

Returns a FIRRTL ComponentName that references this object

Definition Classes
NamedComponent → InstanceId
Note

Should not be called until circuit elaboration is complete

129. final def toPrintable

Default print as Decimal

Default print as Decimal

Definition Classes
BitsData
130. def toString(): String
Definition Classes
SInt → AnyRef → Any
131. final def toTarget

Returns a FIRRTL ReferenceTarget that references this object

Returns a FIRRTL ReferenceTarget that references this object

Definition Classes
NamedComponent → InstanceId
Note

Should not be called until circuit elaboration is complete

132. def unary_-(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

133. final macro def unary_-(): SInt

Unary negation (expanding width)

Unary negation (expanding width)

returns

a hardware SInt equal to zero minus this SInt

Note

The width of the returned SInt is unchanged, i.e., `width of this`.

134. def unary_-%(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): SInt

135. final macro def unary_-%(): SInt

Unary negation (constant width)

Unary negation (constant width)

returns

a hardware SInt equal to zero minus `this` shifted right by one

Note

The width of the returned SInt is unchanged, i.e., `width of this`.

136. final macro def unary_~(): Bits

Bitwise inversion operator

Bitwise inversion operator

returns

this Bits with each bit inverted

Definition Classes
Bits
137. final def validateShiftAmount(x: Int): Int
Attributes
protected
Definition Classes
Bits
138. final def wait(): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
139. final def wait(arg0: Long, arg1: Int): Unit
Definition Classes
AnyRef
Annotations
@throws( ... )
140. final def wait(arg0: Long): Unit
Definition Classes
AnyRef
Annotations
@throws( ... ) @native()
141. def widthKnown
Definition Classes
Element
142. final def widthOption: Option[Int]

Returns Some(width) if the width is known, else None.

Returns Some(width) if the width is known, else None.

Definition Classes
Data
143. final macro def |(that: SInt): SInt

Bitwise or operator

Bitwise or operator

that

a hardware SInt

returns

the bitwise or of this SInt and `that`

Note

The width of the returned SInt is `max(width of this, width of that)`.

### Deprecated Value Members

1. final def !=(that: SInt)(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool
Annotations
@chiselRuntimeDeprecated() @deprecated
Deprecated

(Since version 3.0) Use '=/=', which avoids potential precedence problems

2. final def do_toBool(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Bool

Definition Classes
Bits → ToBoolable
Annotations
@chiselRuntimeDeprecated() @deprecated
Deprecated

(Since version 3.2) Use asBool instead

3. def do_toBools(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): Seq[Bool]

Definition Classes
Bits
Annotations
@chiselRuntimeDeprecated() @deprecated
Deprecated

(Since version 3.2) Use asBools instead

4. def litArg(): Option[LitArg]
Definition Classes
Data
Annotations
@chiselRuntimeDeprecated() @deprecated
Deprecated

(Since version 3.2) litArg is deprecated, use litOption or litTo*Option

### Arithmetic

Arithmetic hardware operators

### Bitwise

Bitwise hardware operators

### Comparison

Comparison hardware operators

### Connect

Utilities for connecting hardware components

### SourceInfoTransformMacro

These internal methods are not part of the public-facing API!

The equivalent public-facing methods do not have the `do_` prefix or have the same name. Use and look at the documentation for those. If you want left shift, use `<<`, not `do_<<`. If you want conversion to a Seq of Bools look at the `asBools` above, not the one below. Users can safely ignore every method in this group!

🐉🐉🐉 Here be dragons... 🐉🐉🐉

These `do_X` methods are used to enable both implicit passing of SourceInfo and chisel3.CompileOptions while also supporting chained apply methods. In effect all "normal" methods that you, as a user, will use in your designs, are converted to their "hidden", `do_*`, via macro transformations. Without using macros here, only one of the above wanted behaviors is allowed (implicit passing and chained applies)---the compiler interprets a chained apply as an explicit 'implicit' argument and will throw type errors.

The "normal", public-facing methods then take no SourceInfo. However, a macro transforms this public-facing method into a call to an internal, hidden `do_*` that takes an explicit SourceInfo by inserting an `implicitly[SourceInfo]` as the explicit argument.