From 228c9a4b7432ac52178d63b8f27fe064aec71e9c Mon Sep 17 00:00:00 2001 From: Jack Koenig Date: Fri, 24 May 2019 14:37:52 -0700 Subject: Emit legal Verilog literals for ExtModule IntParams > 32-bit (#1087) Emit Verilog IntParams that fit in 32-bits as Integer literals --- src/main/scala/firrtl/Emitter.scala | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/main') diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala index 3bbba289..27348c6a 100644 --- a/src/main/scala/firrtl/Emitter.scala +++ b/src/main/scala/firrtl/Emitter.scala @@ -204,7 +204,15 @@ class VerilogEmitter extends SeqTransform with Emitter { } /** Turn Params into Verilog Strings */ def stringify(param: Param): String = param match { - case IntParam(name, value) => s".$name($value)" + case IntParam(name, value) => + val lit = + if (value.isValidInt) { + s"$value" + } else { + val blen = value.bitLength + if (value > 0) s"$blen'd$value" else s"-${blen+1}'sd${value.abs}" + } + s".$name($lit)" case DoubleParam(name, value) => s".$name($value)" case StringParam(name, value) => s".${name}(${value.verilogEscape})" case RawStringParam(name, value) => s".$name($value)" -- cgit v1.2.3