Altera Nios嵌入式处理器大赛知识讲座 办公室的故事 ( Incremental Compilation) 我们总是在想,有没有那么一种可能,让我可以少花力气多赚钱,我们这里就开始讨论这样 一个问题。 好比你现在有一个很大的公司,你有一个办公室,里面空空的,你可以有很多方法把你的员 工放在里面。当然你可以一股脑儿的把所有人全部很随意的放在里面。 但是导致的结果会是 什么样的呢?你会发现两个工作关系很精密的人, 每天需要从这头走到那头的交流。这样的 工作效率不可能好的。所以我们会比较希望把他们整合在一起。 至少可以让一个部门坐在一 起。然后我们再在这个相对比较小的区域里面做调整来提高工作效率,这样会容易很多了。 每个部门当然就是公司的一部分(design patition),我们需要把这个部门的人都放在一个限定 的空间里面,而给每个部门提供的空间,我们定义为 Logic Lock. 空间是一个物理的概念, 而部门是一个人为理念造成的一个概念。我们并不是一定要把他们俩结合起来。但是,如果 结合起来会有这样一个好处。 好比,我有五个部门 A,B,C,D,E。而不给他们限制空间,他们可能随意的去做。也许相对来 说部门内的人士坐在一起了,但是这中间留下的空间变得很没规律。两种情况下会有问题, 一个是,需要加一个新的部门,那么这个部门就需要拆开放,另外就是某些部门扩张了,新 人就没地方放了。所以,宏观调控是非常重要的。所以我们需要把设计理念的分割和物理空 间的分割紧密的结合在一起。 增量编译的思想和这个故事是完全一致的。我们需要把设计分成一些相对比较大的部分,然 后给他们安排相应的位置去放置。这样有非常多的好处: 1. 关系相对精密的电路的位置比较接近,减少了连接线上的延迟。 2. 对一些已经表现很好的模块可以保留他们的编译结果。这样可以获得最大的好处。每一 次编译都获得一个比较好的结果加以保留,……