aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala
diff options
context:
space:
mode:
authorazidar2016-01-31 12:59:31 -0800
committerazidar2016-02-09 18:57:06 -0800
commite985d47312458459e9ebe42fe99b5a063c08e637 (patch)
treed726c711e86d6e948a220a568dcae0a997629d18 /src/main/scala
parent2bd423fa061fb3e0973fa83e98f2877fd4616746 (diff)
Changed stanza output of UInt/SInt to include widths. Made tests match accordingly
Diffstat (limited to 'src/main/scala')
-rw-r--r--src/main/scala/firrtl/Visitor.scala10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main/scala/firrtl/Visitor.scala b/src/main/scala/firrtl/Visitor.scala
index e9bc633c..56d3bbe7 100644
--- a/src/main/scala/firrtl/Visitor.scala
+++ b/src/main/scala/firrtl/Visitor.scala
@@ -164,14 +164,20 @@ class Visitor(val fullFilename: String) extends FIRRTLBaseVisitor[AST]
val (width, value) =
if (ctx.getChildCount > 4)
(IntWidth(string2BigInt(ctx.IntLit(0).getText)), string2BigInt(ctx.IntLit(1).getText))
- else (UnknownWidth(), string2BigInt(ctx.IntLit(0).getText))
+ else {
+ val bigint = string2BigInt(ctx.IntLit(0).getText)
+ (IntWidth(BigInt(bigint.bitLength)),bigint)
+ }
UIntValue(value, width)
}
case "SInt" => {
val (width, value) =
if (ctx.getChildCount > 4)
(IntWidth(string2BigInt(ctx.IntLit(0).getText)), string2BigInt(ctx.IntLit(1).getText))
- else (UnknownWidth(), string2BigInt(ctx.IntLit(0).getText))
+ else {
+ val bigint = string2BigInt(ctx.IntLit(0).getText)
+ (IntWidth(BigInt(bigint.bitLength + 1)),bigint)
+ }
SIntValue(value, width)
}
case "validif(" => ValidIf(visitExp(ctx.exp(0)), visitExp(ctx.exp(1)), UnknownType())