原创 DSE—Design Space Explorer,FPGA后端设计自动化

2008-8-28 22:00 9070 12 10 分类: FPGA/CPLD

最近一段时间迷上了设计自动化。我用Tcl设计的几个仿真、调试自动化工具已经在我们最近的项目中得到了成功应用。虽然开发这些工具用了一些时间,但是这些工具可以代替我们完成重复的工作,保证了工作的准确性和可重复性,提高了我们的工作效率,真是“磨刀不误砍柴工”啊。 riple


下一步的工作重点是FPGA的后端设计和优化,也就是时序收敛(Timing Closure)。这项工作对我很有挑战性,给我的工具箱补充些得心应手的工具还是很有必要的。在Quartus II Development Software HandbookVolume 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


10754268-6f59-4266-9eb1-5f334ed5ac42.JPG


该次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


Quartus II Scripting Reference Manual

文章评论1条评论)

登录后参与讨论

ash_riple_768180695 2008-8-29 23:25

博客精华已经有了很大改进,比如增加了对博客原文的链接,这都是尊重博客作者的举动。期待着编辑们想出更好的点子,把博客网站做得更好。
相关推荐阅读
ash_riple_768180695 2015-12-18 11:06
学习示例程序:FPGA快速系统原型设计--敏捷实践
        学习与开发板配套的示例程序,是敏捷实践的起点。示例程序是厂商针对开发板上提供的硬件资源和接口量身定做的工程,可以展示其FPGA芯片的功能和性能特点。从示例程序入手最大的好处就是:示...
ash_riple_768180695 2015-11-03 16:46
开发板选取:FPGA快速系统原型设计--敏捷实践
    既然是“实践”,就不能只谈编码和仿真,必须要上板运行、调试。这个虚拟项目的目标是实现一块兼容Intel82574L以太网控制器的千兆网卡,需要运行在一块具备PCIe接口和10/100/10...
ash_riple_768180695 2015-10-22 12:41
开篇:FPGA快速系统原型设计--敏捷实践
    虽然借用了 “系统原型开发”的标题,本系列文章将围绕FPGA IP级别的开发这个主题展开,如果可能的话,将扩展至FPGA System级别的开发。     先上一篇PPT:RSPwFP...
ash_riple_768180695 2013-08-26 10:21
学习SystemVerilog(二)——学习它的理由
    学习SystemVerilog的理由也很多,我在阅读SystemVerilog for Design 和 SystemVerilog for Verification两本书前言的过程中,总...
ash_riple_768180695 2013-08-26 10:19
学习SystemVerilog(一)——不学习它的理由
    想要学习SystemVerilog已经很久了。曾经尝试通过Accellera网站上给出的LRM学习,怎奈内容众多,找不出入手点和重点,只能望而却步。虽然手头有三本SystemVerilog...
ash_riple_768180695 2011-06-26 23:20
Hardware-Assisted IEEE1588 Implementation Analysis
06/18/11 11:00:05 PM         最近一段时间在研究IEEE1588-2008精确时间同步协议(PTP)。该协议可以在软件中实现,如果需要提高时间同步...
我要评论
1
12
关闭 站长推荐上一条 /2 下一条