本技术介绍了一种利用强化学习算法优化芯片宏元件布局的方法。该方法专注于通过学习调整现有布局,而非完全重新放置元件,以提供策略所需的详细信息,并实现更为紧凑的布局效果。
背景技术
电路自动化设计(electronic design automation)技术已被广泛应用以协助工程师设计芯片,而超大规模集成电路(very large-scale integration)技术的快速发展导致了芯片规模的指数级增长,给现有的电路自动化设计技术带来了巨大挑战。特别是设计流程中的重要阶段:芯片布局规划(chip floorplanning),其旨在遵守拥塞和密度等约束的同时,在芯片版面(chip canvas)上放置一系列元件,以优化功耗、性能和面积等指标。而芯片版面上要放置的元件数量迅速增加,它们之间的布线(routing)关系也变得更加复杂,这就需要提出更加新颖和高效的方法。在布局规划的元件放置(placement)阶段,我们需要确定芯片版面上每个元件的位置。现代芯片通常包含数千个宏元件(macro,例如存储器等单独构建模块)和数百万个标准元件(standard cell,例如逻辑门等较小的基本组件)。在芯片设计的流程中,上游步骤通常给芯片布局任务提供一个网表(netlist),概述了布局放置的要求。网表可以表示为一个大规模超图(hyper-graph),包含许多表示宏元件和标准元件之间布线关系的超边(hyper-edge),每个超边会包含多个元件,表示这些元件在放置过程中需要被一组导线相连。元件放置通常分为两个阶段依次进行:宏元件放置,通常通过启发式方法或基于学习的方法解决;标准元件放置,通常通过求解器解决。在放置所有元件(包括宏元件和标准元件)之后,进入布线阶段。芯片布局规划和布线的一般流程如图1所示。
研究芯片宏元件放置问题可以提高中国芯片产业的技术水平和竞争力,推动产业发展。这对于缓解国内芯片产业的供需矛盾,降低对外依赖,实现产业自主可控具有重要意义。
宏元件放置问题通常被建模成优化问题,通过不断地迭代评估以获得更好的布局结果。该优化问题需要满足不重叠的约束,即宏元件之间不能存在重叠的部分,否则将无法被用于实际制造。
强化学习最近成为提升宏元件布局质量的一种有前景的技术,通过与复杂环境的互动学习策略,为解决宏元件布局的各种挑战提供了新的路径。具体地,强化学习方法通过将芯片版面划分为离散网格并将宏元件逐步放置到网格中,将问题建模为离散动作空间的马尔可夫决策过程。在马尔可夫过程的每一步中,强化学习的智能体决定当前一个宏元件的放置位置。放置当前元件之后,系统给出奖励,状态发生转移。如此重复过程直到每个宏元件都被放置到芯片版面上。基于强化学习的芯片宏元件放置方法能够得到线长较低的布局结果,并且训练得到的布局策略能够泛化到其他芯片上,且放置速度相比传统方法更快。然而,目前基于强化学习的方法存在不重叠约束难满足、奖励稀疏、放置过程中可利用信息少、布局结果容易拥塞等问题,难以处理复杂的现代芯片。
因此,针对基于强化学习的芯片宏元件布局问题,需要设计一种满足约束、高效、可靠的方法。
实现思路