aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/scala/firrtl/Emitter.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/Emitter.scala b/src/main/scala/firrtl/Emitter.scala
index 36e4929a..eb219b6d 100644
--- a/src/main/scala/firrtl/Emitter.scala
+++ b/src/main/scala/firrtl/Emitter.scala
@@ -454,7 +454,9 @@ class VerilogEmitter extends Emitter with PassBased {
instdeclares += Seq(");")
sx
case sx: DefMemory =>
- declare("reg", sx.name, VectorType(sx.dataType, sx.depth))
+ val fullSize = sx.depth * (sx.dataType match { case GroundType(IntWidth(width)) => width })
+ val decl = if (fullSize > (1 << 29)) "reg /* sparse */" else "reg"
+ declare(decl, sx.name, VectorType(sx.dataType, sx.depth))
initialize_mem(sx)
if (sx.readLatency != 0 || sx.writeLatency != 1)
throw EmitterException("All memories should be transformed into " +