Skip to content

Commit 40f1863

Browse files
authored
Merge pull request #399 from vegaluisjose/improve_rom
Improve rom verilog output
2 parents 0e6fdae + e3cbf0c commit 40f1863

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

pyrtl/importexport.py

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -758,16 +758,18 @@ def _to_verilog_memories(file, block, varname):
758758
memories = {n.op_param[1] for n in block.logic_subset('m@')}
759759
for m in sorted(memories, key=lambda m: m.id):
760760
print(' // Memory mem_{}: {}'.format(m.id, m.name), file=file)
761-
print(' always @(posedge clk)', file=file)
762-
print(' begin', file=file)
763-
for net in _net_sorted(block.logic_subset('@'), varname):
764-
if net.op_param[1] == m:
765-
t = (varname(net.args[2]), net.op_param[0],
766-
varname(net.args[0]), varname(net.args[1]))
767-
print((' if (%s) begin\n'
768-
' mem_%s[%s] <= %s;\n'
769-
' end') % t, file=file)
770-
print(' end', file=file)
761+
writes = _net_sorted(block.logic_subset('@'), varname)
762+
if writes:
763+
print(' always @(posedge clk)', file=file)
764+
print(' begin', file=file)
765+
for net in writes:
766+
if net.op_param[1] == m:
767+
t = (varname(net.args[2]), net.op_param[0],
768+
varname(net.args[0]), varname(net.args[1]))
769+
print((' if (%s) begin\n'
770+
' mem_%s[%s] <= %s;\n'
771+
' end') % t, file=file)
772+
print(' end', file=file)
771773
for net in _net_sorted(block.logic_subset('m'), varname):
772774
if net.op_param[1] == m:
773775
dest = varname(net.dests[0])

0 commit comments

Comments
 (0)