Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add "How to Improve STA performances"

...

STA tool can be launched from any step after Preparing (Placing 1/5) with the following example method:

Code Block
Timing_analysis = p.createAnalyzer()
Timing_analysis.launch({'conditions': 'typical', 'maximumSlack': 500, 'searchPathsLimit': 10})

It is advised to launch a STA after Preparing as it shows up most critical paths and the maximum frequency with most optimistic hypothesis. If maximum frequencies are not higher enough at this step, it won’t be after routing for sure.

...

Please have a look at Training Package Application Note StaConstraint/FalsePath project.

How to improve STA results

STA tool

It is recommended to launch the STA tool after Placing 1/5 step named “Preparing”. It allows to witness the number of logic elements crossed and check if it is possible to reach performances when the margin in the most optimistic scenario is high enough.

TimingDriven

TimingDriven option can be set with the following constraint:

Code Block
p.setOption('TimingDriven','Yes')

In addition, the number of iterations in a row to achieve timing goals can be modified through TimingEffort option with the example following constraint:

Code Block
p.setOption('TimingEffort','Medium')

Analysis conditions must be set before launching the tool with the example following constraint:

Code Block
p.setAnalysisConditions('typical')

The number of iterations complies with the following association:

  • Low: TimingDriven is disabled

  • Medium: 3 iterations

  • High: 6 iterations

The higher the number of iterations is, the higher STA performances can be high but the higher the runtime is.

Note

All clocks must be created before launching Place&Route with TimingDriven option. Otherwise, the tool does not get performances to reach.

Note

The TimingDriven efficiency is in continuous development and improvement.

FloorPlanning

In order to give indications to the tool, the user can set up a floor-planning and pass it through the tool working directly on the whole design with ConstrainModule or ConstraintPath methods or working with unitary runs before integrating in the top design. Please refer to #Floor_planning.

With this solution, the user must pay attention to interconnections between modules and between module and output interfaces.