In some cases, the Placer fails to find a correct site for the MMCM even though the appropriate MMCM sites are actually free.
The following error is given:
ERROR:Place:1244 - Unroutable Placement! A BUFDS / MMCM clock component pair have been found that are not placed at a
routable BUFDS / MMCM site pair. The BUFDS component <unit_srio_top/unit_srio_dsp1/phy_4x_ser_clk/u_refclk_ibufds> is
placed at site <IBUFDS_GTXE1_X0Y10>. The corresponding MMCM component
<unit_srio_top/unit_srio_dsp1/phy_4x_ser_clk/u_rio_sercore_mmcm> is placed at site <MMCM_ADV_X0Y9>. The pair can use
the fast path between them if the BUFDS and MMCM are both placed in the same horizontal clock region pair. You may
want to analyze why this problem exists and correct it. This placement is UNROUTABLE in PAR and therefore, this error
condition should be fixed in your design. You may use the CLOCK_DEDICATED_ROUTE constraint in the .ucf file to demote
this message to a WARNING in order to generate an NCD file. This NCD file can then be used in FPGA Editor to debug
the problem. A list of all the COMP.PINS used in this clock placement rule is listed below. These examples can be
used directly in the .ucf file to demote this ERROR to a WARNING.
< PIN "unit_srio_top/unit_srio_dsp1/phy_4x_ser_clk/u_refclk_ibufds.O" CLOCK_DEDICATED_ROUTE = FALSE; >
< PIN "unit_srio_top/unit_srio_dsp1/phy_4x_ser_clk/u_rio_sercore_mmcm.CLKIN1" CLOCK_DEDICATED_ROUTE = FALSE; >
In this example (xc6vhx255t), the MMCM should be placed at MMCM_ADV_X0Y10 or MMCM_ADV_X0Y11 to work with IBUFDS_GTXE1_X0Y10.
MMCM_ADV_X0Y10 and MMCM_ADV_X0Y11 are free sites which are not occupied by any other MMCM's.