Internal Encrypted Hierarchy of the Core Level Ports
All ports in the encrypted hierarchy of the core are internal connections in FPGA logic. Un-encrypted HDL in the core and example design (delivered with the core) connect the core, where appropriate, to a device-specific transceiver, and/or add IBUFs, OBUFs, and IOB flip-flops to the external signals of the GMII/MII. IOBs are added to the remaining unconnected ports to take the example design through the AMD implementation software. All the ports described here indicate the pins at the in the encrypted hierarchy of the core level. The block level design instantiates the core and transceiver.
All clock management logic is placed in this example design, allowing you more flexibility in implementation (such as designs using multiple cores). This example design is provided in both VHDL and Verilog.
The following figure shows the pinout for the QSGMII core using a device-specific transceiver with the optional MDIO Management and optional Auto-Negotiation.
The port name for multiple instances of an
interface is generalized as CHx. CHx takes the value CH0, CH1, CH2, and CH3.
The following figure shows the pinout for the
QSGMII core using a device-specific transceiver with only the
optional MDIO Management. The port name for multiple instances of an interface is
generalized as CHx. CHx
takes the value CH0, CH1, CH2, and CH3.
The following figure shows the pinout for the QSGMII core using a device-specific transceiver with only the optional Auto-Negotiation.
The port name for multiple instances of an interface is generalized as
CHx. CHx takes the
value CH0, CH1, CH2, and CH3
The following figure shows the pinout for the QSGMII core using a device-specific transceiver with only the optional Auto-Negotiation.
The port name for multiple instances of an interface is generalized as
CHx. CHx takes the
value CH0, CH1, CH2, and CH3.
QSGMII Core Client Side Interface
This interface contains four
groups of interfaces, with each group containing a set of the GMII
interface, the optional management interface if supported and
configuration vectors. MII interface, if present on the QSGMII
block, is converted to a GMII type interface. The interfaces end in
chx, taking the values ch0 to ch3, indicating the
port connection to the respective GMII interface.
GMII Pinout
The following table describes the GMII-side interface signals of the core that are common to all parameterizations of the core. These are typically attached to an Ethernet MAC, either off-chip or internally integrated. The HDL block level in PHY mode of operation for seamless connection to pads in IP Canvas delivered with the core connects these signals to IOBs to provide a place-and-route example.
| Signal | Direction | Description |
|---|---|---|
| gmii_txd_chx[7:0] 1 | Input | GMII Transmit data from MAC |
| gmii_tx_en_chx 1 | Input | GMII Transmit control signal from MAC |
| gmii_tx_er_chx 1 | Input | GMII Transmit control signal from MAC |
| gmii_rxd_chx[7:0]1 | Output | GMII Received data to MAC |
| gmii_rx_dv_chx1 | Output | GMII Received control signal to MAC |
| gmii_rx_er_chx1 | Output | GMII Received control signal to MAC |
| gmii_isolate_chx1 | Output | IOB 3-state control for GMII Isolation. Only of use when implementing an external GMII. |
|
||
Common Signals
The following table describes the remaining signals common to all parameterizations of the core.
| Signal | Direction | Description |
|---|---|---|
| reset | Input | Asynchronous reset for the entire core. Active-High. Clock domain is not applicable. |
| signal_detect | Input | Signal direct from the Physical Medium Dependent (PMD) sublayer indicating the presence of light detected at the optical receiver. If set to 1, indicates that the optical receiver has detected light. If set to 0, this indicates the absence of light. If unused, this signal should be set to 1 to enable correct operation the core. Clock domain is not applicable. |
MDIO Management Interface Pinout (Optional)
The optional MDIO Management
Interface is provided for each instance of SGMII. The
chx suffix denotes a generic nomenclature for
describing the interface. Each of the interfaces are identified
with chx taking values from ch0 to
ch3.
The following table describes the optional MDIO interface signals of the core that are used to access the PCS Management registers. Each of these interfaces is typically connected to the MDIO port of a MAC device, either off-chip or to an internally integrated MAC core. For more information, see Management Registers.
| Signal | Direction | Clock Domain | Description |
|---|---|---|---|
| mdc_chx | Input | NA | Management clock (<= 2.5 MHz). |
| mdio_in_chx 1 | Input | mdc_chx | Input data signal for
communication with the instance number x of the MDIO controller (for example, an
Ethernet MAC). Tie High if unused. |
| mdio_out_chx 1 | Output | mdc_chx | Output data signal for
communication with the instance number x of the MDIO controller (for example, an
Ethernet MAC). |
| mdio_tri_chx 1 | Output | mdc_chx | 3-state control for MDIO signals. The value 0 signals that the value on mdio_out should be asserted onto the MDIO interface. |
| phyad_chx[4:0] | Input | NA | Physical Addresses of the
PCS Management register set of each x instance of SGMII. It is expected that this
signal is tied off to a logical value. |
|
|||
Auto-Negotiation Interface Pinout (Optional)
| Signal | Direction | Description |
|---|---|---|
| an_interrupt_chx 1 | Output |
When an optional management interface is present, active-High interrupt to signal the completion of an Auto-Negotiation cycle. This interrupt can be enabled/disabled and cleared by writing to the appropriate PCS Management register. When an optional management interface is not present, this signal indicates the completion of the Auto-Negotiation cycle. Is reset automatically if Auto-Negotiation restarts. This bit cannot be cleared. |
|
||
Additional Configuration Interface
This interface can be used over and above the optional management interface to write into the Control register (Register 0) and the Auto-Negotiation Advertisement register (Register 4).
| Signal | Direction | Description |
|---|---|---|
| configuration_vector_chx[5:0] 1 | Input |
Bit[0]:Unidirectional Enable When set to 1, Enable Transmit irrespective of the state of RX. When set to 0, Normal operation Bit[1]: Reserved Bit[2]: Power Down When set to 1, the device-specific transceiver is placed in a low-power state. A reset must be applied to clear. This bit is valid only on
Bit[3] Isolate When set to 1, the GMII should be electrically isolated. When set to 0, normal operation is enabled Bit[4] Auto-Negotiation Enable This signal is valid only if the Auto-Negotiation (AN) module is enabled through the AMD Vivado™ IP catalog. When set to 1, the signal enables the AN feature. When set to 0, AN is disabled. Bit[5] gt_channel_valid This signal is valid only for 7 series devices. This enables the contribution of
|
| configuration_vector_valid_chx 1 | Input | This signal is valid only when the
MDIO interface is present. The rising edge of this signal is the enable signal to
overwrite the Register 0 contents that were written from the MDIO interface. For
triggering a fresh update of Register 0 through
configuration_vector_chx, this signal should be deasserted and
then reasserted. |
| an_adv_config_vector_chx[15:0] 1 | Input |
QSGMII operating in MAC Mode, the AN_ADV register is hard wired internally to "0x0001" and this bus has no effect. For QSGMII operating in PHY mode, the AN_ADV register is programmed by this bus as specified for the following bits. Bit[0]: Always 1 Bits [9:1]: Reserved Bits [11:10]: Speed 1 1 Reserved 1 0 1000 Mb/s 0 1 100 Mb/s 0 0 10 Mb/s Bits [12]:Duplex Mode 1 Full Duplex 0 Half Duplex Bit[13]: Reserved Bit [14]: Acknowledge Bit [15]: PHY Link Status 1 Link Up 0 Link Down |
| an_adv_config_valid_chx 1 | Input | This signal is valid only when the
MDIO interface is present. The rising edge of this signal is the enable signal to
overwrite the Register 4 contents that were written from the MDIO interface. For
triggering a fresh update of Register 4 through
an_adv_config_vector_chx, this signal should be deasserted and
then reasserted. |
| an_restart_config_chx 1 | Input | This signal is valid only when AN is present. The rising edge of this signal is the enable signal to overwrite Bit 9 of Register 0. For triggering a fresh AN Start, this signal should be deasserted and then reasserted. |
| status_vector_chx[15:0] 1 | Output |
Bit[0]: Link Status This signal indicates the status of the link. When High, the link is valid; synchronization of the link has been obtained and Auto-Negotiation (if present and enabled) has successfully completed. When Low, a valid link has not been established. Either link synchronization has failed or Auto-Negotiation (if present and enabled) has failed to complete. When auto-negotiation is enabled, this signal is identical to Status register Bit 1.2: Link Status. When auto-negotiation is disabled, this signal is identical
to |
|
Bit[1]: Link Synchronization This signal indicates the state of the synchronization state machine (IEEE 802.3 figure 36-9) which is based on the reception of valid 8B/10B code groups. This signal is similar to Bit[0] (Link Status), but is not qualified with Auto-Negotiation. When High, link synchronization has been obtained and in the synchronization state machine, sync_status=OK. When Low, synchronization has failed. |
||
|
Bit[2]: RUDI(/C/) The core is receiving /C/ ordered sets (Auto-Negotiation Configuration sequences). |
||
|
Bit[3]: RUDI(/I/) The core is receiving /I/ ordered sets (Idles). |
||
|
Bit[4]: RUDI(INVALID) The core has received invalid data while receiving/C/ or /I/ ordered set. |
||
|
Bit[5]: RXDISPERR The core has received a running disparity error during the 8B/10B decoding function. |
||
|
Bit[6]: RXNOTINTABLE The core has received a code group that is not recognized from the 8B/10B coding tables. |
||
| status_vector_chx[15:0] 1 | Output |
Bit[7]: PHY Link Status This bit represents the link status of the external PHY device attached to the other end of the QSGMII link (High indicates that the PHY has obtained a link with its link partner; Low indicates that is has not linked with its link partner.) |
|
Bit[9:8]: Remote Fault Encoding This signal indicates the remote fault encoding (IEEE 802.3
table 37-3). This signal is validated by bit 13 of the
This signal has no significance when the core is in PHY mode and indicates "00." |
||
|
Bit [11:10]: SPEED This signal indicates that the speed is negotiated and is only valid when Auto-Negotiation is enabled. The signal encoding follows: Bit[11] Bit[10] 1 1 Reserved 1 0 1000 Mb/s 0 1 100 Mb/s 0 0 10 Mb/s |
||
|
Bit[12]: Duplex Mode This bit indicates the Duplex mode negotiated with the link partner. 1 = Full Duplex 0 = Half Duplex |
||
|
Bit[13] Remote Fault When this bit is logic 1, it indicates that a remote fault is detected and the type of remote fault is indicated by status_vector_chx bits[9:8]. This bit is only deasserted when an MDIO read is made to status register (register 1). This signal has no significance in QSGMII PHY mode |
||
|
Bits[15;14]: Pause These bits reflect the bits [8:7] of Register 5 (Link Partner Base AN register). Bit[15] Bit[14] 0 0 No Pause 0 1 Symmetric Pause 1 0 Asymmetric Pause towards Link partner 1 1 Both Symmetric Pause and Asymmetric Pause towards link partner |
||
|
||
QSGMII Core Physical Side Interface
The following table describes the interface to the device-specific transceiver. The core is connected to the chosen transceiver in the appropriate HDL example design delivered with the core.
| Signal | Direction | Description |
|---|---|---|
| mgt_rx_reset 1 | Output | Reset signal issued by the core to
the device-specific transceiver receiver path. Connects to the gtrxreset signal of the device-specific transceiver.
This reset is a combination of hard reset, soft reset and reset due to rxbuffer errors. |
| mgt_tx_reset 2 | Output | Reset signal issued by the core to
the device-specific transceiver transmitter path. Connects to the gttxreset signal of the device-specific transceiver.
This reset is a combination of hard reset, soft reset and reset due to txbuffer errors. |
| userclk | Input | Also connected to txusrclk of the device-specific transceiver. Clock
domain is not applicable. |
| userclk2 | Input | Also connected to txusrclk2 of the device-specific transceiver. Clock
domain is not applicable. |
| rxrecclk | Input | Also connected to rxusrclk2 of the device-specific transceiver. Clock
domain is not applicable. |
| dcm_locked | Input | A Digital Clock Manager (DCM) can
be used to derive userclk and userclk2. This is implemented in the HDL design example
delivered with the core. The core uses this input to hold the device-specific
transceiver in reset until the DCM obtains lock. Clock domain is not
applicable. |
| reset_done | Input | Indicates that both transceiver transmit and receive paths have completed reset cycle. |
| rxchariscomma[3:0] 1 1 | Input | Connects to device-specific transceiver signal of the same name. |
| rxcharisk[3:0] | Input | Connects to device-specific transceiver signal of the same name. |
| rxdata[31:0] 1 | Input | Connects to device-specific transceiver signal of the same name. |
| rxdisperr[3:0] 1 | Input | Connects to device-specific transceiver signal of the same name. |
| rxnotintable[3:0] 1 | Input | Connects to device-specific transceiver signal of the same name. |
| rxrundisp[3:0] 1 | Input | Connects to device-specific transceiver signal of the same name. |
| txbuferr 2 | Input | Connects to device-specific transceiver signal of the sam e name. |
| powerdown 2 | Output | Connects to device-specific transceiver signal of the same name. |
| txchardispmode[3:0] 2 | Output | Connects to device-specific transceiver signal of the same name. |
| txchardispval[3:0] 2 | Output | Connects to device-specific transceiver signal of the same name. |
| txcharisk[3:0] 2 | Output | Connects to device-specific transceiver signal of the same name. |
| txdata[31:0] 2 | Output | Connects to device-specific transceiver signal of the same name. |
| enablealign 2 | Output | Connects to device-specific transceiver signal of the same name. |
|
||
Block Hierarchy Level Ports
All the ports described here indicate the pins at the block level. The block level design instantiates the core and transceiver. The block level design is expected to be pulled from the IP catalog into the IP Canvas.
The following table shows the pinout for the QSGMII block with the optional MDIO Management and optional Auto-Negotiation. The port name for multiple instances of an interface is generalized as "CHx." "CHx" takes the value "CH0," "CH1," "CH2," and "CH3."
The following diagram shows the pinout for the QSGMII block with only optional MDIO Management. The port name for multiple instances of an interface is generalized as "CHx." "CHx" takes the value "CH0," "CH1," "CH2," and "CH3."
The following figure shows the pinout for the QSGMII block with only optional Auto-Negotiation. The port name for multiple instances of an interface is generalized as "CHx." "CHx" takes the value "CH0," "CH1," "CH2," and "CH3."
The following diagram shows the pinout for the QSGMII block without optional MDIO or Auto-Negotiation. The port name for multiple instances of an interface is generalized as "CHx." "CHx" takes the value "CH0," "CH1," "CH2," and "CH3."
QSGMII Block Client Side Interface
This interface contains four groups of interfaces, with each group containing a set of the GMII/MII interface, the optional management interface if supported and configuration vectors. The interfaces end in "chx," taking the values ch0 to ch3, indicating the port connection to the respective GMII interface.
GMII Pinout
This interface is enabled in the MAC mode or GMII configuration of PHY mode. In the MAC mode this interface is expected to be connected to the GMII interface of Tri-Mode Ethernet MAC core (TEMAC). In the GMII configuration of PHY mode, this interface is brought out onto the pads.
| Signal | Direction | Description |
|---|---|---|
| gmii_txd_chx[7:0] 1 | Input | GMII Transmit data |
| gmii_txd_en_chx 1 | Input | GMII Transmit data enable |
| gmii_tx_er_chx 1 | Input | GMII Transmit error |
| gmii_rxd_chx[7:0] 2 | Output | GMII Receive data |
| gmii_rxd_dv_chx 2 | Output | GMII Receive data valid |
| gmii_rx_er_chx 2 | Output | GMII Receive error |
| gtx_clk_chx | Input | GMII TX clock. This is valid only in GMII configuration in PHY mode |
| gmii_rx_clk_chx | Output | GMII RX clock. This is valid only in GMII configuration in PHY mode |
| sgmii_clk_en_chx | Output | Clock enables. This valid only in MAC mode. |
| sgmii_clk_en_rx_chx | Output | Clock enables. This valid only in MAC mode and when RX path is on rxuserclk2. |
|
||
| Signal | Direction | Description |
|---|---|---|
| mii_txd_chx[7:0] 1 | Input | MII Transmit data |
| mii_tx_en_chx 1 | Input | MII Transmit data enable |
| mii_tx_er_chx 1 | Input | MII Transmit error |
| mii_rxd_chx[7:0] 2 | Output | MII Receive data |
| mii_rx_dv_chx 2 | Output | MII Receive data valid |
| mii_rx_er_chx 2 | Output | MII Receive data error |
| mii_tx_clk_chx | Output | MII TX clock. This is valid only in MII configuration in MII mode. The clock can be 2.5/25 MHz based on 10/100 Mb/s mode of operation |
| mii_rx_clk_chx | Output | MII RX clock. This is valid only in MII configuration in MII mode. The clock can be 2.5/25 MHz based on 10/100 Mb/s mode of operation |
|
||
Common Signals
See Table 2 for these signals.
MDIO Management Interface Pinout (Optional)
See of Table 3 for these signals.
Auto-Negotiation Interface Pinout (Optional)
See Table 4 for these signals.
Additional Configuration Interface
See Table 5 for these signals.
QSGMII Block Physical Side Interface
The following table describes the interface to the device-specific transceiver for the case where shared logic is included in the example design. However, Versal Adaptive SoC families only support shared logic is included in the example design setting.
| Signal | Direction | Description |
|---|---|---|
| gtrefclk | Input | 125 MHz reference clock from IBUFDS to the transceiver |
| txp | Output | Transmit differential |
| txn | Output | Transmit differential |
| rxp | Input | Receive differential |
| rxn | Input | Receive differential |
| txoutclk | Output |
txoutclk from transceiver |
| userclk | Input | Also connected to txusrclk of the device-specific transceiver. Clock
domain is not applicable |
| userclk2 | Input | Also connected to txusrclk2 of the device-specific transceiver. Clock
domain is not applicable. |
| rxoutclk | Output |
rxoutclk from transceiver. |
| rxuserclk | Input | Also connected to rxusrclk of the device-specific transceiver. Clock domain is not applicable. |
| rxuserclk2 | Input | Also connected to rxusrclk2 of the device-specific transceiver. Clock domain is not applicable. |
| independent_clock_bufg | Input | Stable clock used as stable clock in transceiver and also as control clock for IDELAYCTRL. This clock is 200 MHz for devices and 300 MHz for UltraScale+ families and UltraScale devices. |
| resetdone | Output | Indication that reset sequence of the transceiver is complete. |
| pma_reset | Input | Hard reset synchronized to independent_clock_bufg . |
| mmcm_locked | Input | Indication from the MMCM that the outputs are stable. |
| independent_clock_bufgdiv4 | Input | Independent clock divided by 4. This clock is only present for UltraScale+ families and UltraScale devices when Transceiver Control and Status Ports are disabled. |
| GT Common Clock Interface | ||
| gt0_pll0outclk_in | Input | Valid only for Artix 7 families. Indicates out clock from PLL0 of GT Common. |
| gt0_pll0outrefclk_in | Input | Valid only for Artix 7 families. Indicates reference out clock from PLL0 of GT Common. |
| gt0_pll1outclk_in | Input | Valid only for Artix 7 families. Indicates out clock from PLL1 of GT Common. |
| gt0_pll1outrefclk_in | Input | Valid only for AMD Artix™ 7 families. Indicates reference out clock from PLL1 of GT Common. |
| gt0_pll0lock_in | Input | Valid only for Artix 7 families. Indicates out PLL0 of GT Common has locked. |
| gt0_pll0refclklost_in | Input | Valid only for Artix 7 families. Indicates out reference clock for PLL0 of GT Common is lost. |
| gt0_pll0reset_out | Output | Valid only for Artix 7 families. Reset for PLL of GT Common from reset fsm in GT Wizard. |
| gt0_qplloutclk_in | Input | Valid only for non Artix 7 families. Indicates out clock from PLL of GT Common. |
| gt0_qplloutrefclk_in | Input | Valid only for non Artix 7 families. Indicates reference out clock from PLL of GT Common. |
The following table describes the interface to the device-specific transceiver when shared logic is in the core.
| Signal | Direction | Description |
|---|---|---|
| gtrefclk_p | Input | 125 MHz differential reference clock to IBUFDS |
| gtrefclk_p | Input | 125 MHz differential reference clock to IBUFDS |
| gtrefclk_out | Output | 125 MHz reference clock from IBUFDS |
| txp | Output | Transmit differential |
| txn | Output | Transmit differential |
| rxp | Input | Receive differential |
| rxn | Input | Receive differential |
| userclk_out | Output | Also connected to txusrclk of the device-specific transceiver. Clock domain is not applicable. |
| userclk2_out | Output | Also connected to txusrclk2 of the device-specific transceiver. Clock domain is not applicable. |
| rxuserclk_out | Output | Also connected to rxusrclk of the device-specific transceiver. Clock domain is not applicable. |
| rxuserclk2_out | Output | Also connected to rxusrclk2 of the device-specific transceiver. Clock domain is not applicable. |
| independent_clock_bufg | Input |
Stable clock used as stable clock in transceiver and also as control clock for IDELAYCTRL. This clock is 200 MHz for 7 series devices and 300 MHz for UltraScale+ families and UltraScale devices. |
| resetdone | Output | Indication that reset sequence of the transceiver is complete. |
| pma_reset_out | Output | Hard reset synchronized to independent_clock_bufg. |
| mmcm_locked_out | Output | Indication from the MMCM that the outputs are stable. |
| independent_clock_bufgdiv4_out | Output | Independent clock divided by 4. This clock is only present for UltraScale+ families and UltraScale devices when Transceiver Control and Status Ports are disabled. |
| GT Common Clock Interface | ||
| gt0_pll0outclk_out | Output | Valid only for Artix 7 families. Indicates out clock from PLL0 of GT Common. |
| gt0_pll0outrefclk_out | Output | Valid only for Artix 7 families. Indicates reference out clock from PLL0 of GT Common. |
| gt0_pll1outclk_out | Output | Valid only for Artix 7 families. Indicates out clock from PLL1 of GT Common. |
| gt0_pll1outrefclk_out | Output | Valid only for Artix 7 families. Indicates reference out clock from PLL1 of GT Common. |
| gt0_pll0lock_out | Output | Valid only for Artix 7 families. Indicates out PLL0 of GT Common has locked. |
| gt0_pll0refclklost_out | Output | Valid only for Artix 7 families. Indicates out reference clock for PLL0 of GT Common is lost. |
| gt0_qplloutclk_out | Output | Valid only for non Artix 7 families. Indicates out clock from PLL of GT Common. |
| gt0_qplloutrefclk_out | Output | Valid only for non Artix 7 families. Indicates reference out clock from PLL of GT Common. |