General Description: Foundation Express users have the ability to use the FPGA Express Constraints Editor to enter physical and timing constraints for the design. This solution provides more detail about how and when these constraints are applied.
The first thing to note is that the Express Constraints Editor will not export timing constraints by default. Physical constraints (pin locations, slew rate, pullup usage, clock buffers, etc.) will always be applied when entered, but timing specifications (written as TIMESPECs in the XNF or NCF (Virtex only)) will only be written if that option has been enabled by the user. To enable this option, select Synthesis->Options within the Foundation Project Manager and check the box next to "Export Timing Constraint".
To access the Express Constraints Editor, check the box next to "Edit Synthesis/Implementation Constraints" when Synthesizing the design. This will prompt the Express Constraints Editor to open after the elaboration phase of synthesis has completed. You can also open the Constraints Editor on a Version that has already been synthesized by right-clicking the Functional Structure (under the Versions tab) and selecting "Edit Constraints..."
Each synthesis run is represented by a Version in your Foundation project. Constraints entered in the Express Constraints Editor are applied only to that particular Version.
If you use the "Update" command to re-synthesize and re-optimize an existing Version, the constraints will remain and apply to that Version. The Update command is used by right-clicking on the Functional Structure or Optimized Structure and selecting "Update".
If you want to take constraints entered in one Version and apply them to another Version, you must use the "Export Constraints" and "Import Constraints" buttons. In the first Version, select the Functional Structure, right click and select "Edit Constraints". Click the "Export Constraints" button to save the constraints in an .EXC file. Then, when synthesizing the new version, open the Constraints Editor and click on the "Import Constraints" button and select the .EXC file saved earlier.
Express will apply any constraints it can, but realize if instances or names have changed in the source HDL, Express will not be able to match constraints relating to the modified instances.