Merge pull request #319 from DurandA/feature-integer-attributes

Add integer attributes
This commit is contained in:
enjoy-digital 2019-12-21 21:30:09 +01:00 committed by GitHub
commit e754c0555a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 8 deletions

View File

@ -10,6 +10,8 @@ import shutil
from migen.fhdl.structure import _Fragment from migen.fhdl.structure import _Fragment
from litex.gen.fhdl.verilog import DummyAttrTranslate
from litex.build.generic_platform import * from litex.build.generic_platform import *
from litex.build import tools from litex.build import tools
from litex.build.lattice import common from litex.build.lattice import common

View File

@ -198,13 +198,11 @@ def _printattr(attr, attr_translate):
firsta = True firsta = True
for attr in sorted(attr, for attr in sorted(attr,
key=lambda x: ("", x) if isinstance(x, str) else x): key=lambda x: ("", x) if isinstance(x, str) else x):
# platform-dependent attribute
if isinstance(attr, tuple): if isinstance(attr, tuple):
# platform-dependent attribute
attr_name, attr_value = attr attr_name, attr_value = attr
elif attr not in attr_translate.keys():
attr_name, attr_value = attr, None
# translated attribute
else: else:
# translated attribute
at = attr_translate[attr] at = attr_translate[attr]
if at is None: if at is None:
continue continue
@ -212,9 +210,8 @@ def _printattr(attr, attr_translate):
if not firsta: if not firsta:
r += ", " r += ", "
firsta = False firsta = False
r += attr_name const_expr = "\"" + attr_value + "\"" if not isinstance(attr_value, int) else str(attr_value)
if attr_value is not None: r += attr_name + " = " + const_expr
r += " = \"" + attr_value + "\""
if r: if r:
r = "(* " + r + " *)" r = "(* " + r + " *)"
return r return r
@ -370,9 +367,14 @@ def _printspecials(overrides, specials, ns, add_data_file, attr_translate):
return r return r
class DummyAttrTranslate:
def __getitem__(self, k):
return (k, "true")
def convert(f, ios=None, name="top", def convert(f, ios=None, name="top",
special_overrides=dict(), special_overrides=dict(),
attr_translate={}, attr_translate=DummyAttrTranslate(),
create_clock_domains=True, create_clock_domains=True,
display_run=False, display_run=False,
reg_initialization=True, reg_initialization=True,