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 <kbastian@mail.uni-paderborn.de>
This commit is contained in:
Bastian Koppelmann 2019-12-19 16:31:52 +01:00
parent 1df16eceb6
commit 11760a9993
1 changed files with 11 additions and 0 deletions

View File

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