^

AR# 33291 11.2 EDK - XPS_LL_TEMAC fails to implement in SGMII mode on Virtex-5 LX20T, FX20T and SX20T devices

Keywords: sgmii, virtex5, v5, temac, bufr, bufg, place, 909

When XPS_LL_TEMAC is implemented in SGMII mode on the smallest devices like Virtex-5 LX20T, SX20T and FX20T, the following errors are generated:

ERROR:Place:909 - Regional Clock Net
"temac/temac/V5HARD_SYS.I_TEMAC/SINGLE_SGMII_NOTFX.I_EMAC_TOP/GTP_dual_1000X_
inst/RXRECCLK_0_BUFR" cannot possibly be routed to component
"temac/temac/V5HARD_SYS.I_TEMAC/SINGLE_SGMII_NOTFX.I_EMAC_TOP/GTP_dual_1000X_
inst/GTP_1000X/tile0_rocketio_wrapper_i/gtp_dual_i" (placed in clock region
"CLOCKREGIONP_X1Y2"), since it is too far away from source BUFR
"temac/temac/V5HARD_SYS.I_TEMAC/SINGLE_SGMII_NOTFX.I_EMAC_TOP/GTP_dual_1000X_
inst/rxrecclk0bufr" (placed in clock region "CLOCKREGION_X0Y2"). The
situation may be caused by user constraints, or the complexity of the design.
Constraining the components related to the regional clock properly may guide
the tool to find a solution.
To debug your design with partially routed results, please allow map/placer
to finish the execution (by setting environment variable
XIL_PAR_DEBUG_IOCLKPLACER to 1).


ERROR:Place:909 - Regional Clock Net
"temac/temac/V5HARD_SYS.I_TEMAC/SINGLE_SGMII_NOTFX.I_EMAC_TOP/GTP_dual_1000X_
inst/RXRECCLK_0_BUFR" cannot possibly be routed to component
"temac/temac/V5HARD_SYS.I_TEMAC/SINGLE_SGMII_NOTFX.I_EMAC_TOP/GTP_dual_1000X_
inst/GTP_1000X/tile0_rocketio_wrapper_i/gtp_dual_i" (placed in clock region
"CLOCKREGIONP_X1Y2"), since it is too far away from source BUFR
"temac/temac/V5HARD_SYS.I_TEMAC/SINGLE_SGMII_NOTFX.I_EMAC_TOP/GTP_dual_1000X_
inst/rxrecclk0bufr" (placed in clock region "CLOCKREGION_X0Y2"). The
situation may be caused by user constraints, or the complexity of the design.
Constraining the components related to the regional clock properly may guide
the tool to find a solution.
To debug your design with partially routed results, please allow map/placer
to finish the execution (by setting environment variable
XIL_PAR_DEBUG_IOCLKPLACER to 1).

These errors are generated because these devices are missing the right column on IOs, which implies that the BUFRs in these columns are not present as well. Since the GTPs are located on the right side, the BUFRs instantiated in the design cause an unroutable situation.

To work around and resolve this issue, replace the instantiation of this BUFR with a BUFG.

1. Copy the xps_ll_temac_v2_02_a core from the install folder, $XILINX_EDK\hw]XilinxProcessorIPLib\pcores to the project local pcores folder, <Project>\pcores\.

2. Open the file, <Project>\pcores\xps_ll_temac_v2_02_a\hdl\vhdl\v5_single_sgmii_gtp_dual_1000X.vhd in a text editor. Note, for the FXT implementation, v5_single_sgmii_gtx_dual_1000X.vhd should be edited.

3. Replace lines 306-309,

-- Route RXRECLK0 through a regional clock buffer
rxrecclk0bufr : BUFR port map (I => RXRECCLK_0, O => RXRECCLK_0_BUFR,
CE => '1', CLR => '0');

with

-- Route RXRECLK0 through a global clock buffer
rxrecclk0bufr : BUFG port map (I => RXRECCLK_0, O => RXRECCLK_0_BUFR,
CE => '1', CLR => '0');

4. Save the file. Clean the generated files and reimplement the design.

NOTE:
1. The modfications should be made in the local pcores folder.
2. The above solution has not gone through official testing and will also increase the usage of BUFGs in the system.



AR# 33291
Date Created 09/10/2009
Last Updated 09/12/2009
Status Active
Type
Feed Back