From c82b53f1cd813e20dfc15e77b0611f68a583ae27 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Wed, 8 May 2013 20:58:57 +0200 Subject: [PATCH] bank/description/AutoCSR: add autocsr_exclude --- migen/bank/description.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) 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) -- 2.30.2