01.07.2013 Views

Xilinx Constraints Guide

Xilinx Constraints Guide

Xilinx Constraints Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 1: Constraint Types<br />

Predefined Group Examples<br />

From-To statements enable you to define timing specifications for paths between<br />

predefined groups. The following examples are TS constraints that are entered in<br />

the UCF. This method enables you to easily define default timing specifications, as<br />

illustrated by the following examples.<br />

Following is a UCF syntax example.<br />

TIMESPEC "TS01"=FROM FFS TO FFS 30;<br />

TIMESPEC "TS02"=FROM LATCHES TO LATCHES 25;<br />

TIMESPEC "TS03"=FROM PADS TO RAMS 70;<br />

TIMESPEC "TS04"=FROM FFS TO PADS 55;<br />

TIMESPEC "TS01" = FROM BRAMS_PORTA TO BRAMS_PORTB(gork*);<br />

For BRAMS_PORTA and BRAM_PORTB, the specification TS01 controls paths that begin<br />

at any A port and end at a B port, which drives a signal matching the pattern gork*.<br />

BRAMS_PORTA and BRAMS_PORTB Examples<br />

Following are additional examples of BRAMS_PORTA and BRAMS_PORTB.<br />

NET "X" TNM_NET = BRAMS_PORTA groupA;<br />

The TNM group groupA contains all A ports that are driven by net X. If net X is traced<br />

forward into any B port inputs, any single-port block RAM elements, or any Select RAM<br />

elements, these do not become members of groupA.<br />

NET "X" TNM_NET = BRAMS_PORTB( dob* ) groupB;<br />

The TNM group groupB contains each B port driven by net X, if at least one output on<br />

that B port drives a signal matching the pattern dob*.<br />

INST "Y" TNM = BRAMS_PORTB groupC;<br />

The TNM group groupC contains all B ports found under instance Y. If instance Y is<br />

itself a dual-port block RAM primitive, then groupC contains the B port of that instance.<br />

INST "Y" TNM = BRAMS_PORTA( doa* ) groupD;<br />

The TNM group groupD contains each A port found under instance Y, if at least one<br />

output on that A port drives a signal matching the pattern doa*.<br />

TIMEGRP "groupE" = BRAMS_PORTA;<br />

The user group groupE contains the A ports of all dual-port block RAM elements. This<br />

is equivalent to BRAMS_PORTA ( * ).<br />

TIMEGRP "groupF" = BRAMS_PORTB( mem/dob* );<br />

The user group groupF contains all B ports, which drives a signal matching the pattern<br />

mem/dob*.<br />

A predefined group can also carry a name qualifier. The qualifier can appear any place<br />

the predefined group is used. This name qualifier restricts the number of elements<br />

referred to. The syntax is:<br />

predefined group (name_qualifier [ name_qualifier ])<br />

name_qualifier is the full hierarchical name of the net that is sourced by the primitive<br />

being identified.<br />

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

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

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

Saved successfully!

Ooh no, something went wrong!