aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala
diff options
context:
space:
mode:
authorAlbert Chen2020-07-23 09:39:41 -0700
committerGitHub2020-07-23 16:39:41 +0000
commitea558ad79ed0e65df73b5a01ceea690e5b0479ca (patch)
tree5413daebddf2cfa91adc1bae7c7d23fc887b985f /src/main/scala
parentd177add0df50bfd7059557b2b648d101489b7285 (diff)
Update negative literal emission (#1782)
* test const prop of addition of negative literals * Emitter: handle minimum negative values correctly * update expected verilog in AsyncResetSpec
Diffstat (limited to 'src/main/scala')
-rw-r--r--src/main/scala/firrtl/Emitter.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala
index f9787a48..fdfda3e6 100644
--- a/src/main/scala/firrtl/Emitter.scala
+++ b/src/main/scala/firrtl/Emitter.scala
@@ -7,7 +7,7 @@ import java.io.Writer
import scala.collection.mutable
import firrtl.ir._
import firrtl.passes._
-import firrtl.transforms.LegalizeAndReductionsTransform
+import firrtl.transforms.{FixAddingNegativeLiterals, LegalizeAndReductionsTransform}
import firrtl.annotations._
import firrtl.traversals.Foreachers._
import firrtl.PrimOps._
@@ -286,6 +286,7 @@ class VerilogEmitter extends SeqTransform with Emitter {
case SIntLiteral(value, IntWidth(width)) =>
val stringLiteral = value.toString(16)
w write (stringLiteral.head match {
+ case '-' if value == FixAddingNegativeLiterals.minNegValue(width) => s"$width'sh${stringLiteral.tail}"
case '-' => s"-$width'sh${stringLiteral.tail}"
case _ => s"$width'sh${stringLiteral}"
})