GMII Receive Interface - 9.0 English - PG051

Tri-Mode Ethernet MAC LogiCORE IP Product Guide (PG051)

Document ID
PG051
Release Date
2024-12-11
Version
9.0 English

In this implementation, a BUFIO is used to provide the lowest form of clock routing delay from the input clock to input GMII RX signal sampling at the device IOBs. However, this creates placement constraints, a BUFIO capable clock input pin must be selected, and all other input GMII RX signals must be placed in the respective BUFIO region. Refer the 7 Series FPGAs Clocking Resources User Guide (UG472).

The input clock is also placed onto regional clock routing using the BUFR component as illustrated in Figure 1 . This regional clock then provides the clock for all receiver logic, both within the core and for the user-side logic which connects to the receiver AXI4-Stream interface of the core.

Alternatively, for fully flexible I/O placement, the BUFR in Figure 1 can be replaced with a global clock buffer (BUFG). To perform this, edit the core instance unencrypted HDL file, <component_name_gmii_if> present in the core instance synth/implementation directory, and replace the BUFR instance on gmii_rx_clk with a BUFG. For more details on editing core instance unencrypted HDL files, see Synthesis and Implementation.

The IODELAY elements can be adjusted to fine-tune the setup and hold times at the GMII IOB input flip-flops. This meets the input setup and hold constraints at all three Ethernet speeds. The delay is applied to the IODELAY element using constraints in the XDC which can be edited if desired. See Constraining the Core. Closely linked to the clock logic is the use of the rx_enable clock enable derivation. This must be provided to the Ethernet MAC core level. All user logic uses the AXI4-Stream interface handshaking to throttle the data to allow for the differing data widths between the 4-bit MII and the core 8-bit user datapath.

Figure 1. Tri-Speed GMII Receiver and Clock Logic for 7 Series Devices