Xilinx 1000BASE-X User Manual

Page 171

Advertising
background image

Ethernet 1000BASE-X PCS/PMA or SGMII v9.1

www.xilinx.com

171

UG155 March 24, 2008

Required Constraints

R

INST "core_wrapper/tbi_rx_clk1_dcm" CLKOUT_PHASE_SHIFT = FIXED;

INST "core_wrapper/tbi_rx_clk1_dcm" PHASE_SHIFT = -10;

INST "core_wrapper/tbi_rx_clk1_dcm" DESKEW_ADJUST = 0;

The values of

PHASE_SHIFT

are preconfigured in the example designs to meet the setup

and hold constraints for the example TBI pinout in the particular device. The setup/hold
timing which is achieved after place-and-route is reported in the datasheet section of the
TRCE report (created by the implement script).

For customers fixing their own pinout, the setup and hold figures reported in the TRCE
report can be used to initially setup the approximate DCM phase shift values.

Appendix C,

“Calculating the DCM Fixed Phase Shift Value”

describes a more accurate method for

fixing the phase shift by using hardware measurement of a unique PCB design.

Virtex-4 Devices

Figure 6-4, page 73

illustrates the TBI input logic provided by the example design for the

Virtex-4 family. IDELAY elements are instantiated on the TBI data input path as illustrated:
the number of tap delays is currently set to zero. This can be modified in the UCF file, if
desired, to de-skew the bus for PCB routing.

A fixed tap delay is applied to delay the pma_rx_clk0 clock so that it correctly samples
the TBI data at the IOB IDDR register, thereby meeting TBI setup and hold timing.

The tap delays are applied using the following UCF syntax.

#-----------------------------------------------------------

# To Adjust TBI Rx Input Setup/Hold Timing -

#-----------------------------------------------------------

INST "core_wrapper/delay_pma_rx_clk" IOBDELAY_VALUE = "40";

INST "core_wrapper/tbi_rx_data_bus[9].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[8].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[7].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[6].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[5].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[4].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[3].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[2].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[1].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

INST "core_wrapper/tbi_rx_data_bus[0].delay_tbi_rx_data"

IOBDELAY_VALUE = "0";

The value of

IOBDELAY_VALUE

for the pma_rx_clk0 clock is preconfigured in the

example designs to meet the setup and hold constraints for the example TBI pinout in the
particular device. The setup/hold timing which is achieved after place-and-route is
reported in the datasheet section of the TRCE report (created by the implement script). See

“Understanding Timing Reports for Setup/Hold Timing.”

Advertising