summaryrefslogtreecommitdiff
path: root/chiselFrontend
diff options
context:
space:
mode:
Diffstat (limited to 'chiselFrontend')
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala2
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/Bits.scala10
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/Clock.scala2
-rw-r--r--chiselFrontend/src/main/scala/chisel3/core/Data.scala13
4 files changed, 12 insertions, 15 deletions
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala b/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala
index 9bb24e43..b1e86ea7 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/Aggregate.scala
@@ -62,7 +62,7 @@ sealed abstract class Aggregate extends Data {
}
}
- def litToBigIntOption: Option[BigInt] = ??? // TODO implement me
+ override def litOption = ??? // TODO implement me
// Returns the LitArg of a Bits object.
// Internal API for Bundle literals, to copy the LitArg of argument literals into the top map.
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Bits.scala b/chiselFrontend/src/main/scala/chisel3/core/Bits.scala
index a8ebab1b..b54b5e11 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/Bits.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/Bits.scala
@@ -86,7 +86,7 @@ sealed abstract class Bits(width: Width)
case _ => None
}
- override def litToBigIntOption: Option[BigInt] = litArgOption.map(_.num)
+ override def litOption: Option[BigInt] = litArgOption.map(_.num)
private[core] def litIsForcedWidth: Option[Boolean] = litArgOption.map(_.forcedWidth)
// provide bits-specific literal handling functionality here
@@ -764,7 +764,7 @@ sealed class Bool() extends UInt(1.W) with Reset {
new Bool().asInstanceOf[this.type]
}
- def litToBooleanOption: Option[Boolean] = litToBigIntOption.map {
+ def litToBooleanOption: Option[Boolean] = litOption.map {
case intVal if intVal == 1 => true
case intVal if intVal == 0 => false
case intVal => throwException(s"Boolean with unexpected literal value $intVal")
@@ -851,7 +851,7 @@ sealed class FixedPoint private (width: Width, val binaryPoint: BinaryPoint)
case _ => this badConnect that
}
- def litToDoubleOption: Option[Double] = litToBigIntOption.map { intVal =>
+ def litToDoubleOption: Option[Double] = litOption.map { intVal =>
val multiplier = math.pow(2, binaryPoint.get)
intVal.toDouble / multiplier
}
@@ -1125,6 +1125,8 @@ final class Analog private (width: Width) extends Element(width) {
private[core] override def typeEquivalent(that: Data): Boolean =
that.isInstanceOf[Analog] && this.width == that.width
+ override def litOption = None
+
def cloneType: this.type = new Analog(width).asInstanceOf[this.type]
// Used to enforce single bulk connect of Analog types, multi-attach is still okay
@@ -1153,8 +1155,6 @@ final class Analog private (width: Width) extends Element(width) {
binding = target
}
- override def litToBigIntOption = None
-
override def do_asUInt(implicit sourceInfo: SourceInfo, compileOptions: CompileOptions): UInt =
throwException("Analog does not support asUInt")
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Clock.scala b/chiselFrontend/src/main/scala/chisel3/core/Clock.scala
index 55f76160..b728075b 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/Clock.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/Clock.scala
@@ -23,7 +23,7 @@ sealed class Clock extends Element(Width(1)) {
case _ => super.badConnect(that)(sourceInfo)
}
- override def litToBigIntOption = None
+ override def litOption = None
/** Not really supported */
def toPrintable: Printable = PString("CLOCK")
diff --git a/chiselFrontend/src/main/scala/chisel3/core/Data.scala b/chiselFrontend/src/main/scala/chisel3/core/Data.scala
index 466f976e..171a2bff 100644
--- a/chiselFrontend/src/main/scala/chisel3/core/Data.scala
+++ b/chiselFrontend/src/main/scala/chisel3/core/Data.scala
@@ -385,29 +385,26 @@ abstract class Data extends HasId with NamedComponent {
final def <> (that: Data)(implicit sourceInfo: SourceInfo, connectionCompileOptions: CompileOptions): Unit = this.bulkConnect(that)(sourceInfo, connectionCompileOptions)
@chiselRuntimeDeprecated
- @deprecated("litArg is deprecated, use litToBigIntOption or litTo*Option", "chisel3.2")
+ @deprecated("litArg is deprecated, use litOption or litTo*Option", "chisel3.2")
def litArg(): Option[LitArg] = topBindingOpt match {
case Some(ElementLitBinding(litArg)) => Some(litArg)
case Some(BundleLitBinding(litMap)) => None // this API does not support Bundle literals
case _ => None
}
@chiselRuntimeDeprecated
- @deprecated("litValue deprecated, use litToBigInt or litTo*", "chisel3.2")
- def litValue(): BigInt = litArg.get.num
- @chiselRuntimeDeprecated
- @deprecated("isLit is deprecated, use litToBigIntOption or litTo*Option", "chisel3.2")
+ @deprecated("isLit is deprecated, use litOption.isDefined", "chisel3.2")
def isLit(): Boolean = litArg.isDefined
/**
* 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.
*/
- def litToBigIntOption: Option[BigInt]
+ def litOption(): Option[BigInt]
/**
* Returns the literal value if this is a literal that is representable as bits, otherwise crashes.
*/
- def litToBigInt: BigInt = litToBigIntOption.get
+ def litValue(): BigInt = litOption.get
/** Returns the width, in bits, if currently known.
* @throws java.util.NoSuchElementException if the width is not known. */
@@ -518,7 +515,7 @@ object DontCare extends Element(width = UnknownWidth()) {
bind(DontCareBinding(), SpecifiedDirection.Output)
override def cloneType = DontCare
- override def litToBigIntOption = None
+ override def litOption = None
def toPrintable: Printable = PString("DONTCARE")