blob: c1c6b1dbc7f34d1118e9bd4d09d775d4aa98a502 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
// See LICENSE for license details.
package chisel3
import chisel3.internal.firrtl.{IntervalRange, SLit, Width}
trait SIntFactory {
/** Create an SInt type with inferred width. */
def apply(): SInt = apply(Width())
/** Create a SInt type or port with fixed width. */
def apply(width: Width): SInt = new SInt(width)
/** Create a SInt with the specified range */
def apply(range: IntervalRange): SInt = {
apply(range.getWidth)
}
/** Create an SInt literal with specified width. */
// scalastyle:off method.name
protected[chisel3] def Lit(value: BigInt, width: Width): SInt = {
val lit = SLit(value, width)
val result = new SInt(lit.width)
lit.bindLitArg(result)
}
}
|