From: Sebastien Bourdeauducq Date: Wed, 8 May 2013 18:58:57 +0000 (+0200) Subject: bank/description/AutoCSR: add autocsr_exclude X-Git-Tag: 24jan2021_ls180~2099^2~582 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=c82b53f1cd813e20dfc15e77b0611f68a583ae27;p=litex.git bank/description/AutoCSR: add autocsr_exclude --- diff --git a/migen/bank/description.py b/migen/bank/description.py index 2369579c..92dcdcd2 100644 --- a/migen/bank/description.py +++ b/migen/bank/description.py @@ -96,23 +96,33 @@ def memprefix(prefix, memories): class AutoCSR: def get_memories(self): + try: + exclude = self.autocsr_exclude + except AttributeError: + exclude = {} r = [] for k, v in self.__dict__.items(): - if isinstance(v, Memory): - r.append(v) - elif hasattr(v, "get_memories") and callable(v.get_memories): - memories = v.get_memories() - memprefix(k + "_", memories) - r += memories + if k not in exclude: + if isinstance(v, Memory): + r.append(v) + elif hasattr(v, "get_memories") and callable(v.get_memories): + memories = v.get_memories() + memprefix(k + "_", memories) + r += memories return sorted(r, key=lambda x: x.huid) def get_csrs(self): + try: + exclude = self.autocsr_exclude + except AttributeError: + exclude = {} r = [] for k, v in self.__dict__.items(): - if isinstance(v, _CSRBase): - r.append(v) - elif hasattr(v, "get_csrs") and callable(v.get_csrs): - csrs = v.get_csrs() - csrprefix(k + "_", csrs) - r += csrs + if k not in exclude: + if isinstance(v, _CSRBase): + r.append(v) + elif hasattr(v, "get_csrs") and callable(v.get_csrs): + csrs = v.get_csrs() + csrprefix(k + "_", csrs) + r += csrs return sorted(r, key=lambda x: x.huid)