Return to previous page Advance to next page
Development System Reference Guide
Chapter 12: PAR - Place and Route

PAR Options

You can customize the PAR operation by specifying options when you run PAR. You can have PAR place without routing. You can have PAR perform a single placement, or perform a number of placements using different cost tables. You can specify an effort level to indicate to PAR whether the design is simple or complex. You can also specify the maximum number of passes the router may perform and the number and type of cleanup passes the router runs.

PAR options are entered on the command line in any order, preceded by a hyphen (-), and separated by spaces. You must enter options in lower case letters. For those options that require an additional parameter, the option and the parameter must be separated by spaces or tabs. Options that do not require an additional parameter may be grouped together preceded by a single hyphen (for example, -rwx is the same as -r -w -x).

Following is a description of the command line options and how they affect the behavior of PAR. If you run PAR with illegal options or do not specify an input file, a brief listing of the supported options and their functions is printed on the screen. If you want to view all of the options, type the following on the command line.

par | more

This allows you to scroll through the options.

OR

par > filename

This redirects the options to a file that you specify.

-c (Number of Cost-Based Router Cleanup Passes)

-c cost_passes

If you run both cost-based cleanup passes and delay-based cleanup passes (see -d and -e options below), the cost-based passes run before the delay-based passes. The valid range of cost_passes is 0-5. The default setting for -c is 1 for all devices except Virtex, which is 0.

Following are some strategies for using the cleanup routers (either cost or delay based).

-d (Number of Delay-Based Router Cleanup Passes)

-d delay_passes

If you do not use the -d option, the router does not run any delay-based cleanup passes (described in the “Routing” section). If you run both delay-based cleanup passes and cost-based cleanup passes (see -c option above), the cost-based passes run before the delay-based passes. Typically, the first delay-based cleanup pass produces the greatest improvement, with less improvement on each successive pass. It is also possible that delay passes do not show any improvement.

The valid range of delay_passes is 0-5, and the default is 0.

If you want to run delay-based cleanup passes only on designs that have been routed to completion (100% routed), use the -e option (described below) instead of the -d option.

Note: The -d option is not recommended for use with Virtex or Spartan2. The evaluation of this option with these architectures indicates that the option creates much longer runtimes with little improvement.

-dfs (Thorough timing analysis of paths)

The -dfs option specifies that PAR utilize depth-first search timing analysis, which analyzes all paths covered by timing constraints in order to perform timing-driven place and route. This method is more thorough than the default method (-kpaths) and may result in longer PAR runtimes. See the “-kpaths (Faster Analysis of Paths)” section for a discussion of the connection-based method.

-e (Delay-based cleanup passes - Completely Routed Designs)

-e number

The -e option operates in the same way as the -d option described previously, but the -d option runs on all output designs produced by the PAR run, while the -e option only runs on those output designs which have been routed to completion. The number of passes is 0-5, and the default is 0.

Note: This option is not recommended for use with Virtex or Spartan2. The evaluation of this option with these architectures indicates that the option creates much longer runtimes with little improvement.

-f (Execute Commands File)

-f command_file

The -f option executes the command line arguments in the specified command_file. For more information on the -f option, see the “-f Option” section of the “Introduction” chapter.

-gf (Guide NCD File)

-gf guide_file

The -gf option specifies the name of an NCD file (from a previous MAP or PAR run) to be used as a guide for this PAR run. The guide file is an NCD file which is used as a template for placing and routing the input design. For more information on the guide file, see the “Guided PAR” section.

-gm (Guide Mode)

-gm {exact | leverage}

The -gm option specifies the form of guided placement and routing PAR uses - exact or leveraged. The default is exact mode. For more information on the guide modes, see the “Guided PAR” section.

You specify the NCD to use as a guide file by entering a -gf option (see the “-gf (Guide NCD File)” section) on the PAR command line. If you do not specify a guide file, PAR is guided by the placement and routing information in the input NCD file. The “Guided PAR” section describes how PAR operates if no guide file is specified.

-i (Number of Router Iterations)

-i route_passes

Run a maximum number of passes of the router, stopping earlier only if the routing goes to 100% completion and all constraints are met. Each pass is a single attempt to route a placement to completion, and the screen displays a message for each pass.

