ISE
Constraints Overview
The ISE® software allows you to specify different types of constraints to help improve your design performance. Each type of constraint serves a different purpose and is recommended under different circumstances. Following are some of the most commonly used types of constraints.
  •  Timing Constraints
    Timing constraints are typically specified globally but can also be specified for individual paths. Global constraints include period constraints for each clock (PERIOD), setup times for each input (OFFSET_IN), and clock-to-out constraints for each output (OFFSET_OUT). You can enter timing constraints using the Create Timing Constraints process in Project Navigator. This creates a text-based User Constraints File (UCF), which is used during implementation. You can enter timing constraints for synthesis in a separate XST Constraint File (XCF). For more information on entering constraints, see Constraints Entry Methods.
    Results for the timing constraints are automatically reported after implementation, and are also available from the Design Summary. To analyze the results of your timing specifications, use Timing Analyzer or the command line tools Timing Reporter and Circuit Evaluator (TRACE) for FPGA designs and TAEngine for CPLD designs.
  •  Placement Constraints
    For FPGA designs, you can specify placement constraints for each type of logic element, such as BRAMs, DSPs, LUTs, FFs, I/Os, IOBs, and global buffers. Individual logic gates, such as AND and OR gates, are mapped into CLB function generators before the constraints are read and cannot be constrained. For CPLD designs, you can specify placement constraints for macrocells, for function blocks, and for I/Os.
    Note Adding a small number of placement constraints, such as I/Os, clock logic, BRAMs, and DSPs, often improves performance on a few, specific paths. However, use this method sparingly, because adding too many placement constraints often decreases performance in other parts of the design.
  •  Synthesis Constraints
    Synthesis constraints instruct the synthesis tool to perform specific operations. When using XST for synthesis, synthesis constraints control how XST processes and implements FPGA resources, such as state machines (FSM_EXTRACT, FSM_ENCODING), multiplexers (MUX_EXTRACT), and multipliers (MULT_STYLE), during the HDL synthesis and low level optimization steps. Synthesis constraints also allow control of register duplication (REGISTER_DUPLICATION) and fanout control (MAX_FANOUT) during global timing optimization. To give XST specific targets during global optimization, you can enter timing constraints for synthesis in the XCF file.
Note You can use multiple tools to edit UCF files, such as the PlanAhead™ software, Constraints Editor, or ISE Text Editor. To avoid conflicts, close each editing tool as you complete your edits.
Additional Resources
Additional information is available in the following Xilinx® documentation.
DocumentationTopics Covered
Constraints GuideConstraint types, entry methods supported for each constraint, and a listing of all constraints
Command Line Tools User GuideTRACE and TAEngine command line tools
PlanAhead User GuidePlanAhead software
XST User GuideXilinx Synthesis Technology (XST) constraints
Constraints Editor Help
Note In the Help Viewer, click the Synchronize TOC button Image to view all related Help topics.
Constraints Editor software
Timing Analyzer Help
Note In the Help Viewer, click the Synchronize TOC button Image to view all related Help topics.
Timing Analyzer software
See Also

© Copyright 1995–2009, Xilinx® Inc. All rights reserved.