diff --git a/compiler/modules/module_type.py b/compiler/modules/module_type.py index 624a62c8..90e1fdbe 100644 --- a/compiler/modules/module_type.py +++ b/compiler/modules/module_type.py @@ -67,4 +67,8 @@ class ModuleType(): self.names[b] = c def __getitem__(self, b): + if b not in self.names.keys(): + raise KeyError + return self.names[b] + diff --git a/compiler/sram_factory.py b/compiler/sram_factory.py index 4b9b13d9..f5e19d87 100644 --- a/compiler/sram_factory.py +++ b/compiler/sram_factory.py @@ -36,6 +36,8 @@ class sram_factory: A generic function to create a module with a given module_type. The args are passed directly to the module constructor. """ + real_module_type = module_type + try: from tech import tech_modules real_module_type = tech_modules[module_type] @@ -43,6 +45,9 @@ class sram_factory: # If they didn't define these, then don't use the option types. # Primarily for backward compatibility and simplicity of tech files. pass + except KeyError: + # If it wasn't a tech module type, we can ignore that too. + pass if hasattr(OPTS, module_type): # Retrieve the name from OPTS if it exists,