Quaruts II 增量编译

http://bbs.ednchina.com/BLOG_ARTICLE_3007977.HTM

http://quartushelp.altera.com/11.1/mergedProjects/msgs/msgs/esgn_tri_state_partition.htm

增量编译主要有两个工具:Design Partition和Logiclock

Design Partition只是将设计进行“逻辑分区”,直白点说就是将我们的设计分成N个小的模块,每个模块有着单独的逻辑和功能,它告诉编译器,这部分逻辑是一个分区A,那部分逻辑是另一个分区B,在进行这样的分区之后,编译器在整个工程的综合、布局布线上面并不会有什么太大的变化,这个逻辑上的分区只是用来让用户清楚,哪部分逻辑是分区A的,哪部分逻辑是分区B的。之后用户就可通过设定A、B分区的属性类型来告诉编译器,哪部分已经不需要重新综合、布局布线了;哪部分已经修改了,需要重新进行综合等等。

由于在FPGA内部上不包括内部三态逻辑,故不推荐在FPGA设计中使用内部三态信号,如果在分区边界使用,软件则无能为力,除非直接接到顶层IO引脚上。

 什么是内部三态信号?http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/CompOrg/tristate.html  个人理解就是verilog中的 inout

“传统标准单元ASIC器件的内部总线支持各种内部模块和外部器件之间的通信。采用内
部三态总线并不是良好的设计习惯,因此三态功能仅在I/O级实现。
如果您的代码含有内部三态触发,Quartus II使用多路选择器来实现它。但是,如果您
的设计含有多个分区(Design Partition),采用增量式编译后,由于分区内逻辑不可视,
Quartus II软件可能无法得出正确的多路选择器逻辑。因此,不采用内部三态总线是良
好的设计习惯。Altera FPGA通过I/O接口支持三态总线,实现与各种板上器件的通信。”

 

而我们来看看LogicLock的作用,是对设计进行“物理分区”,更准确的说,它是对目标器件(device)进行“物理分区”,然后将逻辑上的功能模块分配到一定的分区内。也就是说,我们先对目标器件进行物理区域划分,把它分成几个“地盘”,然后选择一个逻辑功能模块分配到某个“地盘”里,告诉编译器,以后这部分逻辑功能就只能在这个“地盘”里面布局布线了。同样的,用户可以对各个模块进行属性上的设定,告诉编译器以什么样的形式在“地盘”里面进行布局布线。

 
posted @ 2012-10-11 10:09  Jezze  阅读(2157)  评论(0编辑  收藏  举报