Tuesday, April 21, 2009

Can Xilinx ISE be any worse? #!@&^ PCF files

Working with Xilinx's ISE 10.1 has proven to be quite a challenge. The latest failure of their tools has to do with PCF (Physical Constraints File) files. Here's an error that took a while to figure out:

Resolving constraint associations...
Checking Constraint Associations...
ERROR:ConstraintSystem:59 - Constraint "pcie_inst/pcie/BU2/U0/pcie_ep0/pcie_blk/clocking_i/clkout0" TNM_NET =
pcie_inst_pcie_BU2_U0_pcie_ep0_pcie_blk_clocking_i_clkout0>: NET
"pcie_inst/pcie/BU2/U0/pcie_ep0/pcie_blk/clocking_i/clkout0" not found.
Please verify that:
1. The specified design element actually exists in the original design.
2. The specified object is spelled correctly in the constraint source file.

This error is due to the fact that I have constraints that refer to objects that no longer exist in the code. This makes sense since I commented out all pcie code. This doesn't make sense since I also commented out (from the project's UCF file) all constraints (including the above one) that refer to pcie code. So why is it complaining about a constraint that doesn't exist? After attempting my "Rerun All" commands, and after many changes and frustrations I discovered that ISE copies constraints from the project's UCF file into a PCF file during the compilation process. Since I previously had these constraints and compiled with them, the old PCF file wasn't updated. ISE doesn't bother deleting or recreating this file when manually editing the UCF file which causes it to give errors on constraints that no longer exist.

Delete this file, it might help.


  1. Really stupid bug.
    I got the same trouble & then found your post.
    Damn it.

  2. Same here.
    Now when I get an unexpected error after removing something, I go directly to Project -> Clean up Project files.

    This IDE is... eeewww.

  3. Hi,
    same error, I solved in this way:
    1 - I removed the UCF file from the project
    2 - I did "cleanup project files"
    3 - I edited the UCF file and removed contraint belongs to signals that no longer exists
    4 - I put the UCF file in the project again
    5 - No error at this point! :-)



  4. As of ISE 14.5 this bug still exist, I use two different UCF files to target two different hardware revisions and I must "cleanup project files" or it will used the old UCF that is not longer part of the project.
    O well, there are no incentives at Xilinx to fix these bugs.