The valid range of route_passes is 0-2000. If you do not use the -i option, the router runs until it either routes to 100% completion and meets its timing constraints or intelligently determines it will not succeed.

-k (Re-Entrant Routing)

The -k option runs re-entrant (also called incremental) routing. Routing begins with the existing placement and routing left in place. Re-entrant routing is useful if you wish to manually route parts of the design and then continue automatic routing, if you halted the route prematurely (for example, with a Control-C) and wish to resume, or if you wish to run additional route or delay reduction passes.

-kpaths (Faster Analysis of Paths)

The non-enumerative connection-based method (the default method) has a runtime proportional to the size of the design, unlike the DFS method, which has a runtime proportional to the number of paths in the design.

There are two significant differences between the connection-based method and the DFS method.

A signal can pass through four paths in the preceding circuit but two of the paths are false (A1 to B2 and B1 to A2). In order for a signal to pass through the upper left tristate buffer A1, the enable signal A must be true. In order to prevent a bus contention on the A1 output, the enable signal B must be false. Since buffer B2 is also controlled by the enable signal B, the path through A1 cannot pass through B2 (because when A is enabled, B is disabled). The converse is also true, if B is enabled, the only valid path is from B1 to B2.

In the example circuit, the DFS method only considers true paths. The connection-based will trace the false paths and the true paths.

-l (Overall Effort Level)

-l effort_level

The -l option is identical to the -ol option. See the “-ol (Overall Effort Level)” section.

-m (Multi-Tasking Mode)

-m nodefile_name

The -m option allows you to assign PAR multi-run jobs (specified with the -n option) to a group of nodes. See the “Turns Engine (PAR Multi-Tasking Option)” section.

-n (Number of PAR Iterations)

-n iterations

The -n option determines the number of iterations (place and route passes) performed at the effort level specified by the -l option.

Each iteration uses a different cost table when the design is placed and produces a different NCD file. If you enter -n 0, the software continues to place and route, stopping either after the design is fully routed or after completing the iteration at cost table 100 and meeting all timing constraints. If you don't specify the -n option, one place and route iteration runs.

If you specify a -t option, the iterations begin at the cost table specified by -t.

The valid range of iterations is 0-100, and the default is 1.

-ol (Overall Effort Level)

-ol effort_level

The -ol option sets the overall PAR effort level. The effort level specifies the level of effort PAR uses to place and route your design to completion and achieve your timing constraints.

There are five values for effort_level. Level 1 is the lowest level, and corresponds to the least complex design. Level 5 would be used on the most complex design. The level is not an absolute; it shows instead relative effort. After you use PAR for a while, you will be better able to estimate whether a design is simple or complex.

If you place and route a simple design at a complex level, the design is placed and routed properly, but the process takes more time than placing and routing at a simpler level. If you place and route a complex design at a simple level, the design may not route to completion or may route less completely (or with worse delay characteristics) than at a more complex level.

The effort_level range is 1-5, and the default level is 2.

The -ol level sets an effort level for placement and another effort level for routing. These levels also have a range of 1-5. The placement and routing levels set at a given -ol level depend on the device family in the NCD file. You can determine the default placer and router effort levels for a device family by reading the PAR Report file produced by your PAR run.

You can override the placer level set by the -ol option by entering a
-pl (Placer Effort Level) option, and you can override the router level by entering a -rl (Router Effort Level) option.

-p (No placement)

The -p option bypasses both constructive and optimizing placement (described in the “Placement” section). When you use this option, existing routes are ripped up before routing begins. You can, however, leave the existing routing in place if you use the -k option instead of the -p option.

-pl (Placer Effort Level)

-pl placer_effort_level

The -pl option sets the placer effort level. The effort level specifies the level of effort used when placing the design. Level 1 is the lowest level, and corresponds to the least complex design. Level 5 would be used on the most complex design. For a description of effort level, see the “-ol (Overall Effort Level)” section.

The placer_effort_level range is 1-5, and the default level set if you do not enter a -pl option is determined by the setting of the -ol option. This default varies depending on the device family in the input NCD file. You can determine the default placer effort level for a given -ol level and device family by reading the PAR Report file produced by your PAR run.

