diff options
| author | ducky | 2018-07-01 12:40:25 -0700 |
|---|---|---|
| committer | Richard Lin | 2018-07-04 18:39:28 -0500 |
| commit | 94bde13444b956b2ef3c3cf7e94870b1d890f65d (patch) | |
| tree | 95d478dc89be94c2a419cd997c4e809952aa73c8 /chiselFrontend/src/main | |
| parent | a931abe0cf57481b47093b5950d3bffd9575f803 (diff) | |
Prefer litValue, eliminate litToBigInt
Diffstat (limited to 'chiselFrontend/src/main')
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") |
