CN115392178A - 芯片布局方法、芯片布局设备和计算机可读存储介质 - Google Patents
芯片布局方法、芯片布局设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115392178A CN115392178A CN202210956245.6A CN202210956245A CN115392178A CN 115392178 A CN115392178 A CN 115392178A CN 202210956245 A CN202210956245 A CN 202210956245A CN 115392178 A CN115392178 A CN 115392178A
- Authority
- CN
- China
- Prior art keywords
- rectangular circuit
- chip layout
- subset
- modules
- rectangular
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- 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
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种芯片布局方法、芯片布局设备和计算机可读存储介质,芯片布局方法包括:步骤S1、获得用于芯片布局的多个矩形电路模块;步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集,每一所述子集包括至少一个所述矩形电路模块;步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小;步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。与相关技术相比,采用本发明的技术方案的芯片布局效率高。
Description
技术领域
本发明涉及芯片布局技术领域,尤其涉及一种芯片布局方法、芯片布局设备和计算机可读存储介质。
背景技术
随着芯片应用越来越广泛。芯片布局设计是芯片设计的重要组成部分。芯片半周长连线总和最小化问题是大规模集成芯片布局设计的一个重要步骤。在大规模集成芯片布局设计的流程中,所有的矩形电路模块都要放置在矩形芯片上,并且这些矩形电路模块需要通过导线连接,要考虑的目标是最小化矩形芯片的面积和最小化导线的总长度。由于芯片性能是在大规模集成芯片布局设计中最主要考虑的优化目标,互连线的长短是影响芯片的功耗、延时、可靠性等性能的主要因素;另一方面生产芯片的材料非常昂贵,总连线长度最小化可以节约金属导线的使用,因此材料的节约对于降低制造成本有重要的影响,特别是在大批量生产中,提高芯片材料利用率可以带来显著的经济效益。
相关技术的芯片布局设计大多算法应用在大规模集成芯片设计中主要是优化芯片的总面积,而忽略或者优化不足各矩形电路模块间的互连线,从而不能尽最大程度的降低芯片的功耗和延时。针对大规模集成芯片中半周长连线总和最小化问题,目前的解决方法是只考虑每个电路网络内部的电路模块之间互连,而忽略了单个电路网络内部模块与其他电路网络内部模块之间的互连,这样得出的结果不够严谨且过于简化,不具有代表性,不能更好的运用到实际问题当中。
因此,实有必要提供一种新的方法、设备和存储介质解决上述问题。
发明内容
针对以上现有技术的不足,本发明提出一种芯片布局效率高的芯片布局方法、芯片布局设备和计算机可读存储介质。
为了解决上述技术问题,第一方面,本发明实施例提供了一种芯片布局方法,该方法包括如下步骤:
步骤S1、获得用于芯片布局的多个矩形电路模块;
步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集,每一所述子集包括至少一个所述矩形电路模块;
步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小;
步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。
优选的,所述步骤S2包括:
所述步骤S1中,所述矩形电路模块包括呈矩形的宽和高均确定的硬模块、面积确定且宽和高均未确定的软模块以及多个连接关系模块,所述连接关系模块为所述芯片布局相对于的矩形电路网络内各个所述硬模块和/或各个所述软模块之间的连接关系。
优选的,所述步骤S2包括:
步骤S21、将多个所述矩形电路模块集合形成一个待划分子集;
步骤S22、根据所述面积对半划分算法将所述待划分子集划分并生成两个所述子集;
步骤S23、根据所述降低割线成本算法将生成的两个所述子集内的所述矩形电路模块进行移动,以降低生成的两个所述子集之间的割线成本;
步骤S24、将新生成的所述子集作为新的所述待划分子集,将新的所述待划分子集所述重复所述步骤S21至所述步骤S22操作,直至生成的新的所述子集内仅包含一个所述矩形电路模块时停止划分操作。
优选的,所述步骤S22包括:
步骤S221、将多个所述矩形电路模块的面积进行求和得到所述芯片布局的总面积;
步骤S222、将所有所述矩形电路模块的其中一个划入一个新建的所述子集,再将新划入的一所述矩形电路模块的面积与新建的所述子集内已有的所述矩形电路模块的面积进行累加,并得到新的累加面积;
步骤S223、判断所述累加面积是否在预设划分面积的范围内:
若是,则将所有所述矩形电路模块中的其他所述矩形电路模块划入另一个新建的所述子集,以实现生成两个所述子集;若否,则返回步骤S222;优选的,所述预设划分面积的范围为所述芯片布局的总面积的40%-65%。
优选的,所述步骤S23包括:
步骤S231、计算两个所述子集内所有的所述矩形电路模块的割线增益;
步骤S232、通过比较所有计算出的所述割线增益的大小,并找出其中的最大一个相对应的所述矩形电路模块;
步骤S233、判断所述割线增益中的最大一个相对应的所述矩形电路模块的割线成本是否大于0:
若是,则将该矩形电路模块由其所在的所述子集移动至另一个所述子集并进行锁定,并返回所述步骤S232;其中,锁定的所述矩形电路模块不参与所述步骤232的计算所述矩形电路模块的割线增益;
若否,则进入步骤S234;
步骤S234、判断所述步骤S233中割线增益的累计次数是否大于或等于预设的n次:
若是,则进入步骤S235;
若否,则将该矩形电路模块由其所在的所述子集移动至另一个所述子集并进行锁定,并返回所述步骤S232;
步骤S235、判断由所述步骤S232至所述步骤S234的迭代次数是否大于或等于m次:
若是,则停止计算并输出两个所述子集;
若否,则将锁定的所有所述矩形电路模块进行解锁,并返回所述步骤S232;其中,n和m均为整数。
优选的,所述步骤S3中,所述线性规划数学模型包括初始模型、所述矩形电路模块位置关系约束、不超出所述芯片布局或所述子集边界约束以及电路网络连接关系约束;
所述初始模型为HPWL,满足如下公式:
其中,i为所述矩形电路模块;ni为所述电路网络;N为所有所述电路网络的集合;分别为所述电路网络ni的右上角的x坐标、所述电路网络ni的右上角的y坐标、所述电路网络ni的左下角的x坐标以及所述电路网络ni的左下角的y坐标;
所述矩形电路模块位置关系约束满足:
xi+wi≤xj (3);
yi+hi≤yj (4);
其中,wi、hi、xi、yi分别为所述矩形电路模块i的宽度和高度,以及所述矩形电路模块i的左下角的x坐标和y坐标;
公式(3)中的所述矩形电路模块i在所述矩形电路模块j的左方;
公式(4)中的所述矩形电路模块i在所述矩形电路模块j的上方;
所述不超出所述芯片布局或所述子集边界约束满足:
0≤xi,xi+wi≤W (5);
0≤yi,yi+hi≤H (6);
其中,W为所述芯片布局的宽,H为所述芯片布局的高,
所述电路网络连接关系约束满足:
优选的,所述步骤S4包括:
步骤S41、将其中一个所述矩形电路模块作为比较模块与其相邻的一个所述矩形电路模块进行运算,判断该两个模块是否存在重叠:
若是,则进入步骤S42;若否,则进入步骤S43;
步骤S42、计算出该两个所述矩形电路模块消除重叠最快的方向,并沿着此最快的方向移动来消除重叠,再判断该垂直于消除重叠最快的方向是否有剩余空间:
若是,则沿着此最快的方向移动来消除剩余空间,并进入步骤S44;若否,则进入步骤S44;
步骤S43、判断所述比较模块的水平方向或垂直方向是否有剩余空间:
若是,则沿着此最快的方向移动来消除剩余空间并进入步骤S44;若否,则进入步骤S44;
步骤S44、选择另一个所述矩形电路模块作为所述比较模块,重复进入所述步骤S41,直至所有所述矩形电路模块均完成计算。
第二方面,本发明实施例还提供了一种芯片布局设备,包括处理器和存储器,所述处理器用于读取所述存储器中的程序,执行如本发明实施例提供上述的芯片布局方法中的步骤。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现如本发明实施例提供上述的芯片布局方法中的步骤。
与相关技术相比,本发明的芯片布局方法、芯片布局设备和计算机可读存储介质,芯片布局方法通过步骤S1、获得用于芯片布局的多个矩形电路模块;步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集,每一所述子集包括至少一个所述矩形电路模块;步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小;步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。根据上述步骤S1至步骤S4的操作,本发明通过优化目标为各电路网络的半周长互连线总和最小的方法来生成一个芯片的布局,从而提高芯片的性能,该方法实际上将整体芯片布局规划问题转化为一系列规模更小的布局规划子问题,再对一系列规模更小的布局规划子问题建立线性规划数学模型来求解出半周长连线总和最小的最佳布局。由于对一系列规模更小的布局规划子问题建立了线性规划数学模型,使得整体芯片布局规划问题可以在多项式时间内成功求解出来,从而提高了芯片布局效率。并能够通过最小化芯片的半周长连线的总线长,进而最大程度的降低集成芯片的时延和功耗,并且还得到一个合理、正确的芯片布局,从而使得本发明的芯片布局方法的芯片布局效率高。另外,本发明可以最大程度的降低芯片企业生产芯片所需的原料用量,提高生产过程中原料的利用率,从而给芯片企业降低一部分的生产成本。
附图说明
下面结合附图详细说明本发明。通过结合以下附图所作的详细描述,本发明的上述或其他方面的内容将变得更清楚和更容易理解。附图中:
图1为本发明芯片布局方法的流程框图;
图2为本发明芯片布局方法中的实施例的芯片布局结构图;
图3为本发明芯片布局方法中的步骤S2流程框图;
图4为本发明芯片布局方法中的步骤S22流程框图;
图5为本发明芯片布局方法中的步骤S23流程框图;
图6为本发明芯片布局方法中的实施例实施步骤S23前的示意图;
图7为本发明芯片布局方法中的实施例实施步骤S23后的示意图;
图8为本发明芯片布局方法中的步骤S4流程框图;
图9为本发明芯片布局方法中的第一种实施例中的消除重叠前的示意图;
图10为本发明芯片布局方法中的第一种实施例中的消除重叠后的示意图;
图11为本发明芯片布局方法中的第一种实施例中的消除剩余空间前的示意图;
图12为本发明芯片布局方法中的第一种实施例中的消除剩余空间后的示意图;
图13为本发明芯片布局方法中的第二种实施例中的消除重叠前的示意图;
图14为本发明芯片布局方法中的第二种实施例中的消除重叠后的示意图;
图15为本发明芯片布局方法中的第二种实施例中的消除剩余空间后的示意图;
图16为本发明芯片布局方法中的第三种实施例中的消除剩余空间前的示意图;
图17为本发明芯片布局方法中的第三种实施例中的消除剩余空间后的示意图;
图18为本发明芯片布局方法中的第四种实施例中的消除剩余空间前的示意图;
图19为本发明芯片布局方法中的第四种实施例中的消除剩余空间后的示意图;
图20为本发明芯片布局方法中的第五种实施例中的消除剩余空间前的示意图;
图21为本发明芯片布局方法中的第五种实施例中的消除剩余空间中间状态的示意图;
图22为本发明芯片布局方法中的第五种实施例中的消除剩余空间后的示意图;
图23为本发明芯片布局设备1000的结构示意图。
具体实施方式
下面结合附图详细说明本发明的具体实施方式。
在此记载的具体实施方式/实施例为本发明的特定的具体实施方式,用于说明本发明的构思,均是解释性和示例性的,不应解释为对本发明实施方式及本发明范围的限制。除在此记载的实施例外,本领域技术人员还能够基于本申请权利要求书和说明书所公开的内容采用显而易见的其它技术方案,这些技术方案包括采用对在此记载的实施例的做出任何显而易见的替换和修改的技术方案,都在本发明的保护范围之内。
本发明提供了一种芯片布局方法。请参考图1所示,图1为本发明芯片布局方法的流程框图。所述芯片布局方法包括如下步骤:
步骤S1、获得用于芯片布局的多个矩形电路模块。
所述步骤S1中,所述矩形电路模块包括呈矩形的宽和高均确定的硬模块、面积确定且宽和高均未确定的软模块以及多个连接关系模块,所述连接关系模块为所述芯片布局相对于的矩形电路网络内各个所述硬模块和/或各个所述软模块之间的连接关系。
本实施例中,合法将多个所述矩形电路模块放置到矩形芯片的所述芯片布局中,并实施所述矩形芯片中各电路网络的半周长连线总和尽可能小。合法是指当在所述矩形芯片上放入任意所述矩形电路模块后,所述矩形电路模块不得超出所述矩形芯片的宽高、各所述矩形电路模块的边均平行于所述矩形芯片的边,且各所述矩形电路模块间两两互不重叠。其中,所述半周长连线是指每个所述电路网络找到一个能将该电路网络中所有矩形电路模块都包含在内的最小矩形,这个矩形周长的一半就是半周长连线。
步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集。每一所述子集包括至少一个所述矩形电路模块。请参考图2所示,图2为本发明芯片布局方法中的实施例的芯片布局结构图。图中,R1、R2、R3、R4、R5、R6、R7、R8、R9、R10、R11、R12是芯片布局中规模较大的所述子集。
请参考图3所示,图3为本发明芯片布局方法中的步骤S2流程框图。
所述步骤S2包括:
步骤S21、将多个所述矩形电路模块集合形成一个待划分子集。
步骤S22、根据所述面积对半划分算法将所述待划分子集划分并生成两个所述子集。
请参考图4所示,图4为本发明芯片布局方法中的步骤S22流程框图。所述步骤S22包括:
步骤S221、将多个所述矩形电路模块的面积进行求和得到所述芯片布局的总面积;
步骤S222、将所有所述矩形电路模块的其中一个划入一个新建的所述子集,再将新划入的一所述矩形电路模块的面积与新建的所述子集内已有的所述矩形电路模块的面积进行累加,并得到新的累加面积。
步骤S223、判断所述累加面积是否在预设划分面积的范围内:
若是,则将所有所述矩形电路模块中的其他所述矩形电路模块划入另一个新建的所述子集,以实现生成两个所述子集;若否,则返回步骤S222。
本实施例中,所述预设划分面积的范围为所述芯片布局的总面积的40%-65%。40%-65%的范围值的设置可以实现计算量少且布局效率高。
步骤S23、根据所述降低割线成本算法将生成的两个所述子集内的所述矩形电路模块进行移动,以降低生成的两个所述子集之间的割线成本。
请参考图5所示,图5为本发明芯片布局方法中的步骤S22流程框图。所述步骤S23包括:
步骤S231、计算两个所述子集内所有的所述矩形电路模块的割线增益。
步骤S232、通过比较所有计算出的所述割线增益的大小,并找出其中的最大一个相对应的所述矩形电路模块。
步骤S233、判断所述割线增益中的最大一个相对应的所述矩形电路模块的割线成本是否大于0:
若是,则将该矩形电路模块由其所在的所述子集移动至另一个所述子集并进行锁定,并返回所述步骤S232。其中,锁定的所述矩形电路模块不参与所述步骤232的计算所述矩形电路模块的割线增益。
若否,则进入步骤S234;
步骤S234、判断所述步骤S233中割线增益的累计次数是否大于或等于预设的n次:
若是,则进入步骤S235;
若否,则将该矩形电路模块由其所在的所述子集移动至另一个所述子集并进行锁定,并返回所述步骤S232;
步骤S235、判断由所述步骤S232至所述步骤S234的迭代次数是否大于或等于m次:
若是,则停止计算并输出两个所述子集;
若否,则将锁定的所有所述矩形电路模块进行解锁,并返回所述步骤S232。其中,n和m均为整数。
请同时参考图6-7所示,图6为本发明芯片布局方法中的实施例实施步骤S23前的示意图;图7为本发明芯片布局方法中的实施例实施步骤S23后的示意图。本实施例中,在本实施例实施步骤S23前:子集RA包括矩形电路模块D1、矩形电路模块D2以及矩形电路模块D3。子集RB包括矩形电路模块D4和矩形电路模块D5。子集RA和子集RB的割线成本为2。将矩形电路模块D3由子集RA移动到子集RB则降低2个单位的割线成本。
步骤S24、将新生成的所述子集作为新的所述待划分子集,将新的所述待划分子集所述重复所述步骤S21至所述步骤S22操作,直至生成的新的所述子集内仅包含一个所述矩形电路模块时停止划分操作。
步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小。
所述步骤S3中,所述线性规划数学模型包括初始模型、所述矩形电路模块位置关系约束、不超出所述芯片布局或所述子集边界约束以及电路网络连接关系约束。
所述初始模型为HPWL,满足如下公式:
其中,i为所述矩形电路模块;ni为所述电路网络;N为所有所述电路网络的集合;分别为所述电路网络ni的右上角的x坐标、所述电路网络ni的右上角的y坐标、所述电路网络ni的左下角的x坐标以及所述电路网络ni的左下角的y坐标。
所述矩形电路模块位置关系约束满足:
xi+wi≤xj (3);
yi+hi≤yj (4);
其中,wi、hi、xi、yi分别为所述矩形电路模块i的宽度和高度,以及所述矩形电路模块i的左下角的x坐标和y坐标;
公式(3)中的所述矩形电路模块i在所述矩形电路模块j的左方;
公式(4)中的所述矩形电路模块i在所述矩形电路模块j的上方。
所述不超出所述芯片布局或所述子集边界约束满足:
0≤xi,xi+wi≤W (5);
0≤yi,yi+hi≤H (6);
其中,W为所述芯片布局的宽,H为所述芯片布局的高。
所述电路网络连接关系约束满足:
步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。
请参考图8所示,图8为本发明芯片布局方法中的步骤S4流程框图。所述步骤S4包括:
步骤S41、将其中一个所述矩形电路模块作为比较模块与其相邻的一个所述矩形电路模块进行运算,判断该两个模块是否存在重叠:
若是,则进入步骤S42;若否,则进入步骤S43。
步骤S42、计算出该两个所述矩形电路模块消除重叠最快的方向,并沿着此最快的方向移动来消除重叠,再判断该垂直于消除重叠最快的方向是否有剩余空间:
若是,则沿着此最快的方向移动来消除剩余空间,并进入步骤S44;若否,则进入步骤S44。
步骤S43、判断所述比较模块的水平方向或垂直方向是否有剩余空间:
若是,则沿着此最快的方向移动来消除剩余空间并进入步骤S44;若否,则进入步骤S44。
步骤S44、选择另一个所述矩形电路模块作为所述比较模块,重复进入所述步骤S41,直至所有所述矩形电路模块均完成计算。
为详细说明所述步骤S4的重叠消除算法,以下通过5种实施例为例进行说明:
第一种实施例:
请同时参考图9-10。图9为本发明芯片布局方法中的第一种实施例中的消除重叠前的示意图。矩形电路模块A1和矩形电路模块A2存在重叠,通过比较X1和Y1的大小判断重叠移除最快方向。图9中,X1>Y1,则说明X1相对于的X方向移动重叠所需要的位移比Y1相对于的Y方向移动重叠所需要的位移大。因此选择Y方向移动重叠。图10为本发明芯片布局方法中的第一种实施例中的消除重叠后的示意图。
请同时参考图11-12。图11为本发明芯片布局方法中的第一种实施例中的消除剩余空间前的示意图。矩形电路模块A1上方存在X1空间,X1空间为未被利用的剩余空间,因此,将矩形电路模块A2向X1空间移动,并移动到矩形电路模块A1正上方来最大限度消除未被利用的剩余空间。图12为本发明芯片布局方法中的第一种实施例中的消除剩余空间后的示意图。
第二种实施例:
请同时参考图13-15,与第一种实施相比,第二种实施例还设置有矩形电路模块A3。图13为本发明芯片布局方法中的第二种实施例中的消除重叠前的示意图。矩形电路模块A2消除重叠后存在X2空间,X2空间为未被利用的剩余空间,图14为本发明芯片布局方法中的第二种实施例中的消除重叠后的示意图。图15为本发明芯片布局方法中的第二种实施例中的消除剩余空间后的示意图。将矩形电路模块A2向X2空间移动,并移动到矩形电路模块A1上方来最大限度消除未被利用的剩余空间。
第三种实施例:
请同时参考图16-17。图16为本发明芯片布局方法中的第三种实施例中的消除剩余空间前的示意图。图17为本发明芯片布局方法中的第三种实施例中的消除剩余空间后的示意图。矩形电路模块B1为矩形电路模块B2左下角最紧邻且不重叠。此时移动矩形电路模块B2的目标将两个模块放置的相邻紧凑。具体操作为:比较矩形电路模块B1的右上方的坐标(x1,y1)和矩形电路模块B2左下角的坐标(x2,y2),通过判断大小驱动垂直方向还是水平方向移动的剩余空间多。其中。x1>x2,y1<y2;此时水平方向的剩余空间为0,但是垂直方向存在剩余空间,因此,将矩形电路模块B2垂直方向下移消除剩余空间。
第四种实施例:
请同时参考图18-19,图18为本发明芯片布局方法中的第四种实施例中的消除剩余空间前的示意图;图19为本发明芯片布局方法中的第四种实施例中的消除剩余空间后的示意图。
第四种实施例与第三种实施例基本相同,区别在于:
其中,x1<x2,y1>y2;此时垂直方向的剩余空间为0,但是水平方向存在剩余空间,因此,将矩形电路模块B2水平方向移动消除剩余空间。
第五种实施例:
请同时参考图20-21,图20为本发明芯片布局方法中的第五种实施例中的消除剩余空间前的示意图;图21为本发明芯片布局方法中的第五种实施例中的消除剩余空间中间状态的示意图;图22为本发明芯片布局方法中的第五种实施例中的消除剩余空间后的示意图。
第五种实施例与第三种实施例基本相同,区别在于:
其中,x2>x1,y2>y1;此时垂直方向存在剩余空间,水平方向存在剩余空间。因此,通过比较x2-x1和y2-y1来判断垂直方向还是水平方向存在剩余空间多。
若x2-x1>y2-y1,则说明水平方向存在剩余空间比垂直方向存在剩余空间多。通过将矩形电路模块B2水平方向向左移动消除剩余空间。
若x2-x1<y2-y1,则说明垂直方向存在剩余空间比水平方向存在剩余空间多。通过将矩形电路模块B2垂直方向向下移动消除剩余空间。
若x2-x1=y2-y1,则说明垂直方向存在剩余空间与水平方向存在剩余空间相同。则任意选择一个方向,通过将矩形电路模块B2水平方向向左移动消除剩余空间,或者通过将矩形电路模块B2垂直方向向下移动消除剩余空间。
图21中的中间状态,垂直方向还存在剩余空间,则在垂直方向移动y2-y1的距离,将矩形电路模块B2垂直方向向下移动消除剩余空间。若是上述5种实施例的情况都不满足,则说明该矩形电路模块在水平和垂直方向已经没有剩余空间,且已经放置在与其他矩形电路模块布局最紧凑紧邻的位置,故选择下一个矩形电路模块;直到所有的矩形电路模块都被选择过则算法结束。
本发明还提供一种芯片布局设备1000。请参照图23所示,图23为本发明芯片布局设备1000的结构示意图。
所述芯片布局设备1000包括处理器1001、存储器1002、网络接口1003及存储在存储器1002上并可在处理器1001上运行的计算机程序,所述处理器1001用于读取所述存储器中1002的程序,处理器1001执行计算机程序时实现实施例提供的芯片布局方法中的步骤。即处理器1001执行所述芯片布局方法中的步骤。
具体的,处理器1001用于执行以下步骤:
步骤S1、获得用于芯片布局的多个矩形电路模块。
步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集。每一所述子集包括至少一个所述矩形电路模块。
步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小。
步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。
本发明实施例提供的所述芯片布局设备1000能够实现芯片布局方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
需要指出的是,图23中仅示出了具有组件的1001-1003,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的所述芯片布局设备1000是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述存储器1002至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器1002可以是所述芯片布局设备1000的内部存储单元,例如所述芯片布局设备1000的硬盘或内存。在另一些实施例中,所述存储器1002也可以是所述芯片布局设备1000的外部存储设备,例如该芯片布局设备1000上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器1002还可以既包括所述芯片布局设备1000的内部存储单元也包括其外部存储设备。本实施例中,所述存储器1002通常用于存储安装于所述芯片布局设备1000的操作系统和各类应用软件,例如芯片布局设备1000的芯片布局方法的程序代码等。此外,所述存储器1002还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器1001在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该所述处理器1001通常用于控制所述芯片布局设备1000的总体操作。本实施例中,所述处理器1001用于运行所述存储器1002中存储的程序代码或者处理数据,例如运行芯片布局设备1000的芯片布局方法的程序代码。
网络接口1003可包括无线网络接口或有线网络接口,该网络接口1003通常用于在芯片布局设备1000与其他电子设备之间建立通信连接。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器1001执行时实现如所述芯片布局方法中的步骤。
本领域普通技术人员可以理解实现实施例所述芯片布局设备1000的芯片布局方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,简称RAM)等。
在本发明实施例中提到的本实施方式为了便于表述。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
与相关技术相比,本发明的芯片布局方法、芯片布局设备和计算机可读存储介质,芯片布局方法通过步骤S1、获得用于芯片布局的多个矩形电路模块;步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集,每一所述子集包括至少一个所述矩形电路模块;步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小;步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。根据上述步骤S1至步骤S4的操作,本发明通过优化目标为各电路网络的半周长互连线总和最小的方法来生成一个芯片的布局,从而提高芯片的性能,该方法实际上将整体芯片布局规划问题转化为一系列规模更小的布局规划子问题,再对一系列规模更小的布局规划子问题建立线性规划数学模型来求解出半周长连线总和最小的最佳布局。由于对一系列规模更小的布局规划子问题建立了线性规划数学模型,使得整体芯片布局规划问题可以在多项式时间内成功求解出来,从而提高了芯片布局效率。并能够通过最小化芯片的半周长连线的总线长,进而最大程度的降低集成芯片的时延和功耗,并且还得到一个合理、正确的芯片布局,从而使得本发明的芯片布局方法的芯片布局效率高。另外,本发明可以最大程度的降低芯片企业生产芯片所需的原料用量,提高生产过程中原料的利用率,从而给芯片企业降低一部分的生产成本。
以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
Claims (10)
1.一种芯片布局方法,其特征在于,该方法包括如下步骤:
步骤S1、获得用于芯片布局的多个矩形电路模块;
步骤S2、将多个所述矩形电路模块通过面积对半划分算法和降低割线成本算法划分出多个子集,每一所述子集包括至少一个所述矩形电路模块;
步骤S3、将多个所述子集根据所述子集内的所述矩形电路模块的数量进行由大至小的排序,再根据排序顺序依次建立线性规划数学模型并将所述线性规划数学模型进行求解,以使得所述芯片布局的半周长连线总和最小;
步骤S4、将所述芯片布局通过重叠消除算法进行运算并得最终的芯片布局。
2.根据权利要求1所述的芯片布局方法,其特征在于,所述步骤S2包括:
所述步骤S1中,所述矩形电路模块包括呈矩形的宽和高均确定的硬模块、面积确定且宽和高均未确定的软模块以及多个连接关系模块,所述连接关系模块为所述芯片布局相对于的矩形电路网络内各个所述硬模块和/或各个所述软模块之间的连接关系。
3.根据权利要求2所述的芯片布局方法,其特征在于,所述步骤S2包括:
步骤S21、将多个所述矩形电路模块集合形成一个待划分子集;
步骤S22、根据所述面积对半划分算法将所述待划分子集划分并生成两个所述子集;
步骤S23、根据所述降低割线成本算法将生成的两个所述子集内的所述矩形电路模块进行移动,以降低生成的两个所述子集之间的割线成本;
步骤S24、将新生成的所述子集作为新的所述待划分子集,将新的所述待划分子集所述重复所述步骤S21至所述步骤S22操作,直至生成的新的所述子集内仅包含一个所述矩形电路模块时停止划分操作。
4.根据权利要求3所述的芯片布局方法,其特征在于,所述步骤S22包括:
步骤S221、将多个所述矩形电路模块的面积进行求和得到所述芯片布局的总面积;
步骤S222、将所有所述矩形电路模块的其中一个划入一个新建的所述子集,再将新划入的一所述矩形电路模块的面积与新建的所述子集内已有的所述矩形电路模块的面积进行累加,并得到新的累加面积;
步骤S223、判断所述累加面积是否在预设划分面积的范围内:
若是,则将所有所述矩形电路模块中的其他所述矩形电路模块划入另一个新建的所述子集,以实现生成两个所述子集;若否,则返回步骤S222。
5.根据权利要求4所述的芯片布局方法,其特征在于,所述预设划分面积的范围为所述芯片布局的总面积的40%-65%。
6.根据权利要求3所述的芯片布局方法,其特征在于,所述步骤S23包括:
步骤S231、计算两个所述子集内所有的所述矩形电路模块的割线增益;
步骤S232、通过比较所有计算出的所述割线增益的大小,并找出其中的最大一个相对应的所述矩形电路模块;
步骤S233、判断所述割线增益中的最大一个相对应的所述矩形电路模块的割线成本是否大于0:
若是,则将该矩形电路模块由其所在的所述子集移动至另一个所述子集并进行锁定,并返回所述步骤S232;其中,锁定的所述矩形电路模块不参与所述步骤232的计算所述矩形电路模块的割线增益;
若否,则进入步骤S234;
步骤S234、判断所述步骤S233中割线增益的累计次数是否大于或等于预设的n次:
若是,则进入步骤S235;
若否,则将该矩形电路模块由其所在的所述子集移动至另一个所述子集并进行锁定,并返回所述步骤S232;
步骤S235、判断由所述步骤S232至所述步骤S234的迭代次数是否大于或等于m次:
若是,则停止计算并输出两个所述子集;
若否,则将锁定的所有所述矩形电路模块进行解锁,并返回所述步骤S232;其中,n和m均为整数。
7.根据权利要求1所述的芯片布局方法,其特征在于,所述步骤S3中,所述线性规划数学模型包括初始模型、所述矩形电路模块位置关系约束、不超出所述芯片布局或所述子集边界约束以及电路网络连接关系约束;
所述初始模型为HPWL,满足如下公式:
其中,i为所述矩形电路模块;ni为所述电路网络;N为所有所述电路网络的集合;分别为所述电路网络ni的右上角的x坐标、所述电路网络ni的右上角的y坐标、所述电路网络ni的左下角的x坐标以及所述电路网络ni的左下角的y坐标;
所述矩形电路模块位置关系约束满足:
xi+wi≤xj (3);
yi+hi≤yj (4);
其中,wi、hi、xi、yi分别为所述矩形电路模块i的宽度和高度,以及所述矩形电路模块i的左下角的x坐标和y坐标;
公式(3)中的所述矩形电路模块i在所述矩形电路模块j的左方;
公式(4)中的所述矩形电路模块i在所述矩形电路模块j的上方;
所述不超出所述芯片布局或所述子集边界约束满足:
0≤xi,xi+wi≤W (5);
0≤yi,yi+hi≤H (6);
其中,W为所述芯片布局的宽,H为所述芯片布局的高,
所述电路网络连接关系约束满足:
8.根据权利要求1所述的芯片布局方法,其特征在于,所述步骤S4包括:
步骤S41、将其中一个所述矩形电路模块作为比较模块与其相邻的一个所述矩形电路模块进行运算,判断该两个模块是否存在重叠:
若是,则进入步骤S42;若否,则进入步骤S43;
步骤S42、计算出该两个所述矩形电路模块消除重叠最快的方向,并沿着此最快的方向移动来消除重叠,再判断该垂直于消除重叠最快的方向是否有剩余空间:
若是,则沿着此最快的方向移动来消除剩余空间,并进入步骤S44;若否,则进入步骤S44;
步骤S43、判断所述比较模块的水平方向或垂直方向是否有剩余空间:
若是,则沿着此最快的方向移动来消除剩余空间并进入步骤S44;若否,则进入步骤S44;
步骤S44、选择另一个所述矩形电路模块作为所述比较模块,重复进入所述步骤S41,直至所有所述矩形电路模块均完成计算。
9.一种芯片布局设备,其特征在于,包括处理器和存储器,所述处理器用于读取所述存储器中的程序,执行如权利要求1至8中任一项所述的芯片布局方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现如权利要求1-8中任意一项所述的芯片布局方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210956245.6A CN115392178B (zh) | 2022-08-10 | 2022-08-10 | 芯片布局方法、芯片布局设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210956245.6A CN115392178B (zh) | 2022-08-10 | 2022-08-10 | 芯片布局方法、芯片布局设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115392178A true CN115392178A (zh) | 2022-11-25 |
CN115392178B CN115392178B (zh) | 2023-04-25 |
Family
ID=84119624
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210956245.6A Active CN115392178B (zh) | 2022-08-10 | 2022-08-10 | 芯片布局方法、芯片布局设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115392178B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
CN116187235A (zh) * | 2023-04-25 | 2023-05-30 | 九识(苏州)智能科技有限公司 | 一种基于数学建模设计芯片架构的方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010003843A1 (en) * | 1996-06-28 | 2001-06-14 | Ranko Scepanovic | Advanced modular cell placement system |
US20040044979A1 (en) * | 2002-08-27 | 2004-03-04 | Aji Sandeep A. | Constraint-based global router for routing high performance designs |
CN101339571A (zh) * | 2007-11-01 | 2009-01-07 | 复旦大学 | 一种vlsi布局规划中集中约束的实现方法 |
US20090031259A1 (en) * | 2007-07-25 | 2009-01-29 | Gray Michael S | Obtaining a feasible integer solution in a hierarchical circuit layout optimization |
CN102063543A (zh) * | 2011-01-04 | 2011-05-18 | 武汉理工大学 | 层次式热驱动的布图规划及布局方法 |
US20200125690A1 (en) * | 2018-10-18 | 2020-04-23 | International Business Machines Corporation | Enhancing stability of half perimeter wire length (hpwl)-driven analytical placement |
CN113268946A (zh) * | 2021-06-09 | 2021-08-17 | 广东工业大学 | 一种基于连线总和最小的芯片布局方法 |
CN113962186A (zh) * | 2021-10-28 | 2022-01-21 | 中国长城科技集团股份有限公司 | 芯片布局方法、装置、终端设备及计算机可读存储介质 |
-
2022
- 2022-08-10 CN CN202210956245.6A patent/CN115392178B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010003843A1 (en) * | 1996-06-28 | 2001-06-14 | Ranko Scepanovic | Advanced modular cell placement system |
US20040044979A1 (en) * | 2002-08-27 | 2004-03-04 | Aji Sandeep A. | Constraint-based global router for routing high performance designs |
US20090031259A1 (en) * | 2007-07-25 | 2009-01-29 | Gray Michael S | Obtaining a feasible integer solution in a hierarchical circuit layout optimization |
CN101339571A (zh) * | 2007-11-01 | 2009-01-07 | 复旦大学 | 一种vlsi布局规划中集中约束的实现方法 |
CN102063543A (zh) * | 2011-01-04 | 2011-05-18 | 武汉理工大学 | 层次式热驱动的布图规划及布局方法 |
US20200125690A1 (en) * | 2018-10-18 | 2020-04-23 | International Business Machines Corporation | Enhancing stability of half perimeter wire length (hpwl)-driven analytical placement |
CN113268946A (zh) * | 2021-06-09 | 2021-08-17 | 广东工业大学 | 一种基于连线总和最小的芯片布局方法 |
CN113962186A (zh) * | 2021-10-28 | 2022-01-21 | 中国长城科技集团股份有限公司 | 芯片布局方法、装置、终端设备及计算机可读存储介质 |
Non-Patent Citations (4)
Title |
---|
RUOYU CHENG 等: "On Joint Learning for Solving Placement and Routing in Chip Design" * |
徐宁,洪先龙,董社勤: "BBL布局算法研究" * |
杨中,董社勤,洪先龙,吴有亮: "互连驱动的基于最小自由度优先原则的布局算法" * |
陈家瑞;朱文兴;陈建利;: "基于混合差分进化算法的VLSI布图规划" * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116070575A (zh) * | 2023-01-12 | 2023-05-05 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
CN116070575B (zh) * | 2023-01-12 | 2023-08-15 | 广东工业大学 | 一种芯片布线优化方法及软件系统 |
CN116187235A (zh) * | 2023-04-25 | 2023-05-30 | 九识(苏州)智能科技有限公司 | 一种基于数学建模设计芯片架构的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115392178B (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115392178B (zh) | 芯片布局方法、芯片布局设备和计算机可读存储介质 | |
US20190080270A1 (en) | Production scheduling method and system based on improved artificial bee colony algorithm and storage medium | |
Viswanathan et al. | FastPlace 3.0: A fast multilevel quadratic placement algorithm with placement congestion control | |
CN113687629B (zh) | 激光cam加工的圆弧直线拟合方法、系统、设备及存储介质 | |
CN111813124B (zh) | 一种基于拓扑地图的移动机器人混合调度方法 | |
US8201128B2 (en) | Method and apparatus for approximating diagonal lines in placement | |
CN110188458A (zh) | 一种基于bim的构件模型建立方法、装置及系统 | |
Hannenhalli et al. | Combinatorial algorithms for design of DNA arrays | |
CN114756928B (zh) | 墙体的识别方法、计算机设备及可读存储介质 | |
CN110648038A (zh) | 用于清洁装置的任务区域分配方法和系统以及清洁装置 | |
CN110599543A (zh) | 一种墙体位置确定方法、装置、计算机设备和存储介质 | |
CN117408069A (zh) | 一种钣金件分模线自动生成方法、存储介质和电子设备 | |
CN111815737A (zh) | 插值数据的处理方法、装置、设备及计算机可读存储介质 | |
CN116736793A (zh) | 一种智能加工方法、装置、计算机设备及存储介质 | |
CN105511398A (zh) | 大型起重机制造中智能钢板零部件排版装置与方法 | |
CN110826687B (zh) | 数据处理方法及其装置、介质和系统 | |
Kats et al. | A polynomial algorithm for 2-cyclic robotic scheduling: A non-Euclidean case | |
CN115344937A (zh) | 一种钢筋标注方法、装置、电子设备及存储介质 | |
CN115809497A (zh) | 城市轨道交通智能调线调坡设计方法、存储介质及设备 | |
CN112214858B (zh) | 基于AutoCAD的不规则场地内光伏板自动布置方法 | |
CN110737934B (zh) | 老虎窗屋面桁架节点的生成方法、装置和存储介质 | |
CN114445570A (zh) | 一种从高精度地图中快速提取条带状局部地图要素的方法 | |
CN109492295B (zh) | 多梁连接结构吊装信息确定方法、装置、存储介质及设备 | |
CN109885928B (zh) | 网片钢筋图形处理方法、电子设备及存储介质 | |
TW200926823A (en) | Image processing method and related apparatus for performing image processing operation only according to image blocks in horizontal direction |
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 |