原创 【博客大赛】Xilinx的增量编译技术

2012-8-22 09:23 3038 16 21 分类: FPGA/CPLD 文集: xilinx FPGA

         通常FPGA工程师编译较大的工程时比较头疼,因为编译时间非常长,常常需要花费几个小时,如果是在调试阶段,每次修改一个错误需要几小时,这样效率就非常低。导致编译时间较长的原因有两点:1. 设计中资源利用比较大,synthesis、translate和map需要的时间较长;2. 设计的时序比较紧张,需要反复P&R来达到最佳时序状态。

         如果不想修改工程代码,想要缩短编译时间,则可以采用增量编译技术,其基本原理就是根据前一次编译的结果,只重新编译部分修改过设计,其它部分则沿用前一次编译的结果,这样就可以缩短总体的编译时间。Xilinx的增量编译技术有两种:SmartGuide和Partition。

 

         SmartGuide:这是ISE中的全局优化选项,使能这个选项,编译器在Implementation时会比较前一次编译的Implementation结果,未修改部分则沿用前一次的结果,但是如果时序比较紧张,会根据情况重新实现相应未修改部分来达到时序要求。SmartGuide主要能缩短MAP和PAR的时间。

         SmartGuide具体的使用方法如下:

         1. 右击top module,然后点击SmartGuide选项。

snap1.jpg

图1

         2. 选择前一次的编译信息,其中NCD文件包含当前设计的物理映射信息。

snap2.jpg

图2

         3. 点击OK,使能SmartGuide。

         Partition:基于partition(分区)的设计,如果一个partition的HDL代码、时序、物理约束和实现选项未修改,实现工具会采用“复制粘贴”操作保留这部分partition的信息,从而缩短了实现的时间。partition设置后能缩短综合、实现的时间。

         自ISE12.1版本后,ISE软件就不再支持partition选项,但是在PlanAhead软件中支持partition功能(ISE快退出Xilinx软件舞台了,据说以后有个Rodin的软件,界面与现在的PlanAhead类似)。如图3所示,在Netlist窗口中右击需要分区的module,然后选择Set Partition即可。

snap3.jpg

图3

 

参考文献

XAPP918:Incremental Design Reuse with Partitions

PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户1655977 2013-11-23 17:01

嗯,smart guide 是个双刃剑

bitao1983_395643617 2012-4-23 22:57

我理解SmartGuide还是将大部分布局布线都固定了,修改的只是有限的部分,所以时序上不如重新跑一边时序那么好,小的修改用SmartGuide还是很好的,大的修改还是建议换一台好的计算机跑跑了!!!

用户403664 2012-4-5 11:28

非常实用,感谢!

Hoki 2012-4-4 10:50

这边需要补充一下: 在最近的项目中,为了缩短编译时间,使能了SmartGuide选项,但是发现时序一直很差,记得以前timing score都是0分的,然后采用了各种优化:加bufg、关键路径加register打拍等等,但是时序始终达不到0分。在快绝望的时候,突然发现之前使能过SmartGuide选项,把它去了试试,结果版本跑出来时序0分了,当时是既欣喜又崩溃。 通过这次的经历,得到了一些教训,在debug阶段虽然使用增量编译技术能加快效率,但是前提是你的代码功能、时序都需要满足条件,之后才能使用增量编译继续debug

用户1623618 2012-3-31 19:43

very good
相关推荐阅读
Hoki 2017-01-11 17:35
LX9开发板呼吸灯实现
对LX9开发板硬件评测后,从这一节开始真正进入FPGA开发的世界。很多开发板的例程中必有跑马灯实验,老跑马也没意思,咱来把新潮的,整一个呼吸灯。 呼吸灯最初是出现在apple公司的笔记本产品中,当合上...
Hoki 2017-01-11 16:47
LX9的microblaze配置
虽然XC6SLX9芯片资源比较少,但是嵌一个microblaze还是搓搓有余的,这一节就来评测一下在XC6SLX9上microblaze的配置。 有两种方法配置microblaze,一是在ISE软件中...
Hoki 2017-01-11 16:32
zynq评测
Zynq芯片是业界第一款在FPGA中集成ARM核的芯片,由FPGA的发明者xilinx公司推出的。Zynq严格来说不能以FPGA来定义它,因为其是以处理器为中心的平台,能够在单芯片上提供软、硬件和 I...
Hoki 2017-01-11 16:19
u-boot
Zyny芯片启动加载分为3步: 1. 芯片上电启动,首先读取BootROM中的程序,初始化一些必要的外设,然后根据专用引脚电平判断该从何处启动first stage Bootloader(FSBL),...
Hoki 2017-01-11 16:09
基于zynq的交叉编译平台
Zynq芯片的最大特点是其集成了双ARM Cortex-A9处理器,因此zynq的应用基本是以这个ARM核为核心,再配合FPGA逻辑作为协处理器,几乎能实现所有较复杂的应用。并且在ARM上可以跑操作系...
Hoki 2017-01-11 15:54
u-boot image生成
这节介绍一下如何生成u-boot image文件,在SDK软件中点击Xilinx Tools→Create Boot Image工具即可生成,但是生成image文件需要首先集齐3个文件:u-boot....
EE直播间
更多
我要评论
5
16
关闭 站长推荐上一条 /3 下一条