So, as an Intel FPGA user, I have an Arria 10 design. Should I upgrade to Quartus 17.0?
To answer this question, we used InTime tool to run through 60 different synthesis and place-and-route parameter configurations were generated by our Default recipe.
Method
We used an Arria 10 design (Device: 10AX115U3F45E2SGE3) for the experiment. The test was conducted as follows:
- InTime generates compilation settings for Quartus 16.1, specifically 60 compilations which were ran for two rounds of 30 runs each.
- Use Quartus 17.0 to compile the exact same 60 compilation configurations.
InTime’s Default recipe learns from past results and generates parameters to optimize a design for timing and/or area performance. Therefore, we ran two rounds to make use of the learning process in InTime to optimize towards better results. In doing so, we can also determine if InTime is capable of generating compilation settings suitable for both Quartus 16.1 and Quartus 17.0.
Results
The results are shown in the table and figures below -- in terms of the Total Negative Slack (TNS), Worst Slack and other compilation results. At a first glance, the results for both Quartus 16.1 and Quartus 17.0 seemed to be similar.
However, if you start zooming into the good results, you start seeing more variations for both TNS and Worst Slack.
And if you count the better results from each tool, it shows that Quartus 17.0 has an edge in terms of overall number of results that perform better.
Number of results where TNS is better (Quartus 16.1) |
Number of results where TNS is better (Quartus 17.0) |
|
TNS | 28 (47%) | 31 (53%) |
Worst Slack | 25 (42%) | 34 (58%) |
Both toolchains managed to obtain 0ns TNS and 0.01ns Worst Slack for the same design. Quartus 17.0 has a larger distribution and variance for TNS but smaller distribution for Worst Slack.
Best TNS (ns) |
Worst TNS (ns) | TNS Distribution (ns) | Best “Worst Slack” (ns) | Worst “Worst Slack” (ns) | Worst Slack Distribution (ns) | |
Quartus 16.1 | 0.00 | -2628.04 | -369.40 ± 602.91 | 0.01 | -1.09 | -0.40 ± 0.33 |
Quartus 17.0 | 0.00 | -5869.33 | -406.38 ± 866.35 | 0.01 | -1.26 | -0.38 ± 0.31 |
So, how did the default compilation settings perform?
The last question that is on everyone’s mind is how did the default settings perform? This is assuming that I am using only the default settings in both Quartus 16.1 and 17.0.
Quartus 17.0 is a clear winner!
Best TNS (ns) | Best “Worst Slack” (ns) | |
Quartus 16.1 | -82.715 | -0.302 |
Quartus 17.0 | -2.095 | -0.189 |
(Shameless plug: Worry not if you don’t get 40x improvements in TNS on Quartus 17.0. You can always use InTime to find better settings!)
Conclusion
In summary, a total of 60 configurations were generated and compiled by both Quartus 16.1.0 and Quartus 17.0. The results suggest that the performance of Quartus 17.0 is better than Quartus 16.1.
So yeah, upgrade your Intel FPGA tools!
Disclaimer: Due to the immense exploration space available, 60 parameter configurations on a single design make up a single, non-representative data set. Splitting the compilations over multiple rounds helps to inject feedback and reinforcement into our learning process. In the interest of brevity, our experiment is intended to give a glimpse of the differences between the different tool versions.
Similar Article :
Xilinx FPGA Toolchain Comparison: Vivado 2016.4 VS Vivado 2017.1