最近一段时间迷上了设计自动化。我用Tcl设计的几个仿真、调试自动化工具已经在我们最近的项目中得到了成功应用。虽然开发这些工具用了一些时间,但是这些工具可以代替我们完成重复的工作,保证了工作的准确性和可重复性,提高了我们的工作效率,真是“磨刀不误砍柴工”啊。 riple
下一步的工作重点是FPGA的后端设计和优化,也就是时序收敛(Timing Closure)。这项工作对我很有挑战性,给我的工具箱补充些得心应手的工具还是很有必要的。在Quartus II Development Software Handbook的Volume 2: Design Implementation and Optimization下面专门有一节介绍了Design Space Explorer这个后端设计和优化自动化工具。 riple
The Quartus II software includes many advanced optimization algorithms to help you achieve timing closure, optimize area, and reduce dynamic power.(时序、面积、功耗是DSE优化的三个可选目标) The various settings and parameters control the behavior of the algorithms. These options provide complete control over the Quartus II software optimization and power techniques.(完整的时序约束、恰当的布局位置和大小约束还是需要设计者手工输入的。错误的或者是不完备的时序约束只能误导自动化工具,人工对时序约束进行检查和走查是非常必要的) riple
Each FPGA design is unique. There is no standard set of options that always results in the best performance or power utilization. Each design requires a unique set of options to achieve optimal performance.(这就是问题的复杂性之所在) This chapter describes the Design Space Explorer (DSE), a utility written in Tcl/Tk that automates finding the best set of options for your design.(Tcl!又是Tcl) The DSE explores the design space of your design by applying various optimization techniques and analyzing the results.(问题域和解决域之间的映射是客观的和多样的,我们需要去发现而不是去发明:在“设计空间”中找到一条最佳的路径) riple
The DSE is a valuable tool to use in the late phases of your design cycle.(后端设计是它的应用场合) You can take advantage of the DSE's capability to automatically sweep multiple options to close timing or reduce power consumption on a design that is nearing completion.(穷举法是最费时但也是最保险的,可以有效避免“伪最佳”方案的误导。费时费力的重复工作最好交给自动化工具,防止人为的失误和懈怠就可以提高工作效率) riple
下图就是针对一个简单设计的DSE优化结果: riple
该次DSE搜索共尝试了7种优化设置组合,第3种取得了最佳的速度优化效果。从图中可以看出,时序余量由2.629ns提高到了2.858ns;相应地,资源使用也由3607LE增加到3792LE。 riple
经过检查DSE的报告文件,可以发现如下的优化设置差异: riple
| Setting | New Value | Base Value |
| ADV_NETLIST_OPT_SYNTH_GATE_RETIME | ON | OFF |
| CYCLONEII_OPTIMIZATION_TECHNIQUE | SPEED | BALANCED |
相关链接:
United States Patent 7181703:Techniques for automated sweeping of parameters in computer-aided design to achieve optimum performance and resource usage
United States Patent 7370295:Directed design space exploration
IEEEXplore:Design Space Exploration using Parameterized Cores: A Case Study
Quartus II Handbook, Volume 2:Design Implementation & Optimization/Design Space Explorer
ash_riple_768180695 2008-8-29 23:25