aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala')
-rw-r--r--src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala b/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala
index f1650ad7..bc4996df 100644
--- a/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala
+++ b/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala
@@ -7,7 +7,7 @@ import firrtl.PrimOps._
import firrtl.Utils._
import firrtl.WrappedExpression._
import firrtl.traversals.Foreachers._
-import firrtl.annotations.{CircuitTarget, ReferenceTarget, SingleTargetAnnotation}
+import firrtl.annotations.{CircuitTarget, MemoryLoadFileType, ReferenceTarget, SingleTargetAnnotation}
import firrtl.passes.LowerTypes
import firrtl.passes.MemPortUtils._
import firrtl.stage.TransformManager
@@ -849,6 +849,16 @@ class VerilogEmitter extends SeqTransform with Emitter {
rstring,
";"
)
+ case MemoryFileInlineInit(filename, hexOrBinary) =>
+ val readmem = hexOrBinary match {
+ case MemoryLoadFileType.Binary => "$readmemb"
+ case MemoryLoadFileType.Hex => "$readmemh"
+ }
+ val inlineLoad = s"""
+ |initial begin
+ | $readmem("$filename", ${s.name});
+ |end""".stripMargin
+ memoryInitials += Seq(inlineLoad)
}
}