Achieving up to 50% timing improvement in Libero with InTime

InTime, Libero

Achieving up to 50% timing improvement in Libero with InTime

The newest addition to the InTime family is the Libero tool which supports Microchip FPGA devices. It was first included in late 2020; since then we have been honing and "sharpening the knives", improving the QoR which includes support for the latest Libero v12.6 release.

With the latest InTime release, performance improvements for Libero designs can be greater than 50%. The graph below shows the level of improvements for different device families. The difference between the green and blue bars shows the additional improvement when InTime is enabled to run multiple rounds.

To achieve these results, here are the major new features:

Note: If your design contains pre-synthesized netlists (for example, .vm files), do encourage your IP vendor/colleague to optimize those IP cores in InTime in order to get more-optimized netlists.

1. New Estimation Engine with additional attributes

Learning from data that was gathered from a variety of benchmarks, InTime achieves better correlation between compilation parameter predictions and the actual compilation results.

2. Context-Aware Timing Variations

InTime may selectively tighten or relax timing constraints in order to drive Libero behavior. To ensure accurate timing characterization, the final Static Timing Analysis is always performed using the design's original timing constraints.

3. Automatic adjustment of FSM Inference and Encoding

Deriving and applying the right type of Finite State Machine is a great way to improve your design's performance, regardless of device family. The Hot Start and InTime Default recipes provide easy ways to discover the appropriate encoding.

4. Opportunistic Hierarchy Manipulation

The degree of collapsing that synthesis does to your design's hierarchy affects the amount of optimization that can be done. InTime analyzes your design and gears the hierarchy collapsing towards better performance.

Results of the new engine

Using a total of 37 designs, we did one round of optimization consisting of 20 runs. This is followed by additional rounds (up to five) of optimization for results that belong to the bottom 50th percentile. This is similar to what we did for the earlier versions of Libero.

Our goal was to see if the overall optimization has improved with the new engine. Comparing with the original WNS, we find that the average improvement in WNS for Libero v12.6 is 42.17%, This is higher than the average improvement of 32.85% between Libero v12.3 and v12.4.

Performance Improvements over original WNS

Following that, we compared the best optimized WNS results from v12.6 versus v12.4. While some results got worse, the majority of the designs improved. The average improvement is 11.56%.

Comparison of 12.6 versus 12.4

Interested to know more or to try InTime? Proceed to to get a free evaluation copy.

Leave a Reply