diff --git a/nmigen/back/verilog.py b/nmigen/back/verilog.py index cb684ab..1d2cb4a 100644 --- a/nmigen/back/verilog.py +++ b/nmigen/back/verilog.py @@ -10,39 +10,36 @@ def _convert_rtlil_text(rtlil_text, *, strip_internal_attrs=False, write_verilog yosys = find_yosys(lambda ver: ver >= (0, 9)) yosys_version = yosys.version() - attr_map = [] + script = [] + script.append("read_ilang <= (0, 9, 231): + # Yosys 0.9 release has buggy proc_prune. + script.append("delete w:$verilog_initial_trigger") + script.append("proc_prune") + script.append("proc_init") + script.append("proc_arst") + script.append("proc_dff") + script.append("proc_clean") + script.append("memory_collect") + if strip_internal_attrs: + attr_map = [] attr_map.append("-remove generator") attr_map.append("-remove top") attr_map.append("-remove src") attr_map.append("-remove nmigen.hierarchy") attr_map.append("-remove nmigen.decoding") + script.append("attrmap {}".format(" ".join(attr_map))) + script.append("attrmap -modattr {}".format(" ".join(attr_map))) - return yosys.run(["-q", "-"], """ -# Convert nMigen's RTLIL to readable Verilog. -read_ilang <