from migen.fhdl.std import * from migen.fhdl.specials import Special from migen.fhdl.tools import list_signals class AsyncResetSynchronizer(Special): def __init__(self, cd, async_reset): Special.__init__(self) self.cd = cd self.async_reset = async_reset def iter_expressions(self): yield self.cd, "clk", SPECIAL_INPUT yield self.cd, "rst", SPECIAL_OUTPUT yield self, "async_reset", SPECIAL_INPUT @staticmethod def lower(dr): raise NotImplementedError("Attempted to use a reset synchronizer, but platform does not support them")