GMII Transmit Clock - GMII Transmit Clock - 4.1 English - PG160

GMII to RGMII v4.1 LogiCORE IP Product Guide (PG160)

Document ID
PG160
Release Date
2025-12-17
Version
4.1 English

This clock is used by the transmit circuitry of the core. It is also an output from this core, and it is used as the TX clock on the GEM GMII interface. The Shared Logic option determines if clock resources are used for this clock. If shared logic is in the core, then clock resources are used. If the shared logic is in the example design, then no clocking resources are used.

This clock can be sourced externally or can be generated internally within the core. The VHDL generic C_EXTERNAL_CLOCK is used to indicate this choice. The following paragraphs describe the clocking scheme in both the cases, that is, when shared logic is in the core and when shared logic is in the example design.

Figure 1. GMII Clock Sourced Externally and Shared Logic in Core
LogiCORE IP GMII to RGMII Product Guide Page-1 Buffer.46 Sheet.2 Sheet.3 Sheet.4 Sheet.5 Sheet.6 Rectangle TX Data Path TX Data Path Sheet.8 Sheet.9 10pt. Arial Text gmii_clk gmii_clk 10pt. Arial Text.11 gmii_clk_bufg gmii_clk_bufg 10pt. Arial Text.12 gmiii_clk_out gmiii_clk_out Buffer.13 Sheet.14 Sheet.15 Sheet.16 Sheet.17 Sheet.18 Rectangle.19 TX Clock Path TXClock Path Sheet.20 Sheet.21 10pt. Arial Text.22 gmii_clk_90 gmii_clk_90 10pt. Arial Text.23 gmii_clk_90_bufg gmii_clk_90_bufg 10pt. Arial Text.24 gmii_clk_90_out gmii_clk_90_out 10pt. Arial Text.25 BUFG BUFG 10pt. Arial Text.26 BUFG BUFG Rectangle.27 10pt. Arial Text.28 (Optional logic: Generated only when 2 ns clock skew is gener... (Optional logic: Generated only when 2 ns clock skew is generated through MMCM) Sheet.29 Sheet.30

The preceding figure depicts the clocking scheme when the GMII clock is sourced externally and the Shared Logic in Core option is selected. This mode is active when the VHDL generic C_EXTERNAL_CLOCK is set to 1. In this case, you must ensure that the GMII clock frequency is appropriate for the line rate. That is, it should be 2.5 MHz for 10 Mb/s, 25 MHz for 100 Mb/s and 125 MHz for 1,000 Mb/s. The external GMII clock is routed through the global clock buffer (BUFG) and then used in the core.

The clock, gmii_clk_out, is also an output of this IP that can be used by other instances of the GMII to RGMII cores, which are configured for the shared logic to be present in the example design. This allows the sharing of the clock resources.

gmii_clk_90 is gmii_clock phase shifted by 90°. The logic in the dotted area is generated only if the option to add 2 ns skew on rgmii_txc by using MMCM is selected.

Figure 2. GMII Clock Sourced Internally and Shared Logic in Core
LogiCORE IP GMII to RGMII Product Guide Page-1 Rectangle.1 Rectangle MMCM MMCM 10pt. Arial Text clkin_bufg clkin_bufg Sheet.4 10pt. Arial Text.4 gmii_clk_125m gmii_clk_125m 10pt. Arial Text.5 gmii_clk_125m_90 gmii_clk_125m_90 10pt. Arial Text.6 gmii_clk_25m gmii_clk_25m 10pt. Arial Text.7 gmii_clk_25m_90 gmii_clk_25m_90 10pt. Arial Text.8 clk_10 clk_10 10pt. Arial Text.9 gmii_clk_2_5m gmii_clk_2_5m 10pt. Arial Text.10 gmii_clk_2_5m_90 gmii_clk_2_5m_90 10pt. Arial Text.11 gmii_clk_125m_90_out gmii_clk_125m_90_out 10pt. Arial Text.12 gmii_clk_25m_90_out gmii_clk_25m_90_out 10pt. Arial Text.13 gmii_clk_2_5m_90_out gmii_clk_2_5m_90_out 10pt. Arial Text.14 gmii_clk_125m_out gmii_clk_125m_out 10pt. Arial Text.15 gmii_clk_25m_out gmii_clk_25m_out 10pt. Arial Text.16 gmii_clk_2_5m_out gmii_clk_2_5m_out Sheet.18 Sheet.19 Sheet.20 10pt. Arial Text.20 clk_10_90 clk_10_90 Sheet.22 Sheet.23 Sheet.24 Sheet.25 Sheet.26 Sheet.27 Sheet.28 Rectangle.28 Multiplexer 2 Mux_4:1 Multiplexer 2.31 Mux_4:1 Sheet.34 Sheet.35 Sheet.36 Sheet.37 Sheet.38 Sheet.39 Sheet.40 Sheet.41 Sheet.42 Sheet.43 Multiplexer 2.43 Mux_4:1 Multiplexer 2.45 Mux_4:1 Sheet.48 Sheet.49 Sheet.50 Sheet.51 Sheet.52 Sheet.53 Sheet.54 Sheet.55 Sheet.56 Sheet.57 10pt. Arial Text.57 BUFR (Div = 4) BUFR(Div = 4) 10pt. Arial Text.58 BUFR (Div = 4) BUFR(Div = 4) 10pt. Arial Text.59 gmii_tx_clk gmii_tx_clk 10pt. Arial Text.60 gmii_tx_clk_90 gmii_tx_clk_90 Rectangle.61 10pt. Arial Text.63 component_name_clocking component_name_clocking 10pt. Arial Text.64 component_name_block component_name_block 8pt. Arial Text BUFGMUX0 BUFGMUX0 8pt. Arial Text.66 BUFGMUX1 BUFGMUX1 8pt. Arial Text.67 BUFGMUX0 BUFGMUX0 8pt. Arial Text.68 BUFGMUX1 BUFGMUX1 Sheet.69 Sheet.70 Sheet.71 Sheet.72 10pt. Arial Text.73 speed_mode(0) speed_mode(0) 10pt. Arial Text.74 speed_mode(1) speed_mode(1) 10pt. Arial Text.75 speed_mode(0) speed_mode(0) 10pt. Arial Text.76 speed_mode(1) speed_mode(1)

The preceding figure depicts the clocking scheme when the GMII clock is sourced internally and the Shared Logic in Core option is selected. This mode is active when the VHDL generic C_EXTERNAL_CLOCK is set to 0. The GMII to RGMII core has a built-in clock generator for providing 2.5 MHz, 25 MHz, and 125 MHz frequency clocks for 10 Mb/s, 100 Mb/s, and 1 Gb/s speeds of operation, respectively. The clock generator uses an MMCM to generate the clocks for all three line-rates. The block wrapper has the clock multiplexers (BUFGMUX) that are used to switch between three different clock frequencies for the three different speed modes of the MAC. The speed_mode(0) and speed_mode(1) signals are used as selection pins of BUFGMUX0 and BUFGMUX1, respectively.

The clocks shown in the gray area are only generated when the option to add 2 ns skew on rgmii_txc through MMCM. These clocks are generated to have a phase shift of 90°.

The three clocks, gmii_clk_2_5m_out, gmii_clk_25m_out, and gmii_clk_125m_out, are also outputs of this IP core that can be used by other instances of the GMII to RGMII cores, which are configured for the shared logic to be present in the example design. This allows the sharing of the clock resources.

Figure 3. Clock Sourced Externally and Shared Logic in Example Design
LogiCORE IP GMII to RGMII Product Guide Page-1 Rectangle TX Data Path TX Data Path Sheet.2 10pt. Arial Text gmii_clk gmii_clk Rectangle.19 TX Clock Path TX Clock Path Sheet.5 10pt. Arial Text.22 gmii_clk_90 gmii_clk_90 Rectangle.27 10pt. Arial Text.28 (Optional logic: Generated only when 2 ns clock skew is gener... (Optional logic: Generated only when 2 ns clock skew is generated through MMCM)

The preceding figure depicts the clocking scheme when the GMII clock is sourced externally, and the Shared Logic in Example Design is selected. In this case, no clocking resources are used by the core. The gmii_clk signal is the output of another GMII to RGMII core, which is configured for the shared logic to be present in the core.

Figure 4. GMII Clock Sourced Internally and Shared Logic in Example Design
LogiCORE IP GMII to RGMII Product Guide Page-1 Rectangle.62 10pt. Arial Text.2 gmii_clk_125m_in gmii_clk_125m_in 10pt. Arial Text.3 gmii_clk_125m_90_in gmii_clk_125m_90_in 10pt. Arial Text.4 gmii_clk_25m_in gmii_clk_25m_in 10pt. Arial Text.5 gmii_clk_25m_90_in gmii_clk_25m_90_in 10pt. Arial Text.9 gmii_clk_2_5m_in gmii_clk_2_5m_in 10pt. Arial Text.10 gmii_clk_2_5m_90_in gmii_clk_2_5m_90_in Sheet.8 Sheet.9 Sheet.10 Sheet.11 Sheet.12 Sheet.13 Multiplexer 2 Mux_4:1 Multiplexer 2.31 Mux_4:1 Sheet.21 Multiplexer 2.43 Mux_4:1 Multiplexer 2.45 Mux_4:1 Sheet.29 10pt. Arial Text.59 gmii_tx_clk gmii_tx_clk 10pt. Arial Text.60 gmii_tx_clk_90 gmii_tx_clk_90 8pt. Arial Text BUFGMUX0 BUFGMUX0 8pt. Arial Text.66 BUFGMUX1 BUFGMUX1 8pt. Arial Text.67 BUFGMUX0 BUFGMUX0 8pt. Arial Text.68 BUFGMUX1 BUFGMUX1 Sheet.36 Sheet.37 Sheet.38 Sheet.39 10pt. Arial Text.73 speed_mode(0) speed_mode(0) 10pt. Arial Text.74 speed_mode(1) speed_mode(1) 10pt. Arial Text.75 speed_mode(0) speed_mode(0) 10pt. Arial Text.76 speed_mode(1) speed_mode(1) 10pt. Arial Text (Only when option for adding 2 ns clock skew through MMCM is ... (Only when option for adding 2 ns clock skew through MMCM is selected) Standard Arrow.33 Standard Arrow.18

The preceding figure depicts the clocking scheme when the GMII clock is sourced internally, and the Shared Logic in Example Design is selected. In this case, the only clock resources used by the core are the two clock multiplexers. The block wrapper has the clock multiplexers (BUFGMUX) that are used to switch between three different clock frequencies for the three different speed modes of the MAC. The speed_mode(0) and speed_mode(1) signals are used as selection pins of BUFGMUX0 and BUFGMUX1, respectively.