import os import re import subprocess import itertools from .._yosys import * from . import rtlil __all__ = ["YosysError", "convert", "convert_fragment"] def _convert_rtlil_text(rtlil_text, *, strip_internal_attrs=False, write_verilog_opts=()): # this version requirement needs to be synchronized with the one in setup.py! yosys = find_yosys(lambda ver: ver >= (0, 9)) yosys_version = yosys.version() attr_map = [] if strip_internal_attrs: 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") return yosys.run(["-q", "-"], """ # Convert nMigen's RTLIL to readable Verilog. read_ilang <