soc_core: remove assert on interrupt (added to catch design issues, but too restricti...
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Tue, 19 Jun 2018 09:15:29 +0000 (11:15 +0200)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Tue, 19 Jun 2018 09:15:29 +0000 (11:15 +0200)
litex/soc/integration/soc_core.py

index 4d2a026cde58a7dc2ee0ea15ed17116084d42f23..62cb955636150960aeab4b77532bf703eb86b382 100644 (file)
@@ -301,10 +301,10 @@ class SoCCore(Module):
                 for interrupt, mod_name in sorted(self.interrupt_rmap.items()):
                     if mod_name == "nmi":
                         continue
-                    assert hasattr(self, mod_name), "Missing module for interrupt %s" % mod_name
-                    mod_impl = getattr(self, mod_name)
-                    assert hasattr(mod_impl, 'ev'), "Submodule %s does not have EventManager (xx.ev) module" % mod_name
-                    self.comb += self.cpu_or_bridge.interrupt[interrupt].eq(mod_impl.ev.irq)
+                    if hasattr(self, mod_name):
+                        mod_impl = getattr(self, mod_name)
+                        assert hasattr(mod_impl, 'ev'), "Submodule %s does not have EventManager (xx.ev) module" % mod_name
+                        self.comb += self.cpu_or_bridge.interrupt[interrupt].eq(mod_impl.ev.irq)
 
     def build(self, *args, **kwargs):
         return self.platform.build(self, *args, **kwargs)