Transmitter User Clocking Network Helper Block - 1.0 English

Virtex UltraScale+ FPGAs GTM Transceivers Wizard LogiCORE IP Product Guide (PG315)

Document ID
PG315
Release Date
2022-05-04
Version
1.0 English

The transmitter user clocking network helper block is a simple module used to derive and buffer the appropriate clocks to drive the TXUSRCLK and TXUSRCLK2 inputs of one or more transceiver channels.

A single instance of the helper block is delivered with each instance of the Wizard IP core. By default, its source clock input port, gtwiz_userclk_tx_srcclk_in, is driven by the TXOUTCLK port of the master transceiver channel. Within the helper block, this source drives either one or two BUFG_GT primitives, which are global clock buffers that are capable of clock division.

As shown in the following figure, if the TXUSRCLK and TXUSRCLK2 frequencies are identical (which is the case when the transmitter user data width is narrower than or equal to the size of the internal data width), then only a single BUFG_GT is instantiated within the helper block. This buffer drives both gtwiz_userclk_tx_usrclk_out and gtwiz_userclk_tx_usrclk2_out helper block output ports, which are wired to the TXUSRCLK and TXUSRCLK2 input ports, respectively, of each transceiver channel primitive. The helper block configures the BUFG_GT to divide the source clock down to the correct user clock frequency as required.

Figure 1. Transmitter User Clocking Network Helper Block (with One BUFG_GT)

As shown in the above figure, if TXUSRCLK is twice the frequency of TXUSRCLK2 (which is the case when the transmitter user data width is wider than the internal data width), then two BUFG_GT primitives are instantiated within the helper block. The helper block configures one BUFG_GT to divide the source clock down to the correct transmitter datapath frequency and drive the gtwiz_userclk_tx_usrclk_out helper block output port, which is wired to the TXUSRCLK input port of each transceiver channel. The helper block configures the other BUFG_GT to divide the source clock down to the correct transmitter user interface frequency and drive the gtwiz_userclk_tx_usrclk2_out helper block output port, which is wired to the TXUSRCLK2 input port of each transceiver channel.

Figure 2. Transmitter User Clocking Network Helper Block

The helper block holds BUFG_GT primitive(s) in reset when the gtwiz_userclk_tx_reset_in user input is asserted. This reset input should be held High until the source clock input is known to be stable. When the reset input is released, the gtwiz_userclk_tx_active_out user indicator synchronously asserts, indicating an active user clock and allowing dependent helper blocks to proceed.

The helper block can be located either within the core, or in the example design, per user selection. If included within the core, wiring from the master transceiver channel TXOUTCLK output port to the helper block gtwiz_userclk_tx_srcclk_in input port is also internal to the core, but that clock signal is presented on the core interface as gtwiz_userclk_tx_srcclk_out. Similarly, wiring between the helper block gtwiz_userclk_tx_usrclk_out and gtwiz_userclk_tx_usrclk2_out output ports and the transceiver channel is internal to the core but those helper block outputs are also presented on the core interface.

If the helper block is located within the example design, then by necessity the relevant transceiver channel clock ports are enabled on the core interface so that the necessary signals can cross the core boundary.

For complete documentation on clocking the transceiver primitives, see Virtex UltraScale+ FPGAs GTM Transceivers User Guide (UG581).