CN115906748B - 一种基于滑动窗口和离散差分进化算法的3d布局优化方法 - Google Patents
一种基于滑动窗口和离散差分进化算法的3d布局优化方法 Download PDFInfo
- Publication number
- CN115906748B CN115906748B CN202211632016.5A CN202211632016A CN115906748B CN 115906748 B CN115906748 B CN 115906748B CN 202211632016 A CN202211632016 A CN 202211632016A CN 115906748 B CN115906748 B CN 115906748B
- Authority
- CN
- China
- Prior art keywords
- die
- window
- sub
- current
- cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明涉及集成电路技术领域,具体的说是一种基于滑动窗口和离散差分进化算法的3D布局优化方法。在进行优化时,首先读入电路网表、当前两个Die的尺寸以及标准单元的规格,然后进行优化。对比传统的各种2D布局优化算法,本发明能够有效处理3D芯片布局问题。通过滑动窗口策略在Top和Bottom两个Die中交替的滑动窗口,针对3D堆叠技术中两个面对面的Die的放置提供了一个有效的解决方案,且通过离散差分进化算法来进一步优化放置结果,通过不断地重新组合Cells的放置顺序来获得最优的布局方案。在连接终端的布局问题中,网格化预处理方案能够以O(n)的时间复杂度完成跨Die的Nets与连接终端的一一对应过程,能够有效处理大规模集成电路的布局优化问题。
Description
技术领域
本发明涉及一种基于滑动窗口和离散差分进化算法的3D布局优化方法,属于集成电路技术领域。
背景技术
集成电路产业遵循着摩尔定律,以18个月晶体管数量增加一倍同时成本维持不变的准则,快速蓬勃发展。近年来,集成电路的特征尺寸已经缩减到了10nm这一级别甚至以下,单张芯片中甚至集成了上亿数量的晶体管。随着特征尺寸不断变小,材料的物理极限是晶体管的进一步集成不得不面临的困难。传统的芯片由于只考虑了在二维芯片横向上的排布问题,性能已经渐渐趋于饱和,因此3D芯片堆叠技术应运而生。根据堆叠方法,当前3D芯片堆叠技术主要有三种形式:芯片与芯片的堆叠,芯片与圆片的堆叠,圆片与圆片的堆叠,3D堆叠技术的在出现使得集成电路中布局布线部分中的连线长度大大缩减。
但多个裸片(Die)之间的布局及布线问题逐渐成为了影响3D IC性能的主要因素之一。传统的一些布局算法在处理2D布局问题中取得不错的效果,如:
1)基于时钟树的布局优化方法。根据时钟树中门控单元和时序单元的连接关系来对所有标准单元(std cells)进行放置,但忽略了布局之后布线的长度等问题。
2)基于启发式搜索的布局优化方法。如模拟退火方法,其能够很好的获得划分结果的全局最优,但往往需要大量时间来迭代直至收敛。
3)基于强化学习的布局优化方法。强化学习是近年被用作布局优化算法中,能够在较短时间内获得一个较优秀的结果,但事先需要大量真实数据来训练模型。
尽管以上技术以不同的方式实现了2D布局问题中标准单元的放置,但这些传统的布局布线是二维的,只考虑了X轴和Y轴两个方向。而在3D芯片中,需要考虑面对面的两个堆叠芯片之中的布局,且现有的EDA软件不支持三维的布局布线。因此如何实现3D IC中布局布线的设计成为了亟需解决的问题。
有鉴于此特提出本发明。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于滑动窗口和离散差分进化算法的3D布局优化方法,有效的处理3D芯片布局问题。其中的滑动窗口策略在Top和Bottom两个Die中交替的滑动窗口,在此基础上,通过离散差分进化算法跳出局部最优并向着全局最优收敛的能力,通过不断地重新组合Cells的放置顺序来获得最优的布局方案。
本发明通过以下技术方案来实现上述目的,一种基于滑动窗口和离散差分进化算法的3D布局优化方法,在进行优化时,首先读入电路网表(Netlist)、当前两个Die的尺寸、标准单元的规格,然后进行优化时,包括以下步骤:
步骤一、判断当前Die是否能够划分,当为否时,进行跳转至步骤八,在为是时,进行下一步;
步骤二、划分当前Die,生成9个子Die;
步骤三、根据网表构建无向加权图;
步骤四、将无向加权图划分为多个社团;
步骤五、以滑动窗口策略将不同社团中的Nets分别放置入不同子Die;
步骤六、使用离散差分进化算法对布局结果进行优化;
步骤七、根据Nets与子Die的对应关系,生成子网表,且生成子网表后,进行返回步骤一,进行重新判断;
步骤八、网格化预处理所有连接终端可能出现的位置,当步骤一中判断为否时,进行跳转;
步骤九、为所有跨Die的连接贪心的选择最近的连接终端位置,并放置连接终端。
进一步的,在步骤一中,当前Die在3D芯片布局问题中同时包括TopDie和BottomDie,依据当前Die的宽度与最大标准单元的宽度,判断当前Die是否能够划分为多个子Die,若当前Die的宽度大于最大标准单元宽度的三倍,执行步骤二,否则完成全局布局,执行步骤八。其中,当前Die除了最初数据读入中的原始Die之外,还有包括上一层迭代中划分出的多个子Die。在步骤二中,将当前Top和Bottom两个Die按宽度分别分为三个区域,对划分出的三个区域,按当前Top和Bottom两个Die中行(Row)的规格进行三分化,以最终获得9个Top子Die和9个Bottom子Die。在步骤三中,网表中通常列出了不同Cells中不同引脚(Pin)的连接关系,并以一个网(Net)表示,每个Net说明了两个及以上Cells中Pin的连接关系。以Net为基本单位,并将其构建成节点,若两个Net中含有一个相同的Cell,则认为这两个节点有一条连接关系,并为两节点边的权值加一,最终构成了无向有权图G={V,E,W},其中V={v1,v2,…,vn}表示网表中n个Nets构成的节点的集合,E={(vi,vj)|vi∈V,vj∈V,andi≠j}表示边的集合,且W={wij}表示节点vi和vj之间边的权值的集合。在步骤四中,在得到一个无向加权图之后,连接较为密切的节点意味着这些Net具有更为紧密的连接关系。使用社团检测算法Louvain将无向加权图划分为多个社团,每个社团中的节点连接十分密切,而各个社团之间的连接较为稀疏。将原本无序的Netlist划分为了多个关系密切的社团,社团中的Cells放在较近的位置,从而减少了布局后的布线长度,且在步骤五中,以滑动窗口策略的思想来将每一个Cell合理的放入子Die,窗口在TopDie和BottomDie中交替滑动,合理利用芯片布局3D特性并优化最终的布局线长。
进一步的,在步骤六中,在滑动窗口策略的初步放置完成之后,进一步对放置结果进行优化,采用离散差分进化算法来对放置顺序进行优化,其具体优化分为两部分:
A、首先是在9个子Die中的放置顺序,每一个子Die中已放置的Cell都有与其他子Die中的Cell存在有连接关系,从{0,1,2,3,4,5,6,7,8}九个数中找到一个最优的排列顺序,使宏观放置后的最终线长最短,在求得最短的宏观放置顺序后,预放置所有Cell,并得到每一个子Die中对应放置Nets信息。
B、然后当前子Die中所有Cells的放置顺序,在得到子Die与对应Nets的信息后,以每一个Cell的放置顺序编码,求得在当前子Die中使得最终线长最短的所有Cells的最佳放置顺序。
进一步的,在步骤七中,在每一轮迭代中会产生9个子Die和子Die中放置的所有Nets,根据9个子Die与其所放置的Nets的对应关系,生成9个子网表,产生的所有子Die与子网表均置入下一阶段迭代继续优化。在步骤八中,连接终端Terminal负责为跨Die的Nets提供连接通道,以每个连接终端需要的空间为单位,网格化Die中的所有区域,确保所有连接终端之间不会拥塞。网格化后的所有区域表示该区域为一个连接终端的候选区域,用一个标志位Flag来表示,Flag=1表示该位置已有连接终端,Flag=0表示该位置为空。在步骤九中,遍历所有Nets,若有Net的连接需要跨Die,则需要为其分配一个连接终端,首先根据Net中所有引脚的坐标计算出一个包围盒(BoundingBox),并根据包围盒的中心坐标计算出与该中心坐标距离最近的网格位置。若该网格已有连接终端,即Flag=1,则查找该网格周围八个网格,若8个候选网格存在空网格,则贪心的选择距离包围盒中心坐标最近的网格,并将Flag置为1;若没有空网格,则进一步扩大搜索范围,直至找到空网格并建立连接终端。
进一步的,在步骤五中,具体滑动窗口策略的细节如下:
滑动窗口的思想是创建一个窗口,在放置Cells的过程中将Cells放入当前窗口,当窗口中的空余位置不足以放入新的Cell后,窗口便开始在TopDie和BottomDie中交替滑动,直至放完所有的Cells。
以所有Cells的最大宽度作为窗口的宽度,以确保窗口能够至少放入一个Cell。由于TopDie和BottomDie所采用的技术往往不尽相同,因此以两个Die中具体的高度规格构造出两种规格的窗口,在将Cells放入当前窗口时,可能会由于Cells的规格不同,会在窗口右侧留下部分无法放入一个新的Cell的碎片空间,当窗口滑动至大于等于第二列,在构造新的窗口时,会将前一列中的碎片空间也包含进当前窗口,这样有效避免了放置过程中所产生的碎片空间,在窗口滑动的过程中,根据当前窗口左下角的坐标值来确定下一步应当滑动TopDie或者BottomDie中的窗口,首先定义标志位UporDown,用0和1来分别表示当前窗口应当向下滑动还是向上滑动,定义TopY、BottomY用以记录当前窗口左下角的坐标值,具体过程如下:
步骤1、初始化TopY=BottomY=0,UporDown=1。
步骤2、判断TopY与BottomY的大小关系,若TopY≤BottomY,则滑动TopDie中的窗口,并更新TopY;反之滑动BottomDie中的窗口,并更新BottomY。
步骤3、若当前窗口所剩空间无法放入新的Cell时,便需要一个新的窗口,因此开始滑动窗口:此时判断TopY与BottomY的大小关系,若TopY≤BottomY,则滑动TopDie中的窗口,并更新TopY;若TopY>BottomY,则从BottomDie中滑动窗口。
步骤4、重复进行步骤3,直至TopDie和bottomDie中的窗口均已滑动至Die的顶端时将UporDown置反,并开始在新的一列中根据UporDown中的值来判断继续向上或向下滑动。
步骤5、重复进行步骤3和步骤4,并以此规律不断滑动窗口,直至所有Cells均放置完毕,获得当前Die中所有Cells的放置顺序,并将放置顺序提供给后续的离散差分进化算法进一步优化。
进一步的,在步骤六中,使用离散差分进化算法对布局结果进行优化,具体离散差分进化算法的细节如下:
1.编码与解码:针对9个子Die的放置顺序问题和当前Die所有Cells的放置顺序问题,以基于顺序的编码方案提供了两种不同的解码方式。
A、9个子Die的放置顺序问题。对9个子Die从零开始编号有{0,1,2,3,4,5,6,7,8},9个数字表示9个子Die,而九个数字的排列顺序表示Cells应当遵循的放置顺序,以{2,5,4,3,0,1,7,6,8}为例,当2号子Die放入满足Die利用率的Cells之后,接下来应当将Cells继续向5号Die中放置,直至所有Cells均放入当前Die中,以按照当前顺序放置后计算出所有9个子Die中的布局线长作为评价指标,并最小化布局线长。
B、当前Die所有Cells的放置顺序问题。在当前Die放置Cells时,有n个Cells需要放置,因此对这些Cells的放置顺序进行编码,在进化中不断对放置顺序进行重新排列,直至找到一个最优放置序列。以当前顺序放置后计算出当前Die中的布局线长作为评价指标,并最小化布局线长;
2.变异策略:针对基于顺序编码的离散问题,沿用标准DE算法的框架,算法中的个体编码为离散的排列π=(π(1),π(2),…,π(n)),n是排列的长度,用πt/ i、Vt i和Ut i分别表示第t次迭代种群中的第i个目标个体、变异个体和试验个体,πb表示算法当前找到的最好解,pm和pc分别表示变异率和交叉率,设计变异个体的产生方式如下:
其中,insert(·)表示对排列做一个随机***移动,即随机选择一个元素,将其***到其他的某个随机位置上去,pm是变异率,用来控制变异个体通过πb产生的概率,r是[1,NP]间产生的随机整数且r≠i,rand是(0,1)范围内均匀分布的随机数,该变异策略表示,产生的随机数rand小于变异率pm,则通过πb的一次随机***移动来产生变异个体,否则,对种群中的其他某个随机目标个体进行一次随机***移动来产生变异个体。
3.交叉策略:试验个体的产生方式如下:
其中,crossover(·)表示对两个个体进行交叉操作,并随机返回一个个体;pc是交叉率,用来控制试验个体通过交叉产生的概率,采用部分匹配交叉(PMX)作为交叉方式。
4.选择策略:产生试验个体之后,与标准DE算法一样,使用一对一的竞争选择方式来更新目标个体,如果试验个体的适应值小于或等于目标个体的适应值,则试验个体替换目标个体,进入下一代的种群中,否则,目标个体仍然保留在种群中,选择操作的表达式为:
本发明的技术效果和优点:对比传统的各种2D布局优化算法,能够有效处理3D芯片布局问题。本发明通过滑动窗口策略在Top和Bottom两个Die中交替的滑动窗口,针对3D堆叠技术中两个面对面的Die的放置提供了一个有效的解决方案,且通过离散差分进化算法来进一步优化放置结果,通过不断地重新组合Cells的放置顺序来获得最优的布局方案。在连接终端的布局问题中,网格化预处理方案能够以O(n)的时间复杂度完成跨Die的Nets与连接终端的一一对应过程,能够有效处理大规模集成电路的布局优化问题。
附图说明
图1为本发明的整体流程图;
图2为3D芯片连接线长优势示意图;
图3为迭代的划分当前Die图;
图4为网表转换为无向加权图示例图;
图5为滑动窗口策略示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-5所示,一种基于滑动窗口和离散差分进化算法的3D布局优化方法,在进行优化时,首先读入电路网表(Netlist)、当前两个Die的尺寸、标准单元的规格,然后进行优化时,包括以下步骤:
步骤一、判断当前Die是否能够划分,当为否时,进行跳转至步骤八,在为是时,进行下一步;
步骤二、划分当前Die,生成9个子Die;
步骤三、根据网表构建无向加权图;
步骤四、将无向加权图划分为多个社团;
步骤五、以滑动窗口策略将不同社团中的Nets分别放置入不同子Die;
步骤六、使用离散差分进化算法对布局结果进行优化;
步骤七、根据Nets与子Die的对应关系,生成子网表,且生成子网表后,进行返回步骤一,进行重新判断;
步骤八、网格化预处理所有连接终端可能出现的位置,当步骤一中判断为否时,进行跳转;
步骤九、为所有跨Die的连接贪心的选择最近的连接终端位置,并放置连接终端。
在步骤一中,当前Die在3D芯片布局问题中同时包括TopDie和BottomDie,依据当前Die的宽度与最大标准单元的宽度,判断当前Die是否能够划分为多个子Die,若当前Die的宽度大于最大标准单元宽度的三倍,执行步骤二,否则完成全局布局,执行步骤八。其中,当前Die除了最初数据读入中的原始Die之外,还有包括上一层迭代中划分出的多个子Die。在步骤二中,将当前Top和Bottom两个Die按宽度分别分为三个区域,对划分出的三个区域,按当前Top和Bottom两个Die中行(Row)的规格进行三分化,以最终获得9个Top子Die和9个Bottom子Die。在步骤三中,网表中通常列出了不同Cells中不同引脚(Pin)的连接关系,并以一个网(Net)表示,每个Net说明了两个及以上Cells中Pin的连接关系。以Net为基本单位,并将其构建成节点,若两个Net中含有一个相同的Cell,则认为这两个节点有一条连接关系,并为两节点边的权值加一,最终构成了无向有权图G={V,E,W},其中V={v1,v2,…,vn}表示网表中n个Nets构成的节点的集合,E={(vi,vj)|vi∈V,vj∈V,andi≠j}表示边的集合,且W={wij}表示节点vi和vj之间边的权值的集合,在步骤四中,在得到一个无向加权图之后,连接较为密切的节点意味着这些Net具有更为紧密的连接关系。使用社团检测算法Louvain将无向加权图划分为多个社团,每个社团中的节点连接十分密切,而各个社团之间的连接较为稀疏。将原本无序的Netlist划分为了多个关系密切的社团,社团中的Cells放在较近的位置,从而减少了布局后的布线长度。且在步骤五中,以滑动窗口策略的思想来将每一个Cell合理的放入子Die,窗口在TopDie和BottomDie中交替滑动,合理利用芯片布局3D特性并优化最终的布局线长。
在步骤六中,在滑动窗口策略的初步放置完成之后,进一步对放置结果进行优化。这里采用离散差分进化算法来对放置顺序进行优化,其具体优化分为两部分:
A、首先是在9个子Die中的放置顺序。每一个子Die中已放置的Cell都有与其他子Die中的Cell存在有连接关系。从{0,1,2,3,4,5,6,7,8}九个数中找到一个最优的排列顺序,使宏观放置后的最终线长最短。在求得最短的宏观放置顺序后,预放置所有Cell,并得到每一个子Die中对应放置Nets信息。
B、然后当前子Die中所有Cells的放置顺序。在得到子Die与对应Nets的信息后,以每一个Cell的放置顺序编码,求得在当前子Die中使得最终线长最短的所有Cells的最佳放置顺序。
在步骤七中,在每一轮迭代中会产生9个子Die和子Die中放置的所有Nets,根据9个子Die与其所放置的Nets的对应关系,生成9个子网表,产生的所有子Die与子网表均置入下一阶段迭代继续优化。并在步骤八中,连接终端Terminal负责为跨Die的Nets提供连接通道。以每个连接终端需要的空间为单位,网格化Die中的所有区域,确保所有连接终端之间不会拥塞。网格化后的所有区域表示该区域为一个连接终端的候选区域,用一个标志位Flag来表示,Flag=1表示该位置已有连接终端,Flag=0表示该位置为空。在步骤九中,遍历所有Nets,若有Net的连接需要跨Die,则需要为其分配一个连接终端。首先根据Net中所有引脚的坐标计算出一个包围盒(BoundingBox),并根据包围盒的中心坐标计算出与该中心坐标距离最近的网格位置。若该网格已有连接终端,即Flag=1,则查找该网格周围八个网格,若8个候选网格存在空网格,则贪心的选择距离包围盒中心坐标最近的网格,并将Flag置为1;若没有空网格,则进一步扩大搜索范围,直至找到空网格并建立连接终端。
在步骤五中,具体滑动窗口策略的细节如下:
滑动窗口的思想是创建一个窗口,在放置Cells的过程中将Cells放入当前窗口,当窗口中的空余位置不足以放入新的Cell后,窗口便开始在TopDie和BottomDie中交替滑动,直至放完所有的Cells。
以所有Cells的最大宽度作为窗口的宽度,以确保窗口能够至少放入一个Cell,由于TopDie和BottomDie所采用的技术往往不尽相同,因此以两个Die中具体的高度规格构造出两种窗口。在将Cells放入当前窗口时,可能会由于Cells的规格不同,会在窗口右侧留下部分无法放入一个新的Cell的碎片空间。当窗口滑动至大于等于第二列会将前一列中的碎片空间也包含进当前窗口,这样有效避免了放置过程中所产生的碎片空间。在窗口滑动的过程中,根据当前窗口左下角的坐标值来确定下一步应当滑动TopDie或者BottomDie中的窗口。首先定义标志位UporDown,用0和1来分别表示当前窗口应当向下滑动还是向上滑动,定义TopY、BottomY用以记录当前窗口左下角的坐标值,具体过程如下:
步骤1、初始化TopY=BottomY=0,UporDown=1。
步骤2、判断TopY与BottomY的大小关系,若TopY≤BottomY,则滑动TopDie中的窗口,并更新TopY,反之滑动BottomDie中的窗口,更新BottomY。
如:若当前窗口所剩空间无法放入新的Cell时,便需要一个新的窗口,因此开始滑动窗口,当窗口1无法放入新的Cells时开始滑动窗口,此时判断TopY≤BottomY,因此获得窗口2,并更新TopY,当窗口2无法放入新的Cells是继续滑动窗口,此时TopY>BottomY,因此开始从BottomDie中滑动窗口,并获得窗口3。
步骤3、重复进行步骤2,直至TopDie和bottomDie中的窗口均已滑动至Die的顶端时将UporDown置反,并开始在新的一列中根据UporDown中的值继续滑动。
步骤4、重复进行步骤2和步骤3,并以此规律不断滑动窗口,直至所有Cells均放置完毕,获得当前Die中所有Cells的放置顺序,并将放置顺序提供给后续的离散差分进化算法进一步优化。
在步骤6中,使用离散差分进化算法对布局结果进行优化,具体离散差分进化算法的细节如下:
1.编码与解码:针对9个子Die的放置顺序问题和当前Die所有Cells的放置顺序问题,以基于顺序的编码方案提供了两种不同的解码方式。
A、9个子Die的放置顺序问题,对9个子Die从零开始编号有{0,1,2,3,4,5,6,7,8},9个数字表示9个子Die,而九个数字的排列顺序表示Cells应当遵循的放置顺序。以{2,5,4,3,0,1,7,6,8}为例,当2号子Die放入满足Die利用率的Cells之后,接下来应当将Cells继续向5号Die中放置,直至所有Cells均放入当前Die中。以按照当前顺序放置后计算出所有9个子Die中的布局线长作为评价指标,并最小化布局线长。
B、当前Die所有Cells的放置顺序,在当前Die放置Cells时,有n个Cells需要放置,因此对这些Cells的放置顺序进行编码,在进化中不断对放置顺序进行重新排列,直至找到一个最优放置序列。以按照当前顺序放置后计算出当前Die中的布局线长作为评价指标,并最小化布局线长;
2.变异策略:针对基于顺序编码的离散问题,沿用标准DE算法的框架,算法中的个体编码为离散的排列π=(π(1),π(2),…,π(n)),n是排列的长度,用πt i、Vt i和Ut i分别表示第t次迭代种群中的第i个目标个体、变异个体和试验个体,πb表示算法当前找到的最好解,pm和pc分别表示变异率和交叉率,设计变异个体的产生方式如下:
其中,insert(·)表示对排列做一个随机***移动,即随机选择一个元素,将其***到其他的某个随机位置上去,pm是变异率,用来控制变异个体通过πb产生的概率,r是[1,NP]间产生的随机整数且r≠i,rand是(0,1)范围内均匀分布的随机数。该变异策略表示,产生的随机数rand小于变异率pm,则通过πb的一次随机***移动来产生变异个体,否则,对种群中的其他某个随机目标个体进行一次随机***移动来产生变异个体。
3.交叉策略:试验个体的产生方式如下:
其中,crossover(·)表示对两个个体进行交叉操作,并随机返回一个个体,pc是交叉率,用来控制试验个体通过交叉产生的概率,采用部分匹配交叉(PMX)作为交叉方式。
4.选择策略:产生试验个体之后,与标准DE算法一样,使用一对一的竞争选择方式来更新目标个体。如果试验个体的适应值小于或等于目标个体的适应值,则试验个体替换目标个体,进入下一代的种群中;否则,目标个体仍然保留在种群中,选择操作的表达式为:
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (7)
1.一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在进行优化时,首先读入电路网表Netlist、当前两个Die的尺寸、标准单元的规格,然后进行优化时,包括以下步骤:
步骤一、判断当前Die是否能够划分,当为否时,进行跳转至步骤八,在为是时,进行下一步;
步骤二、划分当前Die,生成9个子Die;
步骤三、根据网表构建无向加权图;
步骤四、将无向加权图划分为多个社团;
步骤五、以滑动窗口策略将不同社团中的Nets分别放置入不同子Die,具体滑动窗口策略的细节如下;
滑动窗口的思想是创建一个窗口,在放置Cells的过程中将Cells放入当前窗口,当窗口中的空余位置不足以放入新的Cel l后,窗口便开始在TopDie和BottomDie中交替滑动,直至放完所有的Cel ls;
以所有Cells的最大宽度作为窗口的宽度,以确保窗口能够至少放入一个Cel l,由于TopDie和BottomDie所采用的技术往往不尽相同,因此两个Die中窗口高度规格也不尽相同,在将Cells放入当前窗口时,会由于Cells的规格不同,在窗口右侧留下部分无法放入一个新的Cel l的碎片空间,当窗口滑动至大于等于第二列时,会将前一列中的碎片空间也包含进当前窗口,避免放置过程中所产生的碎片空间,在窗口滑动的过程中,根据当前窗口左下角的坐标值来确定下一步应当滑动TopDie或者BottomDie中的窗口,首先定义标志位UporDown,用0和1来分别表示当前窗口应当向下滑动还是向上滑动,定义TopY、BottomY用以记录当前窗口左下角的坐标值,具体过程如下:
步骤1、初始化TopY=BottomY=0,UporDown=1;
步骤2、判断TopY与BottomY的大小关系,若TopY≤BottomY,则滑动TopDie中的窗口,并更新TopY;反之滑动BottomDie中的窗口,并更新BottomY;
步骤3、若当前窗口所剩空间无法放入新的Cel l时,便需要一个新的窗口,因此开始滑动窗口:此时判断TopY与BottomY的大小关系,若TopY≤BottomY,则滑动TopDie中的窗口,并更新TopY;若TopY>BottomY,则从BottomDie中滑动窗口;
步骤4、重复进行步骤3,直至TopDie和bottomDie中的窗口均已滑动至Die的顶端时将UporDown置反,并开始在新的一列中根据UporDown中的值来判断继续向上或向下滑动;
步骤5、重复进行步骤3和步骤4,并以此规律不断滑动窗口,直至所有Cells均放置完毕,获得当前Die中所有Cells的放置顺序,并将放置顺序提供给后续的离散差分进化算法进一步优化;
步骤六、使用离散差分进化算法对布局结果进行优化,在滑动窗口策略的初步放置完成之后,进一步对放置结果进行优化,采用离散差分进化算法来对放置顺序进行优化,其具体优化分为两部分:
A、首先是在9个子Die中的放置顺序,每一个子Die中已放置的Cell都有与其他子Die中的Cel l存在有连接关系,从{0,1,2,3,4,5,6,7,8}九个数中找到一个最优的排列顺序,使宏观放置后的最终线长最短,在求得最短的宏观放置顺序后,预放置所有Cel l,并得到每一个子Die中对应放置Nets信息;
B、然后当前子Die中所有Cells的放置顺序,在得到子Die与对应Nets的信息后,以每一个Cell的放置顺序编码,求得在当前子Die中使得最终线长最短的所有Cells的最佳放置顺序;
步骤七、根据Nets与子Die的对应关系,生成子网表,且生成子网表后,进行返回步骤一,进行重新判断;
步骤八、网格化预处理所有连接终端的位置,当步骤一中判断为否时,进行跳转;
步骤九、为所有跨Die的连接贪心的选择最近的连接终端位置,并放置连接终端。
2.根据权利要求1所述的一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在步骤一中,当前Die在3D芯片布局问题中同时包括TopDie和BottomDie,依据当前Die的宽度与最大标准单元的宽度,判断当前Die是否能够划分为多个子Die,若当前Die的宽度大于最大标准单元宽度的三倍,执行步骤二,否则完成全局布局,执行步骤八。
3.根据权利要求2所述的一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在步骤二中,将当前Top和Bottom两个Die按宽度分别分为三个区域,对划分出的三个区域,按当前Top和Bottom两个Die中行Row的规格进行三分化,以最终获得9个Top子Die和9个Bottom子Die。
4.根据权利要求3所述的一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在步骤三中,网表中通常列出了不同Cells中不同引脚Pin的连接关系,并以一个网Net表示,每个Net说明了两个及以上Cells中Pin的连接关系,以Net为基本单位,并将其构建成节点,若两个Net中含有一个相同的Cel l,则认为这两个节点有一条连接关系,并为两节点边的权值加一,最终构成一个无向有权图G={V,E,W}。
5.根据权利要求4所述的一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在步骤四中,在得到一个无向加权图之后,连接较为密切的节点意味着这些Net具有更为紧密的连接关系,使用社团检测算法Louvain将无向加权图划分为多个社团,每个社团中的节点连接十分密切,而各个社团之间的连接较为稀疏。
6.根据权利要求5所述的一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在步骤七中,在每一轮迭代中会产生9个子Die和子Die中放置的所有Nets,根据9个子Die与其所放置的Nets的对应关系,生成9个子网表,产生的所有子Die与子网表均置入下一阶段迭代继续优化,在步骤八中,连接终端Terminal负责为跨Die的Nets提供连接通道,以每个连接终端需要的空间为单位,网格化Die中的所有区域,在步骤九中,遍历所有Nets,若有Net的连接需要跨Die,则需要为其分配一个连接终端:首先根据Net中所有引脚的坐标计算出一个包围盒BoundingBox,并根据包围盒的中心坐标计算出与该中心坐标距离最近且未被占用的网格位置。
7.根据权利要求6所述的一种基于滑动窗口和离散差分进化算法的3D布局优化方法,其特征在于:在步骤六中,使用离散差分进化算法对布局结果进行优化,具体离散差分进化算法的细节如下:
(1).编码与解码:针对9个子Die的放置顺序问题和当前Die所有Cells的放置顺序问题,以基于顺序的编码方案提供了两种不同的解码方式;
A、9个子Die的放置顺序问题,对9个子Die从零开始编号有{0,1,2,3,4,5,6,7,8},9个数字表示9个子Die,而九个数字的排列顺序表示Cells应当遵循的放置顺序,以当前顺序放置后计算出所有9个子Die中的布局线长作为评价指标,并最小化布局线长;
B、当前Die所有Cells的放置顺序问题,在当前Die放置Cells时,有n个Cells需要放置,因此对Cells的放置顺序进行编码,在进化中不断对放置顺序进行重新排列,直至找到一个最优放置序列,以当前顺序放置后计算出当前Die中的布局线长作为评价指标,并最小化布局线长;
(2).变异策略:设计变异个体的产生方式如下:
(3).交叉策略:试验个体的产生方式如下:
(4).选择策略:产生试验个体之后,使用一对一的竞争选择方式来更新目标个体,如果试验个体的适应值小于或等于目标个体的适应值,则试验个体替换目标个体,进入下一代的种群中,否则,目标个体仍然保留在种群中,选择操作的表达式为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211632016.5A CN115906748B (zh) | 2022-12-19 | 2022-12-19 | 一种基于滑动窗口和离散差分进化算法的3d布局优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211632016.5A CN115906748B (zh) | 2022-12-19 | 2022-12-19 | 一种基于滑动窗口和离散差分进化算法的3d布局优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115906748A CN115906748A (zh) | 2023-04-04 |
CN115906748B true CN115906748B (zh) | 2023-08-01 |
Family
ID=86485474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211632016.5A Active CN115906748B (zh) | 2022-12-19 | 2022-12-19 | 一种基于滑动窗口和离散差分进化算法的3d布局优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115906748B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077496A (zh) * | 2014-07-17 | 2014-10-01 | 中国科学院自动化研究所 | 基于差分进化算法的智能管道布局优化方法和*** |
CN113962186A (zh) * | 2021-10-28 | 2022-01-21 | 中国长城科技集团股份有限公司 | 芯片布局方法、装置、终端设备及计算机可读存储介质 |
CN114692550A (zh) * | 2022-03-16 | 2022-07-01 | 中山大学 | 一种基于ai权重的3d ic布局多目标优化方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7823116B2 (en) * | 2006-07-17 | 2010-10-26 | Syncira Corporation | Hierarchical analog layout synthesis and optimization for integrated circuits |
US20090300570A1 (en) * | 2006-07-17 | 2009-12-03 | Syncira Corporation | Interactive hierarchical analog layout synthesis for integrated circuits |
US20080016476A1 (en) * | 2006-07-17 | 2008-01-17 | Shufan Chan | Hierarchical analog layout synthesis and optimization for integrated circuits |
US10534257B2 (en) * | 2017-05-01 | 2020-01-14 | Lam Research Corporation | Layout pattern proximity correction through edge placement error prediction |
CN114282484A (zh) * | 2021-12-24 | 2022-04-05 | 中南大学 | 基于改进天牛须算法的异构三维片上网络的布图优化方法、装置、设备及介质 |
CN114896937A (zh) * | 2022-05-24 | 2022-08-12 | 广东工业大学 | 一种基于强化学习的集成电路布局优化方法 |
-
2022
- 2022-12-19 CN CN202211632016.5A patent/CN115906748B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077496A (zh) * | 2014-07-17 | 2014-10-01 | 中国科学院自动化研究所 | 基于差分进化算法的智能管道布局优化方法和*** |
CN113962186A (zh) * | 2021-10-28 | 2022-01-21 | 中国长城科技集团股份有限公司 | 芯片布局方法、装置、终端设备及计算机可读存储介质 |
CN114692550A (zh) * | 2022-03-16 | 2022-07-01 | 中山大学 | 一种基于ai权重的3d ic布局多目标优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115906748A (zh) | 2023-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Whitley | Permutations | |
US6851099B1 (en) | Placement method for integrated circuit design using topo-clustering | |
US6507941B1 (en) | Subgrid detailed routing | |
JPS60117758A (ja) | 素子位置割当て方法 | |
CN115544947B (zh) | 基于遗传算法的大规模集成电路布局优化方法 | |
CN114491881A (zh) | 一种功率模块的衬底设计方法、装置和终端设备 | |
Chiang et al. | A weighted Steiner tree-based global router with simultaneous length and density minimization | |
CN115906748B (zh) | 一种基于滑动窗口和离散差分进化算法的3d布局优化方法 | |
CN112817316B (zh) | 一种多机器人路径规划方法及装置 | |
CN116562218B (zh) | 一种基于强化学习实现矩形宏单元的布图规划方法和*** | |
Jain et al. | Non slicing floorplan representations in VLSI floorplanning: A summary | |
US6434721B1 (en) | Method and apparatus for constraint graph based layout compaction for integrated circuits | |
Kado | An investigation of genetic algorithms for facility layout problems | |
US7698663B2 (en) | Apparatus, method and program for designing integrated circuit | |
US7398486B2 (en) | Method and apparatus for performing logical transformations for global routing | |
Mahajan et al. | A genetic approach to standard cell placement using various genetic operators | |
CN113723043B (zh) | 一种门级电路图划分方法 | |
CN117807950B (zh) | 一种考虑模块对称性的布图规划方法、***及电子设备 | |
Lai et al. | A new and efficient congestion evaluation model in floorplanning: Wire density control with twin binary trees | |
Tao et al. | A module-level three-stage approach to the evolutionary design of sequential logic circuits | |
CN115392158B (zh) | 基于变邻域搜索算法的三维集成电路分区方法与*** | |
JPH08167652A (ja) | Lsiのレイアウト設計方法およびその装置 | |
CN105897278A (zh) | 信息处理方法及存储设备 | |
CN106980743A (zh) | 一种基于稀疏存储格式的三维结构静力学仿真模拟方法 | |
CN115359177A (zh) | 一种基于晶格链的三维模型构建及变形方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |