My design has a DCM and a ODDR logic. The DCM has a feedback path using BUFIO2FB.
When implemented, the designends up being unroutable. What are the routing restrictions involved that prevent this connection from routing? Why did the Placer fail to choose a routable placement?
The BUFG-->BUFIO2FB path requires that the router make use of an IOI tile route-thru. This IOI Route-thru is absolutely normaland is drivento match delays. The placer needs to place the BUFIO2/BUFIO2FB pair so that this route does not conflict with other clocks for the limited clock routing resources in the IOI tool. Please refer the diagram below for the clock routing in Spartan-6 in IOI tile.
As an example if a BUFIO2/BUFIO2FB pair that the placer chose creates a conflict with an ODDR in the IOI tile,you may see a unroutable design. One of the ODDR clocks would be left unrouted as a result. A CR is under investigation to have the clock placer correctly handle this BUFIO2FB use case.Meanwhile, the problem can be worked around by constraining the BUFIO2 and BUFIO2FB component. Choose an available BUFIO2/BUFIO2_FB site from the upper group and add a LOC constraint to the UCF file:
INST "bufio2_symbol_name" LOC =BUFIO2_X3Y1;
INST "bufio2fb_symbol_name" LOC =BUFIO2FB_X3Y1;