From 9120df2fac77b2ba7f0372e2ff9ad7f321d66978 Mon Sep 17 00:00:00 2001 From: Jim Lawson Date: Thu, 14 Mar 2019 14:26:33 -0700 Subject: Decouple implementation details from LoadMemoryAnnotation. (#1034) --- src/main/scala/chisel3/util/experimental/LoadMemoryTransform.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/scala/chisel3/util/experimental/LoadMemoryTransform.scala b/src/main/scala/chisel3/util/experimental/LoadMemoryTransform.scala index e8967601..5e78fa34 100644 --- a/src/main/scala/chisel3/util/experimental/LoadMemoryTransform.scala +++ b/src/main/scala/chisel3/util/experimental/LoadMemoryTransform.scala @@ -168,6 +168,10 @@ class LoadMemoryTransform extends Transform { memoryAnnotations.get(fullMemoryName) match { case Some(lma @ LoadMemoryAnnotation(ComponentName(componentName, moduleName), _, hexOrBinary, _)) => val writer = new java.io.StringWriter + val readmem = hexOrBinary match { + case MemoryLoadFileType.Binary => "$readmemb" + case MemoryLoadFileType.Hex => "$readmemh" + } modulesByName.get(moduleName.name).foreach { module => val renderer = verilogEmitter.getRenderer(module, modulesByName)(writer) @@ -178,7 +182,7 @@ class LoadMemoryTransform extends Transform { renderer.emitVerilogBind(bindsToName, s""" |initial begin - | $$readmem$hexOrBinary("$loadFileName", ${myModule.name}.$componentName); + | $readmem("$loadFileName", ${myModule.name}.$componentName); |end """.stripMargin) val inLineText = writer.toString + "\n" + -- cgit v1.2.3