diff --git a/litex/build/lattice/diamond.py b/litex/build/lattice/diamond.py index dc3c5146c..3e192d930 100644 --- a/litex/build/lattice/diamond.py +++ b/litex/build/lattice/diamond.py @@ -10,6 +10,8 @@ import shutil from migen.fhdl.structure import _Fragment +from litex.gen.fhdl.verilog import DummyAttrTranslate + from litex.build.generic_platform import * from litex.build import tools from litex.build.lattice import common diff --git a/litex/gen/fhdl/verilog.py b/litex/gen/fhdl/verilog.py index b0fc69fac..e1bd8da4e 100644 --- a/litex/gen/fhdl/verilog.py +++ b/litex/gen/fhdl/verilog.py @@ -198,13 +198,11 @@ def _printattr(attr, attr_translate): firsta = True for attr in sorted(attr, key=lambda x: ("", x) if isinstance(x, str) else x): - # platform-dependent attribute if isinstance(attr, tuple): + # platform-dependent attribute attr_name, attr_value = attr - elif attr not in attr_translate.keys(): - attr_name, attr_value = attr, None - # translated attribute else: + # translated attribute at = attr_translate[attr] if at is None: continue @@ -212,9 +210,8 @@ def _printattr(attr, attr_translate): if not firsta: r += ", " firsta = False - r += attr_name - if attr_value is not None: - r += " = \"" + attr_value + "\"" + const_expr = "\"" + attr_value + "\"" if not isinstance(attr_value, int) else str(attr_value) + r += attr_name + " = " + const_expr if r: r = "(* " + r + " *)" return r @@ -370,9 +367,14 @@ def _printspecials(overrides, specials, ns, add_data_file, attr_translate): return r +class DummyAttrTranslate: + def __getitem__(self, k): + return (k, "true") + + def convert(f, ios=None, name="top", special_overrides=dict(), - attr_translate={}, + attr_translate=DummyAttrTranslate(), create_clock_domains=True, display_run=False, reg_initialization=True,