超大规模集成电路若干布线算法研究
【摘要】:
我们首次将蚁群(ACS-Ant Colony System)算法应用到大规模集成电路的
物理设计中,具体实现了一个开关盒布线算法,取得了较遗传算法、模拟退火
等算法为优的结果。开关盒布线问题是物理设计后期的一个NP-完全问题,因
为它最终决定线网的实际走线,对整个布图过程起着至关重要的作用。此前,
ACS算法已成功地运用到TSP问题和计算机通信等领域中,受此算法的启发,
我们在ACS协同学习的基础上融进了协同工作的机制,得到一个增强了的ACS
(IACS),并应用到了开关盒布线中。在开关盒布线中,各蚁群在各自线网引
脚的牵引下,在停等机制的协调下,能有效地避免它们在争用布线区域中引起
的冲突,使算法能快速将各线网布通,同时优化了线长和通孔数。
我们运用JAVA语言实现了一个采用Agent技术的并行布线系统。由于计
算机网络(尤其是Internet和Intranet)已逐渐成为各行各业计算机应用的基础
设施,高效地利用网络中的计算资源是所有算法设计者提高算法性能的一个有
力途径,本文结合计算机界热门的Agent技术,运用JAVA语言,采用C/S模
式,在局域网上实现了一个并行布线系统,实验结果表明,算法有着很高的加
速比。由于JAVA的跨平台特性,使并行系统可以平滑地移植到异构的Internet
环境中。该系统的设计思想和结构同样可以运用到其它需要充分利用网络计算
资源的系统中,具有很高的实用价值。
我们首次在总体布线过程中同时考虑串扰和时延。通过采用一种广泛使用
的互连线时延模型和一种简单的串扰计算模型,我们尝试了在总体布线过程中
电子科技大学博士论文;超大规模集成电路若千布线算法研究
同时考虑时延和串扰的方案。我们的具体作法是:将串扰和时延变换为通道容
量表示,将问题转换为变通道容量的Steiner树问题,用一个Steiner树算法分
别对名线网进行初始布线,若有线网违反串扰或时延约束,则采用拆线重布的
方法来修正,拆线重布中采用A旷nt技术。实验结果表明,我们的算法是可行
的。
乳们将蚁群算法首次应用到多层布线的通孔最小化问题中。在高性能和高
密度的芯片设计中,多层布线是经常出现的。为了优化多种设计目标如线长最
短、面积最小、考虑时延和串扰等问题,人们往往在布线之后采用一些特别算
法,对初始布线结果进行优化。多层布线的通孔最小化算法便是在保持线网的
拓扑结构不变的情况下,为各线网的网段分配合适的布线层,使得最后布线结
果中的通孔数最少。本文中我们提出了一种基于蚁群系统(ACS)的多层通孔
最小化算法。首先K层布线的CYM问题被转化为一个交叠图,图中每个结点
中有K个隧道,这样为各网段分层的问题转化为穿越各结点的隧道而形成的一
条路径的问题。结合ACS的基本思想,各蚂蚁通过互相学习,能够搜寻到使最
后布线结果中通孔数得到优化的一条路径。实验结果表明该算法是可行的。
我们设计了一个基于Web的布线设计环境XLAYDEN,在该环境中,系统
能够将用户的设计任务自动公布在Internet上,由多人共同设计完成;系统能够
可靠地保存用户的数据,能够为用户提供多种设计工具,并且XLAYDEN能够
自动利用网上的计算资源,提高系统的计算性能。通过系统原型的实验,表明
设计是基本可行的,并且具有很好的伸缩性和移植性。