In a previous post, we introduced a way to predict and abandon builds at the post-placement stage, skipping time- and resource-consuming routing stages that were not likely to yield good timing results. InTime users welcomed this approach, especially those who were designing with large FPGAs. We are thrilled to add this capability for our Quartus Prime Pro customers as well.
Timing Estimates
Quartus Prime Pro Edition allows users to extract intermediate timing estimates. Intuitively, these estimates become more accurate as the compilation progresses from synthesis to fitting.
To observe how timing estimates change across compilation stages, we use a Stratix 10 GX 2800 project as an example.
Designers familiar with Stratix 10 will recognize this device as a mid-sized one within the GX line. The design itself fails timing by -1.9ns Worst Setup.
We used InTime to optimize it on a 12-CPU, 128GB RAM machine, incurring compilation times of around 5 hours per build.
Timing Estimates Trend
The following chart shows the timing estimates for over 80 revisions of this project. Each revision consists of different synthesis and fitter parameters generated by InTime.
At each point where Quartus reports timing estimates, InTime captures the data and collates it.
The X-axis shows the revisions (not all revision names are shown for brevity) and the Y-axis displays the Worst Setup.
Noticeable trends:
- Post-placement Worst Setup slack seems generally correlated to the Final Worst Setup slack
This provides a degree of confidence that we can predict the final timing using post-placement estimates. - Timing estimates mostly improved as the compilation progressed, except for a couple of revisions.
Benefits of Early Build Termination
Correspondingly, you can choose to stop a build if it fails a certain Worst Setup slack (WS) or Total Negative Slack (TNS) threshold - cutting at least 50% off your overall turnaround time! That means running twice as many compilations, explore double the scope of setting optimizations and becoming 2x more effective than before.
Configure InTime
If you are running multiple builds in InTime to get the best settings, the post-placement timing estimate is a great indicator to stop builds early and re-allocate precious resources to other builds. The latest version of InTime enables the "Stop If Post-Place Timing is Bad" switch for Quartus Prime Pro designs. You can specify TNS, WS and Worst Hold in nanoseconds and InTime will stop the build if its post-placement timing estimate is worse than any of these values.
Note that Worst Hold thresholds usually need to be much greater than the expected final value because Hold timing will not have been optimized during placement.
You can create simple scripts to collate post-placement timing estimates and obtain a good idea of what the cutoff values for your design should be. This new feature is released in InTime version 2.6.5. Feel free to reach out to us to discuss how to get the most mileage out of it.
#InTimeDelivers
By tracking timing estimates to predict how each revision will perform, we can make decisions on whether to stop the build or let it continue. This saves time, money and achieves our 3-7 days commitment for turnaround time (See InTime Service). Using this method, InTime has closed up to -3ns of WS for Stratix 10 designs.
I am sure many designers out there have interesting experiences dealing with early indicators of timing performance. Let us know about your experiences. Is post-placement timing a good indicator?
*Catch us at the Intel FPGA Technology Day 2018 to find out more.
Time: September 21, 2018.
Venue: Hotel Gajoen, Tokyo, Japan