Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


FPGA Express: Using RLOC_ORIGIN with Express RPMs


Record #2230

Product Family:  Software

Product Line:  Synopsys

Problem Title:
FPGA Express:  Using RLOC_ORIGIN with Express RPMs


Problem Description:
Keywords: FGPA Express, Foundation Express, RLOC, RLOC_ORIGIN, UCF, RPM

Urgency: Standard

General Description:
FPGA Express uses its knowledge to build Relationally Placed Macros (RPMs).
For example, an eight bit counter will be built four rows high and one column
wide.  This placement is achieved by placing Relative LOCation constraints
(RLOCs) on the FMAPs, Flip Flops, and carry logic that is used to build the
counter.  However, RLOCs simply group this logic together; they do not
determine where on the die this component will be placed.

RLOCed groups may be given an RLOC_ORIGIN to define the upper left hand corner
of the RPM.  Express does not allow attribute passing, so this attribute may
not be applied to the source HDL or otherwise entered within Express.

This solution explains how to enter these constraints via the UCF.


Solution 1:

An RLOC_ORIGIN constraint is applied to any element containing an RLOC
constraint.  Although RLOCs will also be placed on FMAPs and Carry logic, the
most predictable element type is the flip flop.  Flip flops are named by Express
 according to the output net name followed by "_reg" and the bus index,
if necessary.

For example, if your code contains:

COUNT <= COUNT + 1;

and COUNT is an 8 bit signal, the XNF file will contain a line like this:

SYM, COUNT_reg<0>, DFF, LIBVER=2.0.0, RLOC=R4C0.FFX, U_SET=inc_rpl_8_12_2


This predictable name, COUNT_reg<0> can be used in the UCF file as follows:

INST COUNT_reg<0> RLOC_ORIGIN=R1C1;

This syntax will place the origin of the counter RPM in the top left hand
corner of the die.  It does not matter which bus bit is used, although it is
highly recommended you use the most significant or least significant bit.

If you do not see RLOCs on your flip flops, then you could have an older
version of Express.  See (Xilinx Solution 3566) to upgrade.


Hierarchy in XNF files produced by Express is denoted by underscores.  If this
counter is in a level called "LOWER", then the proper syntax to use would be:

INST LOWER_COUNT_reg<0> RLOC_ORIGIN=R1C1;


If the Preserve attribute has been used in the Express constraints GUI, and
subsequently multiple XNF files have been produced (creating LOWER.XNF in this
example), the hierarchy delimiter will be a forward slash.  In this case:

INST LOWER/COUNT_reg<0> RLOC_ORIGIN=R1C1;


For more information about RPMs, RLOCs, and RLOC_ORIGIN, please see Chapter 4
of the Libraries Guide.



End of Record #2230

For the latest news, design tips, and patch information on the Xilinx design environment, check out the Xilinx Expert Journals!

© 1998 Xilinx, Inc. All rights reserved
Trademarks and Patents