01.07.2013 Views

Xilinx Constraints Guide

Xilinx Constraints Guide

Xilinx Constraints Guide

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Timing Constraint Strategies<br />

Chapter 3<br />

The goal of using timing constraints is to ensure that all the design requirements are<br />

communicated to the implementation tools. This goal also implies that all paths are<br />

covered by the appropriate constraint. This chapter provides general guidelines that<br />

explain the strategy for identifying and constraining the most common timing paths<br />

in FPGA devices in the most efficient manner possible.<br />

Note For more information, see the Timing <strong>Constraints</strong> User <strong>Guide</strong> (UG612)..<br />

Basic <strong>Constraints</strong> Methodology<br />

In order to ensure a valid design, the timing requirements for all paths must be<br />

communicated to the implementation software. The timing requirements can be broken<br />

down into several global categories based on the type of path that is to be covered. The<br />

most common types of path categories include:<br />

• Input paths<br />

• Register-to-register paths<br />

• Output paths<br />

• Path specific exceptions<br />

A <strong>Xilinx</strong>® timing constraint is associated with each of these global category types. The<br />

most efficient way to specify these constraints is to begin with global constraints, then<br />

add path specific exceptions as needed. In many cases, only the global constraints are<br />

required.<br />

The FPGA implementation software is driven by the specified timing requirements.<br />

The software assigns device resources, and expends the appropriate amount of effort<br />

necessary to ensure that the timing requirements are met. However, when a requirement<br />

is over-constrained (or specified as a value greater than the design requirement), the<br />

effort to meet this constraint increases significantly, and results in increased memory<br />

use and tool runtime. In addition, over-constraining can degrade performance for not<br />

only that particular constraint, but for other constraints as well. For this reason, <strong>Xilinx</strong><br />

recommends that you specify the constraint values using the actual design requirements.<br />

The method of applying constraints given in this guide uses User <strong>Constraints</strong> File (UCF)<br />

constraint syntax examples. This format highlights the constraints syntax that conveys<br />

the design requirements. However, the easiest way to enter design constraints is to<br />

use <strong>Constraints</strong> Editor, which:<br />

• Provides a unified location in which to manage all timing constraints associated<br />

with a design<br />

• Provides assistance in creating timing constraints from the design requirements<br />

<strong>Constraints</strong> <strong>Guide</strong><br />

UG625 (v. 13.2) July 6, 2011 www.xilinx.com 51

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!