
Required Constraints
R
INST "core_wrapper/tbi_rx_clk1_dcm" CLKOUT_PHASE_SHIFT = FIXED;
INST "core_wrapper/tbi_rx_clk1_dcm" PHASE_SHIFT =
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
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
Ethernet | www.xilinx.com | 171 |