3.5 布局布线与工具
SoC的布局布线,是指对构成集成电路的元器件(标准单元)及子模块的位置和相互连接进行合理规划,使最后得到的芯片具有较短的连线长度和较小的布局布线面积。这样,在一个芯片上所能集成的器件个数增加了,并且可以提高成品率。此外,总的连线长度缩小,不仅使连线所引入的电阻和电容减小,也减小了电路的延迟,从而使芯片的性能得以提高。主要的EDA公司都有相应的软件来实现自动布局布线。
3.5.1 EDA工具的布局布线流程
1.布局规划(Floorplan)
布局规划工具帮助设计者从宏观上根据模块的功能将各个模块放置在芯片相应的位置上,其本身具有一定的约束条件。譬如,I/O模块必须放在芯片四周;时钟管理单元用于输出各个模块的时钟,所以一般放置在中间;片上内存及Cache由于会与Core频繁地进行数据交换,所以它们的位置也必须放置在Core(核心处理单元)的附近。并且还要考虑到将来的布线空间。
2.布局、器件放置(Placement)
当模块宏观的位置确定后,就在相应的区域内放置标准单元级的电路。一个典型的放置标准单元后的版图,由于标准单元的长宽比都是非常具有规律的(整数倍),因此放置的标准单元区域都排列得非常整齐,并且在块与块之间留出了一些空间用于以后的布线。
3.时钟树综合(Clock Tree Synthesis)
时钟树综合是目前SoC设计的主流。为了满足时序收敛的要求(Timing Closure),保证每个模块及每个寄存器的时钟输入的相位误差最小,必须在时钟源到寄存器最短的通路上插放延时单元,使得所有的路径在延时上都与最长路径相同。
4.布线(Routing)
工具最后所要做的就是把所有需要连线的地方用一层或多层金属进行连接,它会自动发现在两个给定点之间的可行的布线路径。
3.5.2 布局布线工具的发展趋势
在早期的芯片设计工具中,布局有专门的布局软件,布线也有专门的布线软件,两者之间没什么联系。随着芯片集成度越来越高,布局和布线已经越来越一体化了,并成为设计过程的重要组成部分,典型的工具如Synopsys的Astro。Astro采用了特殊的构架,能使它在对最复杂的IC设计进行布局布线和优化的同时考虑各种物理效应,其具有快速周转能力和分布式算法。