drtio: support external IBUFDS_GTE3

This commit is contained in:
Sebastien Bourdeauducq 2018-08-07 20:52:45 +08:00
parent 8b8e1844f0
commit e2a49ce368
1 changed files with 16 additions and 11 deletions

View File

@ -636,6 +636,8 @@ class GTH(Module, TransceiverInterface):
# # # # # #
create_buf = hasattr(clock_pads, "p")
if create_buf:
refclk = Signal() refclk = Signal()
ibufds_ceb = Signal() ibufds_ceb = Signal()
self.specials += Instance("IBUFDS_GTE3", self.specials += Instance("IBUFDS_GTE3",
@ -643,6 +645,8 @@ class GTH(Module, TransceiverInterface):
i_I=clock_pads.p, i_I=clock_pads.p,
i_IB=clock_pads.n, i_IB=clock_pads.n,
o_O=refclk) o_O=refclk)
else:
refclk = clock_pads
rtio_tx_clk = Signal() rtio_tx_clk = Signal()
channel_interfaces = [] channel_interfaces = []
@ -665,6 +669,7 @@ class GTH(Module, TransceiverInterface):
self.submodules.tx_phase_alignment = GTHTXPhaseAlignement(self.gths) self.submodules.tx_phase_alignment = GTHTXPhaseAlignement(self.gths)
TransceiverInterface.__init__(self, channel_interfaces) TransceiverInterface.__init__(self, channel_interfaces)
if create_buf:
# GTH PLLs recover on their own from an interrupted clock input, # GTH PLLs recover on their own from an interrupted clock input,
# but be paranoid about HMC7043 noise. # but be paranoid about HMC7043 noise.
self.stable_clkin.storage.attr.add("no_retiming") self.stable_clkin.storage.attr.add("no_retiming")