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 litex.gen.fhdl.verilog import DummyAttrTranslate
from litex.build.generic_platform import *
from litex.build import tools
from litex.build.lattice import common

View File

@ -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,