def __getattr__(self, name): if name == "comb": return _ModuleComb(self) elif name == "sync": return _ModuleSync(self) elif name == "specials": return _ModuleSpecials(self) elif name == "submodules": return _ModuleSubmodules(self) elif name == "clock_domains": return _ModuleClockDomains(self) # hack to have initialized regular attributes without using __init__ # (which would require derived classes to call it) elif name == "finalized": self.finalized = False return self.finalized elif name == "_fragment": self._fragment = _Fragment() return self._fragment elif name == "_submodules": self._submodules = [] return self._submodules elif name == "_clock_domains": self._clock_domains = [] return self._clock_domains elif name == "get_fragment_called": self.get_fragment_called = False return self.get_fragment_called else: raise AttributeError("'"+self.__class__.__name__+"' object has no attribute '"+name+"'")
def __getattr__(self, name): if name == "comb": return _ModuleComb(self) elif name == "sync": return _ModuleSync(self) elif name == "specials": return _ModuleSpecials(self) elif name == "submodules": return _ModuleSubmodules(self) elif name == "clock_domains": return _ModuleClockDomains(self) # hack to have initialized regular attributes without using __init__ # (which would require derived classes to call it) elif name == "finalized": self.finalized = False return self.finalized elif name == "_fragment": self._fragment = _Fragment() return self._fragment elif name == "_submodules": self._submodules = [] return self._submodules elif name == "_clock_domains": self._clock_domains = [] return self._clock_domains elif name == "get_fragment_called": self.get_fragment_called = False return self.get_fragment_called else: raise AttributeError("'" + self.__class__.__name__ + "' object has no attribute '" + name + "'")
def _lower_specials_step(overrides, specials): f = _Fragment() lowered_specials = set() for special in sorted(specials, key=lambda x: x.duid): impl = call_special_classmethod(overrides, special, "lower") if impl is not None: f += impl.get_fragment() lowered_specials.add(special) return f, lowered_specials