Optimization Sweeping
You can use the scripts to sweep through all of the place-and-route optimization settings to find out which one works best for your design.
Example Usage
To sweep all of the optimization levels for project helloworld:
efx_run_pnr_sweep.py helloworld.xml sweep_opt_levels
efx_run_pnr_sweep.bat helloworld.xml sweep_opt_levels
Using the Results
When sweeping completes, open the timing.sum.rpt file in the project directory. It gives an overview of the clocks analyzed and their frequency for each optimization setting. The following code shows and excerpt of the summary report for sweeping optimization levels for the pt_demo project.
|---------------------------------------------------------------|
| Maximum possible analyzed clocks frequency |
|---------------------------------------------------------------|
| |
|---------------------------------------------------------------|
| Clock Name: Oclk |
|---------------------------------------------------------------|
| | Period (ns) | Frequency (MHz) | Edge |
|---------------------------------------------------------------|
| CONGESTION_1 | 6.453 | 154.964 | (R-R) |
| CONGESTION_2 | 6.867 | 145.620 | (R-R) |
| CONGESTION_3 | 8.141 | 122.841 | (R-R) |
| TIMING_1 | 8.570 | 116.682 | (R-R) |
| TIMING_2 | 8.914 | 112.182 | (R-R) |
| TIMING_3 | 8.711 | 114.798 | (R-R) |
|---------------------------------------------------------------|
You can also review detailed reports in the run_sweep_<string>/seed_<number>/outflow directory.
If you are happy with the results for one of the optimization levels, you can set that option in your project:
- Open the Project Editor.
- Click the Place and Route tab.
- Choose the Value you want to set for the optimization level.
- Click OK.
- Recompile.