mirror of https://github.com/openXC7/prjxray.git
Added support for having a set of required features in the prjxray db.
Signed-off-by: Maciej Kurc <mkurc@antmicro.com>
This commit is contained in:
parent
bfe24fc486
commit
6b234bf484
|
|
@ -87,6 +87,14 @@ class Database(object):
|
|||
|
||||
self.tile_types_obj = {}
|
||||
|
||||
# Load set of required fasm features for given part.
|
||||
self.required_features = {}
|
||||
fname = os.path.join(self.db_root, "required_features.json")
|
||||
|
||||
if os.path.isfile(fname):
|
||||
with open(fname, "r") as fp:
|
||||
self.required_features = json.load(fp)
|
||||
|
||||
def get_tile_types(self):
|
||||
""" Return list of tile types """
|
||||
return self.tile_types.keys()
|
||||
|
|
@ -147,3 +155,22 @@ class Database(object):
|
|||
self.tile_types[tile_type.upper()])
|
||||
|
||||
return self.tile_segbits[tile_type]
|
||||
|
||||
def get_required_fasm_features(self, part=None):
|
||||
"""
|
||||
Assembles a set of required fasm features for given part. Returns a list
|
||||
of fasm features.
|
||||
"""
|
||||
|
||||
# No required features in the db, return empty list
|
||||
if self.required_features is None:
|
||||
return set()
|
||||
|
||||
# Get a list of required features for all parts
|
||||
features = set()
|
||||
if "all" in self.required_features:
|
||||
features |= set(self.required_features["all"])
|
||||
|
||||
# TODO: Add a support for required features for a specific part.
|
||||
|
||||
return features
|
||||
|
|
|
|||
|
|
@ -120,6 +120,11 @@ def run(
|
|||
extra_features = fasm.parse_fasm_string(
|
||||
'\n'.join(roi_j['required_features']))
|
||||
|
||||
# Get required features for the part
|
||||
# TODO: Specify the part explicitly ?
|
||||
required_features = db.get_required_fasm_features(None)
|
||||
extra_features += fasm.parse_fasm_string('\n'.join(required_features))
|
||||
|
||||
assembler.parse_fasm_filename(filename_in, extra_features=extra_features)
|
||||
|
||||
if emit_pudc_b_pullup and not pudc_b_in_use and pudc_b_tile_site is not None:
|
||||
|
|
|
|||
Loading…
Reference in New Issue