From 48d63f236213d7374da8232f715464f328ad04da Mon Sep 17 00:00:00 2001 From: Florent Kermarrec Date: Thu, 6 Aug 2020 19:32:02 +0200 Subject: [PATCH] build/generic_plaform: add loose parameter to return None when not available/existing. Similar to loose parameter already present on Platform.lookup_request. --- litex/build/generic_platform.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/litex/build/generic_platform.py b/litex/build/generic_platform.py index 2fdda7184..21608831b 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