I ran my design through the implementation tools, then opened the design in Floorplanner. I performed a "Floorplan ->Replace All with Placement" command and generated a UCF with the placement information. Finally, I ran the design again through implementation, expecting to receive the same results. However, the following error in PAR occurs about an illegal placement:
"Phase 1.1 ERROR:Place - Structured logic associated with an F6 configuration could not be placed due to a placement constraint. This logic requires a very specific relative placement. The relative placement required by the logic was impossible to resolve.
The following components are involved in this logic:
SLICE FrankCore/u8/initialDistributionData_14_7 locked to site SLICE_X123Y70
This situation can be resolved by fixing the following issue:
This structured logic must be placed in the relative placement form required. Some of the logic associated with this structure is locked. This should cause the rest of the logic to be locked. A problem was found at site SLICE_X123Y71 where we must place SLICE FrankCore/u8/initialDistributionData_14_3_0 in order to satisfy the relative placement requirements of this logic. SLICE FrankCore/u8/queueMap appears to already be placed there which makes this design unplaceable."
I am using the same placement that PAR and Floorplanner produced. Why do I receive this error?
The problem occurs because the UCF generated by Floorplanner does not have every BEL LOCed , namely the F5 MUX. This F5 MUX must be packed into the same component as the F6 MUX it feeds. However, since the F6 is LOCed and the F5 is not, MAP does not recognize that these implicitly need to be in the same component.
To work around this issue, either Manually LOC the F5 MUX to the correct location, or turn off the "Pack Unrelated Logic" option in MAP. This way, no unrelated logic will be put there instead of the correct F5 MUX.
This issue will be fixed in a future release of the software.