Return to Support Page
 homesearchagentssupportask xilinxmap

Answers Database


PPR 5.0: Information for users upgrading from APR for 3000A designs


Record #297

Problem Title:
PPR 5.0: Information for users upgrading from APR for 3000A designs


Problem Description:



Solution 1:




1. LCA File versus XNF/MAP File Input

    One of the primary differences between the operation of APR and PPR
    is that APR can read an existing LCA file and modify it according
    to command-line options, constraints, and a second LCA guide file.
    PPR, however, reads only an XNF-style input file (from XNFPREP
    or XNFMAP).  The LCA file can only be used as a guide for the
    data in the 'raw' XNF file.

    Because APR reads an LCA file, it is possible to use XDE to
    modify a design (pre-place, pre-route) and then submit that
    design directly to APR to complete.  PPR must be directed
    to read the XTF/MAP file, and then use the XDE-modified design
    as a guide.  The effect is essentially the same.

2. Command-line Option Differences

    APR -T (timing improvement)
	There is no direct equivalent for the APR -T option in PPR.
	The -T option directed APR to 'grind away' at routing an
	input design with locked placement. If you want PPR to
	'work hard at routing an existing placed design', you can
	use an LCA file that has good placement as a guide file to
	PPR, set the "router-effort" option to 4, and set
	the "lock_routing=none" option so that PPR can rip-up and
	improve the routing.  Of course, PPR also has the Timespec
	functions to provide real control over timing issues.

    APR -L (lock placement)
	Because the incoming XTF/MAP file to PPR has no inherent
	placement, it is not possible to tell PPR to lock the
	input placement.

    APR -P (preserve routing)
	Because the incoming XTF/MAP file to PPR has no routing
	information, it is not possible to tell PPR to lock the
	input routing.	It is possible to affect the PPR guide
	file routing with several options.

    APR -J (just do placement)
	It's possible to use the PPR "route=false" option to prevent
	the routing operation.

    APR -Q (quench), -Y (deterministic annealing)
	The PPR placement algorithm is affected by the "placer_effort"
	option.

    APR -A (routing attempts)
	Use the PPR "router_effort" option to modify the effort that's
	spent in routing.


3. Schematic LOC Values

    Prior to XACT 5.0, design files headed for APR used the LOC
    syntax with alphabetic characters for the row and column
    designations (ie. LOC=AA), while PPR used numeric row and
    column designations (ie. LOC=CLB_R5C6).  These constraints were
    not interchangeable.  In XACT 5.0, the software has been changed
    to be more flexible so that existing 3K/3KA designs can be
    re-targeted to PPR without changing the constraints in the
    schematics. PPR will be able to understand the APR-style
    alphabetic row and column coordinate system in the LOC constraints.
    There is no need to alter an existing "LOC=AA" attribute in a
    3KA schematic.  It is not possible, however, to use the
    PPR-style numeric row and column designation in a 3KA schematic.
    XNFMAP is still the mapper for 3KA designs, and there was no
    time to modify it to process the "LOC=CLB_R5C6" kind of schematic
    location constraints.

4. Constraint File Differences.

    CSTCVT
	There is a new program called CSTCVT that is shipped with
	XACT 5.0 that will convert an APR .CST file into a PPR .CST file.
	This was done because the syntax and references to objects are
	quite different between the two files.	CSTCVT will read an
	existing APR-style CST file, and translate the constraints
	into the PPR CST file syntax.  CSTCVT will retain the original
	APR constraints as comments in the new file, so that the
	translation can be easily examined.  It will also put any
	constraints that could not be translated into comment lines
	in the file.  This output file can be directly used by PPR.

	APR CST File Command translates to...PPR CST File Command
	---------------------------------------------------------

	Allow Block <blknm> <loc> ...;	  Place block <blknm> : <loc>...;
	Place Block <blknm> <loc>;	  Place block <blknm> : <loc>;
	Prohibit Block <blknm> <loc>...;  Prohibit block <blknm> : <loc>...;
	Prohibit Location <loc>......;	  Prohibit block * : <loc>...;

	Flag Net Critical <netnm>....;	  Flag Net Critical <netnm>....;
	Weight Net Critical <netnm>..;	  Flag Net Critical <netnm>....;
	Flag Net Uncritical <netnm>..;	  Flag Net Uncritical <netnm>....;
	Weight Net Uncritical <netnm>...; Flag Net Uncritical <netnm>....;
	Weight Net <weightval> <netnm>...; Weight net <weight> <netnm> ....;

	There are some APR constraints file commands that cannot be
	translated to PPR's constraints file. The "Lock" constraints
	cannot be translated because PPR does not read an LCA file
	as it's input.	The other constraints are simply not supported
	by PPR.

	APR CST File Commands That Cannot Be Translated to PPR CST File
	---------------------------------------------------------------

	    Lock IOBs;
	    Lock Block <blknm>...........;
	    Lock Net <netnm>.............;
	    Lock Pin <pinnm>.............;
	    Place Net <netnm> <longline>;
	    Flag Net Longline <netnm>....;		
	    Flag Net Normal <netnm>......;
	    Weight Net Normal <netnm>  ..;
	    Flag IOB Internal <blknm>....;	
	    Flag IOB External <blknm>....;
	    Include <filename>...........;


    CST Syntax
	The PPR constraint file was also modified in several ways so that
	it is more compatible with the APR-style of CST file.  The APR-style
	constraint file keyword "prohibit" has been added to PPR's vocabulary.
	It is interchangeable with PPR's existing "notplace" constraint.  It
	will be possible to use alphabetic notations for the row and column
	fields in the PPR CST file.  Instead of requiring the constraint
	syntax "place block <gork> : CLB_R5C6", it will be possible to
	say "place block <gork> : DE" so that the same APR-style alphabetic
	row and column designators can be used.

	Note that the modifier "block" rather than "instance" should be
	used in the PPR constraint file when referencing 3KA designs
	(ie. use "place block" rather than "place instance").  The
	3KA design has already been mapped into LCA blocks by XNFMAP,
	and so "block" is the appropriate object reference for 3KA
	designs.

NOTE: the `prohibit' keyword did get implemented in PPR 5.0, but never
      made it into the documentation. Since CSTCVT uses it, this could
      cause some confusion.


5. "Guide" Flexibility

    PPR is can be made much more flexible than APR in processing information
    from the LCA guide file.  The APR guide file provides absolute constraints
    to the input design.  There are only a few ways to modify it's
    operation (ie. unrouting nets to blocks in XDE).  The PPR Reference
    Guide lists a number of command-line constraints that can be used
    to modify how "absolute" the guide file should be considered.  The
    default operation of PPR is to consider the guide file as "absolute",
    but constraints can be used to soften this behavior, and allow
    PPR more flexibility to improve the design.







End of Record #297

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