soc/integration/soc_core: improve error message for missing csrs
authorFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 5 Mar 2018 08:59:06 +0000 (09:59 +0100)
committerFlorent Kermarrec <florent@enjoy-digital.fr>
Mon, 5 Mar 2018 08:59:06 +0000 (09:59 +0100)
litex/soc/integration/soc_core.py

index aec3a8de1afab1a46111a69bd7996a8546a13d28..5198e5c9a47c524e6770aaf8ca1a57dd46e800c2 100644 (file)
@@ -258,15 +258,12 @@ class SoCCore(Module):
         try:
             return self.csr_map[name]
         except KeyError as e:
-            raise RuntimeError("""\
-Unable to find {} in your SoC's csr address map.
-
-Check {}.csr_map in {}
-
-Found {} in the csr_map""".format(
-                name, self.__class__.__name__, inspect.getfile(self.__class__),
-                ", ".join(self.csr_map.keys()))
-            ) from e
+            msg = "Undefined \"{}\" CSR.\n".format(name)
+            msg += "Avalaible CSRs in {} ({}):\n".format(
+                self.__class__.__name__, inspect.getfile(self.__class__))
+            for k in sorted(self.csr_map.keys()):
+                msg += "- {}\n".format(k)
+            raise RuntimeError(msg)
         except ValueError:
             return None