The following sections describe how placement and routing are performed by PAR.
The PAR module places in two stages: a constructive placement and an optimizing placement. PAR writes the NCD file after constructive placement and modifies the NCD after optimizing placement.
During constructive placement, PAR places components into sites based on factors such as constraints specified in the input file (for example, certain components must be in certain locations), the length of connections, and the available routing resources. This placement also takes into account cost tables, which assign weighted values to each of the relevant factors. There are 100 possible cost tables. Constructive placement continues until all components are placed. PAR writes the NCD file after constructive placement.
The optimizing placement is a fine tuning of the results of the constructive placement. Optimizing is run only at specific levels, and the number of passes may vary. PAR rewrites the NCD file after optimizing placement.
Timing-driven placement is automatically invoked if PAR finds timing constraints in the physical constraints file.
Routing is done in two stages: constructive routing and cleanup. PAR writes the NCD file only at the end of an iteration after more than 60 minutes of routing have elapsed, and it only writes out a new NCD file if the design quality improves.
During constructive routing, the router performs an iterative procedure to converge on a solution that accomplishes these goals.
If both of these goals cannot be met, the first is considered more important; that is, PAR tries to route to completion even if your timing constraints are not met.
During cleanup routing, the router takes the result of constructive routing and reroutes some connections to accomplish these goals.
If both of these goals cannot be met, the first is considered more important; that is, PAR tries to route to minimize delays in preference to decreasing the number of routing resources used.
There are two types of cleanup routing you can perform - a faster cost-based cleanup routing and a more intensive delay-based cleanup routing. Cost-based cleanup runs much faster than delay-based cleanup, but delay-base cleanup usually produces a result that has faster in-circuit performance.
Timing-driven routing is automatically invoked if PAR finds timing constraints in the physical constraints file.
Note: To achieve your timing constraints while routing an XC4000E/L/EX/XL design, PAR may add an additional pullup to a net at the output of a TBUF. PAR adds this pullup to the longline on which the net is routed. The pullup is added if the net contains a single pullup and the design has been completely routed, but the net containing the pullup has one or more timing errors.