build/microsemi/common: add async reset synchronizer (using DFN1P0)
This commit is contained in:
parent
e3c6bd5846
commit
85f7666207
|
@ -1,2 +1,24 @@
|
||||||
|
from migen import *
|
||||||
|
from migen.genlib.resetsync import AsyncResetSynchronizer
|
||||||
|
|
||||||
|
|
||||||
|
class MicrosemiPolarfireAsyncResetSynchronizerImpl(Module):
|
||||||
|
def __init__(self, cd, async_reset):
|
||||||
|
rst1 = Signal()
|
||||||
|
self.specials += [
|
||||||
|
Instance("DFN1P0", i_D=0, i_PRE=~async_reset,
|
||||||
|
i_CLK=cd.clk, o_Q=rst1),
|
||||||
|
Instance("DFN1P0", i_D=rst1, i_PRE=~async_reset,
|
||||||
|
i_CLK=cd.clk, o_Q=cd.rst)
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class MicrosemiPolarfireAsyncResetSynchronizer:
|
||||||
|
@staticmethod
|
||||||
|
def lower(dr):
|
||||||
|
return MicrosemiPolarfireAsyncResetSynchronizerImpl(dr.cd, dr.async_reset)
|
||||||
|
|
||||||
|
|
||||||
microsemi_polarfire_special_overrides = {
|
microsemi_polarfire_special_overrides = {
|
||||||
|
AsyncResetSynchronizer: MicrosemiPolarfireAsyncResetSynchronizer,
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue