There are many factors that impact the ability of the tool to maintain or improve performance with respect to the reference run. The following list covers the main reasons why a tool might not achieve expected performance
- Low levels of reuse. When reuse is low, having extensive pre-placement of cells can limit the ability to find optimal locations for new logic. It is recommended to use the default flow in these cases.
- Change in the critical path. If the path is made worse, for example by adding more cells, timing is not able to maintain the same performance. For these cases it is recommended to review the change and further optimize.
- Change is in the congested area of the die. When there is limited scope in the design to accept new cells sometimes it can be preferable to find a new solution using the default flow. In these case, users may benefit from running both the default flow and the incremental flow and seeing which performs the best for each case.
- Directive setting. When RuntimeOptimized is set as the directive, the tools will not try to improve beyond what the reference is set to.