I am a member of Altera's SW department and I'd like to thank everyone for their comments on the Rapid Recompile feature that was introduced in Quartus II 9.1. Altera is committed to improving the quality and experience of this flow and we expect the Rapid Recompile behavior in Quartus II 10.0 to be much better. At this time, I cannot provide exact details, since Quartus II 10.0 has not been publicly announced.
Here are some comments on the feature:
1) Rapid Recompile is only supported for newer device families: Stratix III, Cyclone III, Stratix IV (GX/GT/E), Arria II GX, and Cyclone IV (GX/E). It is not supported for older FPGA device families nor for any HardCopy device family.
2) IMPORTANT: Users will only see the effects of Rapid Recompile after a full compilation (through the fitter) has been performed with the Rapid Recompile feature enabled. Users that compile once with Rapid Recompile off and then compile again with Rapid Recompile on will see no benefit.
- If the info message "Fitter has failed to locate previous placement information", Rapid Recompile will provide no compile time benefit.
- The "Incremental Compilation Preservation Summary" section in the fitter report will provide details about the placement & routing preservation for your design.
3) As mentioned by various users, in Quartus II 9.1, Rapid Recompile disables several optimizations (such as timing driven synthesis and beneficial skew optimization). With the exception of physical synthesis, all synthesis & fitter optimizations will work with Rapid Recompile in the Quartus II 10.0 release.
4) Rapid Recompile will have less impact for very small designs (e.g. <10 minutes). In Quartus II 9.1, Rapid Recompile accelerates the placement and routing operations. For small designs, the compilation time is not dominated by these tasks, so the upside for Rapid Recompile is bounded.
5) The performance of Rapid Recompile is largely dependent on whether the Quartus tool believes the change is "small". If the Quartus tool believes that the design change is "large", Rapid Recompile will disengage and the user will not see any compile time savings.
- As mentioned in this thread, a "small" change from the user's perspective may be perceived as a "large" change by the tool. Altera is working on techniques to ensure that, for Rapid Recompile, the tool recognizes "small" user changes as "small" design changes.
- Applying extensive, global optimizations to a "small" user change may be needed to obtain optimal performance. The user needs to be aware of their objectives and select the right flow to achieve their end goals. Rapid Recompile is focused on compile time reductions and timing preservation.
Please let me know if you have additional comments or questions about the Rapid Recompile feature.
- Mark