1、为什么要划分?
降低大规模集成电路的设计复杂度,实现模块化
2、划分要依赖哪些约束?
划分间连接数最小化(减少划分间耦合)、最大划分尺寸、最大时延路径、外部连接引脚数量限制等
3、用什么办法划分?
(1)KL算法(Kernighan-Lin)
输入:2n个节点,所有节点权重相同,每条边都有非负权重
输出:2n个节点划分成两个节点数为n的、不相交的、割数最小的子集
运行时间:取决于增益更新和交换点的选择,其中增益是对任意两个割集中的节点交换前后所引起的割边代价的变化,时间复杂度:O(n^3)
(2)FM算法(Fiduccia-Mattheyses)
计算每个独立元胞移动的增益
解的质量和运行时间之间的折中
(3)模拟退火算法:解决部分困难的划分规划问题
网表划分是在综合阶段划分的。