-r (No Routing)

Do not route the design.

-rl (Router Effort Level)

-rl router_effort_level

The -rl option sets the router effort level. The effort level specifies the level of effort used when routing the design. Level 1 is the lowest level and corresponds to the least complex design. Level 5 would be used on the most complex design. For a description of effort level, see the “-ol (Overall Effort Level)” section.

The router_effort_level range is 1-5, and the default level set if you do not enter a -rl option is determined by the setting of the -ol option. This default varies depending on the device family in the input NCD file. You can determine the default router effort level for a given -ol level and device family by reading the PAR Report file produced by your PAR run.

-s (Number of Results to Save)

-s number_to_save

The -s option saves only the number of results you specify. If you do not use the -s option, all results are saved.

The -s option does not care how many iterations you performed or how many effort levels were used. It compares every result to every other result and leaves you with the best number of NCD files. The best outputs are determined by a score assigned to each output design. This score takes into account such factors as the number of unrouted nets, the delays on nets and conformance to your timing constraints. The lower the score, the better the design. This score is described in the “Scoring the Routed Design” section.

The valid range for number_to_save is 0-100, and the default -s setting (no -s option specified) saves all results.

-t (Starting Placer Cost Table)

-t placer_cost_table

The -t option specifies the cost table at which the placer starts (placer cost tables are described in the “Placement” section). If you do not specify the -t option, the PAR software starts at placer cost table 1. If cost table 100 is reached, placement does not begin at 1 again, even if command options specify that more placements should be performed. Cost tables are not an ordered set. There is no correlation between a cost table's number and its relative value.

The placer_cost_table range is 1-100, and the default is 1.

-ub (Use Bonded I/Os)

If you do not specify the -ub option, I/O logic that MAP has identified as internal can only be placed in unbonded I/O sites.

If the -ub option is specified, PAR can place this internal I/O logic into bonded I/O sites in which the I/O pad is not used. The option also allows PAR to route through bonded I/O sites.

If you use the -ub option, you must make sure this logic is not placed in bonded sites connected to external signals, power, or ground. You can prevent this condition by placing PROHIBIT constraints on the appropriate bonded I/O sites.

-w (Overwrite Existing Files)

If the specified output file already exists, overwrite the existing file (including the input file).

If the specified output is a directory, overwrite files in the directory. With this option, any PAR, PAD, and DLY files generated overwrite existing PAR, PAD, and DLY files.

-x (Ignore Timing Constraints)

If you do not specify the -x option, the PAR software automatically runs a timing-driven PAR run if any timing constraints are found in the physical constraints file. If you do specify -x, timing-driven PAR is not invoked in any case.

The -x option might be used if you have timing constraints specified in your physical constraints file, but you want to execute a quick PAR run without using the timing-driven PAR feature, to give you a rough idea of how difficult the design is to place and route.

Summary of PAR Options

Options, default values, and ranges are summarized below.

Option
Default Setting
Range
-c number
The default setting for -c is 1 for all devices except Virtex, which is 0.
0-5
-d number
0 (No delay-based router cleanup passes)
0-5
-dfs
Run connection- based method
(No -dfs, -kpaths is the default)
N/A
-e number
0 (No delay-based router cleanup passes on completely routed designs)
0-5
-gf
No guide file
N/A
-gm [leverage | exact]
Exact
N/A
-i number
Run until completion or until router decides it can not complete
0-2000
-k
Run placement (Do not run re-entrant routing)
N/A
-kpaths
Run connection-based method
(-kpaths is the default)
N/A

-l number
2 (Overall effort level 2)
1-5
-m nodefile_name
Do not run the Turns Engine
N/A
-n number
1 (One place and route iteration)
0-100
-ol number
2 (Overall effort level 2)
1-5
-p
Run placement
N/A
-pl number
Determined by -ol setting
1-5
-r
Run router
N/A
-rl number
Determined by -ol setting
1-5
-s number
Save all
1-100
-t number
1 (Start placer at cost table 1)
1-100
-ub
Do not use bonded I/Os
N/A
-w
Do not overwrite
N/A
-x
Use timing constraints in PCF file
N/A