原创 QuartusII增量编译的个人学习(三)

2012-10-9 13:40 7900 18 21 分类: FPGA/CPLD 文集: 增量编译

本篇,来仔细看看怎么使用增量编译。

增量编译主要用到的两个工具——Design Partition和LogicLock。

增量编译09.jpg
增量编译10.jpg

首先要提出一个概念,网上大多对增量编译的简要说明是:采用LogicLock进行增量编译。这是错误的看法!LogicLock并不是增量编译的一部分,只是在增量编译过程中建议使用LogicLock!

另外,上一篇里面提到关于增量编译原理个人的理解:将整个工程分成多个“逻辑区域”,然后每次编译中通过设定各个区域的网表类型来决定本次编译是否对该区域重新执行,“增量编译”是针对整个工程在设计过程中后一次编译与前一次编译的一个“增量”过程,其实Altera的官方名称应该叫——“渐进式编译模式”。

那从对原理的理解就可发现,其实我们只要用到Design Partition就可以完成“增量编译”了。下面简单介绍如何使用Design Partition工具:

首先,得对整个工程进行一次全编译(也可不编译,只进行顶层模块的分析,如下图有左边标出的小图标则可点开分析顶层模块下的子模块),经Analysis过程Quartus可自动分析出整个工程顶层模块下含有哪些子模块;

增量编译12.jpg

然后,便通过Design Partition对子模块进行“逻辑分区”。一般情况下,我们可以直接将上一步中分析出的子模块设定成“逻辑区域”;

增量编译11.jpg

设定好了以后打开Design Partition Window可看到如下图:

增量编译13.jpg

它的结构图与Project Navigator里的很像,有一个TOP模块,下面还有我们设定的各个小区域。表中的各列参数则是对各区域形式的一个设定,其中最关键的一个设定是Netlist Type,它有四个可选值——Source File,Post-Synthesis,Post-fit,Empty(如上图中所标1,2,3,4,上图是为了将各Type全面的显现出来,而不是最终设定)。它们各自的含义是:

Source File:如果源代码未修改,则仅不重新Analysis,还需进行Synthesis和Fitter;

Post-Synthesis:如果源代码未修改,不需重新Analysis、Synthesis,结果只进行Fitter;

Post-Fit:如果源代码未修改,保留前次Analysis、Synthesis、Fitter结果;

Empty:标志为空分区,编译时将忽略此分区。

这样我们就很明白了,其实要想达到“增量编译”的目的,只需将各个子模块设置在Design Partition里,并将未进行修改的各个模块设定成Post-fit,而修改过的模块设定为Source File。需要注意的是,顶层模块TOP的状态也需设定为Post-fit。

大家可以试试效果,个人试验的效果很显著……原来编译一次需5分多钟,这样的方法如果只改变一个分区的内容,只需1分多钟。

关于LogicLock的使用将在后面的文章中继续分析探讨。

文章评论3条评论)

登录后参与讨论

用户468778 2013-1-5 16:16

好好学习。谢谢

用户377235 2012-11-14 12:59

博主,你好,我使用verilog语言写了两个模块,使用你说的增量编译,修改其中的一个模块,另外一个模块设置post-fit,怎么时间不减少,反而增加了呢。并且发现两个模块都重新编译,router了,请问一下,增量编译是不是不能做到绝对的增量,对于有些例子就算设置也没有用,是吗?

用户1696769 2012-9-30 00:02

能够节省4分钟的编译时间,很不错!
相关推荐阅读
jlx_cuc 2014-06-06 18:19
你真的会socket编程吗(1)
最近的项目都围绕着TCP socket在进行着,VC下的socket,Linux下的socket,感觉很简单,但是却发现其实下面的几个同事对于socket这个东西还只是“会”,但并不一定懂。 ...
jlx_cuc 2014-05-16 18:44
操作系统-读书笔记(1)
最近在业余阅读时找到一本《自己动手编写操作系统》觉得不错,视角很新颖,是有关操作系统书籍中为数不多的看了不想睡觉的读本。   由于这本书的出版时间较早,书中引导盘还使用的是软盘,所以在跟随...
jlx_cuc 2014-05-08 17:13
“改变”后的一丝体会
有两个月没写博客了,现在正是开学之际,有必要对前面两个月的工作做做记录。   经历过从北京到苏州的工作地点转换,生活和工作上的体会和收获颇丰。到苏州来以后会觉得,原来的一些看法还是太过狭隘...
jlx_cuc 2014-05-08 17:13
最终我又不要脸的回来了——成为一名“管理者”后的心得
之前的很长一段时间都没再更新过这个博客,一直在EDN潜水,一直在做伸手党。原因有两个,一个是忙,一个是懒。 最终我还是不要脸的回来了。还是想以后好好把这个博客经营下去,也好等咱们的娃长大了给它...
jlx_cuc 2013-07-11 17:13
【博客大赛】写给“即将入学”的硕士研究生们
原本题目定的是《写给即将入学的硕士研究生们》,后来想了想便加上了双引号。先来说说这个双引号。   早在一个多月前全国考研的最后结果便出来了,对于考上研的同学们来说,马上就要开始自己的研究生...
jlx_cuc 2013-04-08 23:22
【博客大赛】老罗和他的锤子之我的见解
事先说明,个人感觉我的观点还算是中立观点,并不是要感叹老罗和锤子有多好,也不想批评它们是否一无是处。只是想在时隔这么就没来EDN,恰巧又遇到锤子的发布这个时间点,发表些个人的感想和见解。 ...
我要评论
3
18
关闭 站长推荐上一条 /2 下一条