From: Florent Kermarrec Date: Thu, 6 Aug 2020 17:32:02 +0000 (+0200) Subject: build/generic_plaform: add loose parameter to return None when not available/existing. X-Git-Tag: 24jan2021_ls180~13 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=48d63f236213d7374da8232f715464f328ad04da;p=litex.git build/generic_plaform: add loose parameter to return None when not available/existing. Similar to loose parameter already present on Platform.lookup_request. --- diff --git a/litex/build/generic_platform.py b/litex/build/generic_platform.py index 2fdda718..21608831 100644 --- a/litex/build/generic_platform.py +++ b/litex/build/generic_platform.py @@ -82,11 +82,14 @@ class PlatformInfo: return "{}({})".format(self.__class__.__name__, repr(self.info)) -def _lookup(description, name, number): +def _lookup(description, name, number, loose=True): for resource in description: if resource[0] == name and (number is None or resource[1] == number): return resource - raise ConstraintError("Resource not found: {}:{}".format(name, number)) + if loose: + return None + else: + raise ConstraintError("Resource not found: {}:{}".format(name, number)) def _resource_type(resource): @@ -178,8 +181,10 @@ class ConstraintManager: def add_extension(self, io): self.available.extend(io) - def request(self, name, number=None): - resource = _lookup(self.available, name, number) + def request(self, name, number=None, loose=False): + resource = _lookup(self.available, name, number, loose) + if resource is None: + return None rt, ri = _resource_type(resource) if number is None: resource_name = name