From 11760a999317fb7a56ab3b826424890a71a64463 Mon Sep 17 00:00:00 2001 From: Bastian Koppelmann Date: Thu, 19 Dec 2019 16:31:52 +0100 Subject: [PATCH] sram_factory: Add check for duplicate module name sram_factory cannot handle duplicate module name, thus we bail out and raise an error if a user attempts that. Signed-off-by: Bastian Koppelmann --- compiler/sram_factory.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/compiler/sram_factory.py b/compiler/sram_factory.py index 2ba34b40..110dbe15 100644 --- a/compiler/sram_factory.py +++ b/compiler/sram_factory.py @@ -63,6 +63,13 @@ class sram_factory: overridden = module_type in OPTS.overridden.keys() return (module_type, overridden) + def is_duplicate_name(self, name): + for mods in self.objects.values(): + for insts in mods: + if insts[1].name == name: + return True + return False + def create(self, module_type, module_name=None, **kwargs): """ A generic function to create a module with a given module_type. @@ -113,6 +120,10 @@ class sram_factory: self.module_indices[real_module_type] += 1 else: module_name = real_module_type + else: + if self.is_duplicate_name(module_name): + raise ValueError("Modules with duplicate name are not allowed." \ + " '{}'".format(module_name)) # type_str = "type={}".format(real_module_type) # name_str = "name={}".format(module_name)