Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


PPR 5.0: Constraining RPMs in a CST file (includes RPMCON instructions)


Record #419

Problem Title:
PPR 5.0: Constraining RPMs in a CST file (includes RPMCON instructions)


Problem Description:



Solution 1:




Relationally placed macros cannot be constrained through the CST file in
PPR 5.0.  The CST file is only useful for single-instance entities; in
contrast, RPMs are clusters of instances threaded together by a common set
name.  PPR will also not allow you to constrain a single instance of an RPM
in the hopes that this will also lock down its brethren.

The only way to constrain an RPM with "official" software is to place the
appropriate RLOC_ORIGIN attribute on it in the schematic.  For users who
need to use list-based constraints, Xilinx Technical Support has a
utility program called RPMCon that translates RLOCs in an XTF file
into LOCs according to a list of user-specified instructions. This
program is not supported or tested like a standard software product.

Below are the instructions for using RPMCON 1.3, and also the sparc
executable, uuencoded and compressed.

RPMCON v1.40
============

(Also covers PC version 1.31)

RPMCon is a utility that allows you to place location constraints for RPMs
in a special "constraints" file.  This allows you to floorplan RPMs more
easily, without having to place RLOC_ORIGINs on the original schematic and
having to recompile the entire design.

The "constraints" file is called an RCF file (for "RPM constraints file")
and has a syntax similar to that of PPR's CST file.  The format for an RCF
constraint is:

   place set <rpm_set_name>: clb_r<row>c<col>;

(Any number of spaces may be inserted around all fields.  The colon and
semicolon may be preceded by spaces, but they must be included or the line
will be ignored.)

The CLB location field specifies the location of the upper-left corner of
the RPM referenced by <rpm_set_name>.  <rpm_set_name> is a value unique to
each RPM in a design, and is the value assigned to the symbol attributes
H_SET, HU_SET, and U_SET.

For example, say an XTF file has the following line:

   SYM, TOP/EXAMPLE, DFF, SCHNM=FDCE, H_SET=TOP/hset, RLOC=R1C6.FFX, INIT=R

This is a flip-flop labeled TOP/EXAMPLE which belongs to the RPM set called
TOP/hset.  All instances that belong to this RPM set may be constrained by
the following line in the RCF file:

   place set top/hset: clb_r4c2;

(The RCF file is case insensitive.)

An instance in TOP/hset with RLOC=R0C0 would thus be placed in CLB_R4C2.
By transposition, TOP/EXAMPLE, would be placed in CLB_R5C8.FFX.

RPMCon works by reading in the RCF constraints, then rewriting the XTF file
with LOC attributes that reflect such transpositions.  For example, the
SYM record above would be rewritten as:

   SYM, TOP/EXAMPLE, DFF, SCHNM=FDCE, LOC=CLB_R5C8.FFX, INIT=R, LIBVER=2.0.0

Note that the H_SET attribute has also been eliminated since it has no
meaning without an RLOC.

The normal format for the rpmcon command is:

   rpmcon <design>[.xtf] [confile=<confile>] [outfile=<outfile>[.xtf]]

The input filename must have a .xtf extension.	The two parameters that
RPMCon accepts are:

   confile   The name of the RCF file.	Defaults to <design>.rcf.

   outfile   The name of the output netlist.  Defaults to rpmcon.xtf.
	     It must have a .xtf extension, and cannot have the same name
	     as the input file.

The keywords "confile" and "outfile" are case insensitive (although, on
Unix platforms, their filenames are not).

RPMCon accepts XTF and RCF files in either DOS or Unix format.	The output
format is consistent with that of the platform on which RPMCon is run.

RPMCon will issue warnings if a set listed in the RCF file does not exist
in the XTF netlist, or if a set is listed more than once in the RCF.  RPMCon
will also print out lines in the RCF file that it does not understand.
(Lines can be commented out with "#".)

On workstations, RPMCon can also be invoked as:

   rpmcon -g <design>[.xtf] [confile=<confile>]

This will write out a skeleton RCF file which lists all RPM sets in the
given netlist as well as the size of each RPM, e.g.:

   place set TOP/hset: CLB_RxCx;
   # size: 6 rows, 8 cols

This file may be modified and used by RPMCon.  (You may comment out or
remove unused constraints in this file if you wish; RPMCon will ignore them
since it will not recognize "CLB_RxCx" as a legal CLB location.)

NOTE: RPMCon does not check the validity of the SYM records in the netlist.
(It assumes that XNFPrep has done its job.)  It also does not check whether
the location constraints it writes are legal for the target device.

KNOWN BUG: RPMCon will write a corrupted netlist or cause a memory fault on
an XBLOX design.  This is because XBLOX writes its SET and RLOC attributes
in an order that RPMCon does not expect.  To fix this, do the following:

  1. Globally search and replace all occurences of H_SET with U_SET in the
     XTF file and save to a new file.

  2. Run XNFMerge on the new XTF file.	XNFMerge will issue an error on
     H_SET attributes--thus the reason for step 1.  Be sure to write the
     output to a file with an XTF extension:

	xnfmerge design.xtf design_new.xtf

     XNFMerge will change the order of the SET and RLOC attributes so that
     RPMCon can handle them.

  3. Run RPMCon on the new, merged XTF file:

	rpmcon design_new.xtf confile=design.rcf







End of Record #419

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