diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala b/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala index f48e4846..30d2e891 100644 --- a/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala +++ b/src/main/scala/firrtl/backends/verilog/VerilogEmitter.scala @@ -900,14 +900,8 @@ class VerilogEmitter extends SeqTransform with Emitter { case MemoryLoadFileType.Binary => "$readmemb" case MemoryLoadFileType.Hex => "$readmemh" } - if (emissionOptions.emitMemoryInitAsNoSynth) { - memoryInitials += Seq(s"""$readmem("$filename", ${s.name});""") - } else { - val inlineLoad = s"""initial begin - | $readmem("$filename", ${s.name}); - | end""".stripMargin - memoryInitials += Seq(inlineLoad) - } + memoryInitials += Seq(s"""$readmem("$filename", ${s.name});""") + case MemoryNoInit => // do nothing } @@ -1292,8 +1286,10 @@ class VerilogEmitter extends SeqTransform with Emitter { emit(Seq("`FIRRTL_AFTER_INITIAL")) emit(Seq("`endif")) emit(Seq("`endif // SYNTHESIS")) - if (!emissionOptions.emitMemoryInitAsNoSynth) { + if (!emissionOptions.emitMemoryInitAsNoSynth && !memoryInitials.isEmpty) { + emit(Seq("initial begin")) for (x <- memoryInitials) emit(Seq(tab, x)) + emit(Seq("end")) } } |
