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.

Chapter 4: <strong>Xilinx</strong> <strong>Constraints</strong><br />

You can assign soft macros and flip-flops to a single slice location, a list of slice locations,<br />

or a rectangular block of slice locations.<br />

Slice locations can be a fixed location or a range of locations. Use the following syntax<br />

to denote fixed locations.<br />

SLICE_XmY n<br />

where<br />

Slices Prohibited<br />

m and n are the X and Y coordinate values, respectively<br />

They must be less than or equal to the number of slices in the target device. Use the<br />

following syntax to denote a range of locations from the highest to the lowest.<br />

SLICE_X mYn:SLICE_XmY n<br />

Format of Slice <strong>Constraints</strong><br />

The following examples illustrate the format of slice constraints: LOC= and the slice<br />

location. If the target symbol represents a soft macro, the LOC constraint is applied to all<br />

appropriate symbols (flip-flops, maps) contained in that macro. If the indicated logic<br />

does not fit into the specified blocks, an error is generated.<br />

Slice <strong>Constraints</strong> Example One<br />

The following UCF statement places logic in the designated slice.<br />

INST “instance_name” LOC=SLICE_X133Y10;<br />

Slice <strong>Constraints</strong> Example Two<br />

The following UCF statement places logic within the first column of slices. The asterisk<br />

(*) is a wildcard character<br />

INST “instance_name” LOC=SLICE_X0Y*;<br />

Slice <strong>Constraints</strong> Example Three<br />

The following UCF statement places logic in any of the three designated slices. There is<br />

no significance to the order of the LOC statements.<br />

INST “ instance_name” LOC=SLICE_X0Y3, SLICE_X67Y120, SLICE_X3Y0;<br />

Slice <strong>Constraints</strong> Example Four<br />

The following UCF statement places logic within the rectangular block defined by the<br />

first specified slice in the lower left corner and the second specified slice towards the<br />

upper right corner.<br />

INST “ instance_name" LOC=SLICE_X3Y22:SLICE_X10Y55;<br />

You can prohibit PAR from using a specific slice, a range of slices, or a row or column<br />

of slices. Such prohibit constraints can be assigned only through the User <strong>Constraints</strong><br />

File (UCF). Slices are prohibited by specifying a Prohibit (PROHIBIT) constraint at the<br />

design level, as shown in the following examples.<br />

Slices Prohibited Example One<br />

Do not place any logic in the SLICE_X0Y0. SLICE_X0Y0 is at the lower left corner of<br />

the device.<br />

Schematic None<br />

UCF CONFIG PROHIBIT=SLICE_X0Y0;<br />

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

168 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!