通常,超大规模集成电路布局分成两个阶段:全局布局和详细布局。全局布局的 主要目的是将电路单元模块均匀地布置在电路区域中,并且优化给的目标函数,例如 线长、密度和时序等。由于这是从全局的角度上来处理问题,更多地关注电路单元模 块间的大致位置关系,从而可能忽视很多局部问题。因此,需要详细布局来处理这些 问题。详细布局主要是在全局布局算法产生结果的基础之上来进一步合法化单元模块 位置并优化布局的质量。通常,详细布局阶段包括合法化阶段和局部优化阶段。 本章提出了基于集群的合法化算法,用于对上一阶段生成的集群和标准单元进行 合法化,接着针对剩余的行间(Inter-row)MIA 违规进行优化。首先,本章简要介绍 了该合法化算法,然后对该算法的每个步骤进行了详细介绍,并最后介绍了处理剩余 行间 MIA 违规的优化方法。
4.1 基于集群的合法化
在得到所有集群并且每个集群内部的单元都紧密排列的情况下,集群将具有最小 的面积。然而,在布局中存在集群和标准单元,因此需要同时对集群和标准单元进行 合法化。
4.1.1 常规合法化
合法化指的是将电路布局中的电路单元按照预先设定的布局规则和连接关系,在 给定的布局区域内进行合理的摆放,并保证单元之间不会重叠,同时要求各单元分布 在布局区域设定的行上。随着工艺的不断发展,出现了多倍行高的标准单元,这就形 成了混合高度单元的详细布局问题。这种问题带来了新的约束,如电源轨道约束,它 虽然对单倍行高没有太多影响,但会导致偶数倍行高单元不能放置在某些行上,可能 会导致解的质量变差。合法化阶段最终的目标函数是使得总的互连线长或其他方面达 到最优化。
目前,一些学者已经提出了一种快速简单的混合高度单元的合法化算法 OpenDP[36],该算法基于目前广泛采用的快速贪婪的试探式算法 Teris 算法[37],他们认 为标准单元的面积越大,对单元合法化的复杂度就越大。因此,该算法优先考虑对面 积大的标准单元进行合法化,并将标准单元按照面积从大到小进行排序。算法每次只 选择一个单元,优先选择排序靠前的单元,从的空白区域中找到合适的位置将其放置, 同时要求单元移动距离尽可能小。在选择适当的位置时,如果单元的待放置位置与已 被放置的单元重叠,则将其放置在其相邻空白位置,否则就放置在此位置,每次选择 只针对一个单元。此外,一旦单元被合法化固定,它的位置将不能再被改变。如图 4- 1 所示,(a) 图是合法化前即全局布局后标准单元的位置结果,(b)图是经该算法合法化 后得到的位置结果。
4.1.2 改进型合法化
本节将介绍一种改进版的合法化算法,它基于 OpenDP 算法,并通过密度意识来 为单元找到适当的位置,同时保证线长最小化。与原有算法相比,最大的不同之处在 于它将集群和标准单元都平等地视为可以被放置的单元。具体来说,在合法化过程中, 本文考虑单元周围的密度信息,并结合线长优化的目标,通过寻找最佳位置来为单元 放置。
在合法化中,每个单元应合法地被放置在其初始位置或附近。在 OpenDP 中,单 元的位置是按照面积从大到小排序的顺序逐一被确定的。如图 4-1 (a)中所示,其确定 顺序依次为单元𝑐1, 𝑐2, 𝑐3, 𝑐4, 𝑐5。显而易见的是,排在最前面的单元𝑐1移动的距离最小, 因为它首先被放置。而排在后面的单元𝑐4在被放置时则会受到已被放置的单元𝑐1, 𝑐2和 𝑐3的影响,𝑐4的初始位置已经元占用,因此𝑐4能够被放置的合法化位置将远离其初始 位置,这会使布局的结果更糟糕。
为了减小这种情况出现的可能,本文对 OpenDP 算法进行了改进。将合法化问题 视为多阶段决策问题,确定一个单元的位置可以被看作是一次决策。根据动态规划的 思想[33],每次决策不仅要确保当前需要被放置的单元尽可能接近其初始位置,还要确 保接下来要被放置的单元也尽可能接近其初始位置。因此本文在这过程加入密度意识, 将优先放置密度大的区域里的单元,因为密度大的区域里的单元被放置的位置可能占 用密度小的区域里的单元,而密度小的区域里的单元的周围有更多的空白区域可以用 来放置,所以密度小的区域里的单元不会被放置在离初始位置很远的区域。
图 4-2 展示了按照面积排序和按照密度排序进行合法化的比较结果, 图 4-2 (a) 是 按照面积排序合法化得到的结果,其线长增量为:(0 + 1.5) + (3 + 6) + (3.5 + 1.5) + (6.5 + 3) + (5 + 2.5) = 32.5。图 4-2 (a) 是按照密度排序合法化得到的结果,其线长增量为: (4 + 1.5) + (0 + 6) + (0 + 1.5) + (3.5 + 3) + (1.5 + 2.5) = 23.5。可以看出,按照密度排序合 法化得到的结果优于按照面积排序合法化得到的结果。这是因为,按照密度排序的合 法化方式优先将密度大的区域放置单元,这样可以避免单元被放置在离初始位置很远 的区域,从而使得布局结果更好。
4.2 行间 MIA 违规优化
在上一小节中,本文讨论了基于集群的合法化算法,得到了无行间 MIA 违规且合 法化的结果。然而,仍然存在一些行间 MIA 违规的情况。本小节主要讨论修复行间 MIA违规的方法,行间 MIA违规指的是相邻的两行上带有相同阈值电压类型(VT)单元 横向方向上相交且相交的宽度小于最小注入宽度(IW),如图 4-3 (a)中展示,其中相邻 两行𝑟𝑜𝑤1和𝑟𝑜𝑤2上单元𝑐2和单元𝑐3相交且相交宽度小于最小注入宽度(IW)。
修复行间 MIA违规是一个复杂而重要的问题,需要综合考虑多种情况,并且需要 进行严格的判断和处理。本文为了修复行间 MIA 违规,按照目的可分为两类,
一是使 得行间 MIA 违规单元不相交,二是使得行间 MIA 违规单元相交的宽度大于 IW。 针对这种情况,本文提出了三种修复行间 MIA 违规的方法:
第一种方法是如果同一行内行间 MIA 违规单元周围有足够的空白区域,将行间 MIA 违规单元移动到此空白区域,且能够使得相交宽度大于最小注入宽度。这种方法 可以通过将单元平移来实现。
第二种方法是如果周围有足够空白的空白区域,将行间 MIA违规单元移动到此空 白区域,且能够使得原来行间 MIA违规单元不相交。这种方法可以通过将单元平移来 实现。
第三种方法是如果周围有其他阈值电压类型(VT)的单元,将行间 MIA 违规单 元与周围其他阈值电压类型(VT)的单元进行位置互换。这种方法要求交换后的位 置不会发生新的行间 MIA 违规。这种方法可以通过将单元与其他阈值电压类型(VT) 的单元进行位置交换来实现。 在处理行间 MIA违规时,首先需要判断是否满足第一种修复方法的条件,即是否 有足够的空白区域可以将违规单元移动到此区域,使它们相交的宽度大于最小注入宽 度。如果满足此条件,则可以通过将违规单元平移到该区域来进行修复。
如图 4-3 (a)所示,发生 MIA 违规单元𝑐3的左边有足够的空白区域,可以将其平移 到该区域,使得单元𝑐2和𝑐3相交宽度大于最小注入宽度,如图 4-3 (b)所示。通过这种 方法可以很快速地修复行间 MIA 违规,并且不需要进行其他复杂的处理。
当第一种修复方法不可行时,可以考虑第二种方法,即是否存在周围足够空白的 空白区域,将违规单元移动到此区域能够使得原来行间 MIA违规单元不相交。如果满 足此条件,则可以通过将违规单元平移到该区域来进行修复。
图 4-4 (a)显示了一个例子,如图 4-4 (a)所示,发生 MIA 违规单元𝑐2和𝑐3都无法满 足方法一,因此使用方法二来修复,单元𝑐3右边有足够的空白区域,可以将单元𝑐3平 移到此区域使得与原来发生违规的单元不相交,从而修复此行间 MIA 违规,如图 4-4 (b)所示。
最后,如果以上两种方法都不可行,则需要考虑第三种方法,即是否存在其他阈 值电压类型(VT)的单元,将违规单元与该单元进行位置互换,使得它们不相交或 它们相交的宽度大于最小注入宽度,并且不会引起新的行间 MIA违规。需要注意的是, 这种方法需要进行严格的判断,以确保不会引起新的违规情况。
图 4-5 展示了一个示范,发生 MIA 违规单元𝑐2和𝑐3都无法满足方法二,因此使用 方法三来修复,单元𝑐3可以与单元𝑐7进行位置互换,且将单元𝑐3和𝑐7交换后不会导致 新的 MIA 违规,如图 4-5 (b)所示。
在修复行间 MIA 违规的过程中,通常会优先考虑使用方法一和方法二来解决。这 是因为这两种方法可以在几乎不影响其他布局质量指标的情况下有效地修复大部分的 行间 MIA 违规。当这两种方法无法解决所有的行间 MIA 违规时,才会转而采用方法 三。使用方法三时,本文根据最小位移原则在初始位置周围的曼哈顿距离小于 R 的范 围内选择最近的合法位置作为最终位置。这样可以最大程度地避免对布局质量的影响。
在这里需要特别说明的是,在行间 MIA 违规中,通常会涉及两个单元。因此,可 以仅对其中一个单元使用上述步骤来解决大多数的行间 MIA 违规。如果仍有未解决的 违规情况,则本文建议对另一个单元执行相同的步骤。这样一来,逐步地解决所有的 行间 MIA 违规将会变得更加容易。
此外,还需要注意的是,在执行修复行间 MIA 违规的过程中,应该尽量避免对正 常单元造成任何影响。为了达到这个目的,本文在优化算法的过程中加入一些额外的 约束条件,那就是确保不会造成额外的行间 MIA 违规。当然,在实践中,也需要针对 特定的情况进行调整和改进。
在选择范围值 R 时,文本将其设置为 3 倍行高。这是因为行高是布局中的一个重 要参数,每个单元都必须布置在行上,即纵坐标为行高的倍数。通过将 R 设置为 3 倍 行高,可以确保所有的行间 MIA 违规都得到解决。同时,这也可以尽量避免对布局质 量的影响。
更多华数杯相关文章参考:
2024年华数杯全国大学生数学建模竞赛A题-考虑动力学和外部干扰的关节角路径优化问题4详细求解过程-CSDN博客
2024年华数杯全国大学生数学建模竞赛A题-在有障碍物的情况下优化机器臂底座移动路径和关节角路径问题3详细求解过程-CSDN博客 2024年华数杯全国大学生数学建模竞赛A题-关节角路径的优化设计以最小化末端误差和能耗问题2详细求解过程-CSDN博客
2024年华数杯全国大学生数学建模竞赛A题-六自由度机器臂的数学建模及关节角路径优化问题1详细求解过程-CSDN博客
2024年第五届“华数杯”全国大学生数学建模竞赛C赛题解析-CSDN博客
2024年第五届“华数杯”全国大学生数学建模竞赛B赛题解析-CSDN博客