3.4.2. Enabling Time Borrowing Optimization
Follow these steps to enable time borrowing for supported devices:
- Click Assignments > Settings > Compiler Settings > Optimization Mode. Select any high or superior Performance setting.
- Run the Fitter and Timing Analyzer, as Step 3: Run the Timing Analyzer describes.
- To generate reports showing time borrowing data, click Reports > Timing Slack > Report Timing. Time borrowing data appears on the critical path for a given clock domain, as Report Time Borrowing Data describes.
To specify time borrowing optimization without changing the Compiler Optimization Mode, specify the following assignment in the project .qsf:
set_global_assignment -name ENABLE_TIME_BORROWING_OPTIMIZATION <ON|OFF>
- To manually specify the time borrow mode during timing analysis, run one of the following update_timing_netlist command options:
|Time Borrowing Mode||Command Option||Default Mode For|
Optimal—timing analysis includes optimal time borrow values from the Finalize stage. You can optionally add the recompute_borrow option to update_timing_netlist to recompute the borrow amounts, but not the borrow window sizes.
|update_timing_netlist||High and Superior performance compilations for Intel® Stratix® 10 and Intel® Arria® 10 designs.|
|Dynamic—timing analysis reports the time borrowing that would physically occur on the device, with respect to your SDC constraints, without any optimization. That is, timing analysis applies as much borrowing as necessary to fix all negative slack. Timing analysis assumes maximum possible borrowing for any timing path where the maximum amount of time borrowing is insufficient to eliminate all negative slack. Only mode that allows borrowing for level-sensitive latches.||update_timing_netlist -dynamic_borrow update_timing_netlist -loop_aware_dynamic_borrow||None|
|Zero—timing analysis uses zero time borrowing.||update_timing_netlist –no_borrow||Unsupported devices, or any Compiler Optimization mode other than a Performance mode.|