...
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.