mirror of
https://github.com/m-labs/artiq.git
synced 2024-12-19 08:26:30 +08:00
drtio: squelch 7series RXSynchronizer outputs when MMCM is unlocked
This commit is contained in:
parent
6a75837261
commit
f76aa249ce
@ -212,10 +212,11 @@ class RXSynchronizer(Module, AutoCSR):
|
|||||||
self.phase_shift = CSR()
|
self.phase_shift = CSR()
|
||||||
self.phase_shift_done = CSRStatus()
|
self.phase_shift_done = CSRStatus()
|
||||||
|
|
||||||
self.clock_domains.cd_rtio_delayed = ClockDomain(reset_less=True)
|
self.clock_domains.cd_rtio_delayed = ClockDomain()
|
||||||
|
|
||||||
mmcm_output = Signal()
|
mmcm_output = Signal()
|
||||||
mmcm_fb = Signal()
|
mmcm_fb = Signal()
|
||||||
|
mmcm_locked = Signal()
|
||||||
# maximize VCO frequency to maximize phase shift resolution
|
# maximize VCO frequency to maximize phase shift resolution
|
||||||
mmcm_mult = 1200e6//rtio_clk_freq
|
mmcm_mult = 1200e6//rtio_clk_freq
|
||||||
self.specials += [
|
self.specials += [
|
||||||
@ -242,7 +243,8 @@ class RXSynchronizer(Module, AutoCSR):
|
|||||||
i_PSINCDEC=self.phase_shift.r,
|
i_PSINCDEC=self.phase_shift.r,
|
||||||
o_PSDONE=self.phase_shift_done.status,
|
o_PSDONE=self.phase_shift_done.status,
|
||||||
),
|
),
|
||||||
Instance("BUFR", i_I=mmcm_output, o_O=self.cd_rtio_delayed.clk)
|
Instance("BUFR", i_I=mmcm_output, o_O=self.cd_rtio_delayed.clk),
|
||||||
|
AsyncResetSynchronizer(self.cd_rtio_delayed, ~mmcm_locked)
|
||||||
]
|
]
|
||||||
|
|
||||||
def resync(self, signal):
|
def resync(self, signal):
|
||||||
|
Loading…
Reference in New Issue
Block a user