生成芯片平面布局信息的方法和装置与流程

文档序号:11654518阅读:247来源:国知局
生成芯片平面布局信息的方法和装置与流程

本公开涉及集成电路芯片设计领域,具体涉及一种自动生成芯片平面布局信息的方法和装置。



背景技术:

目前在集成电路芯片设计领域,平面布局(floorplan)的设计基本都由工程师手工完成,连最基本的矩形平面布局,都离不开工程师的亲历亲为。

平面布局设计是后端数字设计中的重要环节,直接影响到后续布局布线的结果,而且平面布局设计是数字后端设计中耗费时间和人力的部分。此外,芯片设计在流片之前,时常需要进行多次调整迭代;会对芯片面积和结构进行重新调整和评估,以满足现实的设计需求和需要,于是存在不断重新设计平面布局的可能。工程师凭借经验设计平面布局,受人为因素的影响较大。



技术实现要素:

有鉴于此,本公开提供了一种自动生成芯片平面布局信息的方法和装置,通过根据预设的多个边界坐标以及预设的电源网络的特征参数来生成边界信息和电源网络图案信息,无需用户手动进行平面布局的设计和调整迭代,减少了设计时间并且提高了设计的准确性。

根据本公开的一方面,提供了一种生成芯片平面布局信息的方法,包括:

根据预设的多个边界坐标和所述多个边界坐标按照时针方向的排列顺序来生成边界信息;

根据所述多个边界坐标、所述边界坐标按照时针方向的排列顺序以及预设的电源网络的特征参数来生成电源网络图案信息。

优选地,所述电源网络包括外圈电源环和内圈电源环,所述预设的电源网络的特征参数包括核心与边界之间的距离、外圈电源环与内圈电源环之间的距离、外圈电源环的线宽以及内圈电源环的线宽,并且所述根据所述多个边界坐标、所述边界坐标按照时针方向的排列顺序以及预设的电源网络的特征参数来生成电源网络图案信息包括:

对于所述多个边界坐标当中在顺时针方向上连续的三个边界坐标si-1、si和si+1,根据边界坐标si-1、si和si+1各自与起点边界坐标s1之间的距离来确定外圈电源环的坐标ri和内圈电源环的坐标ri相对于边界坐标si的方位,其中1≤i≤n,n为大于4的整数,表示边界坐标的总数,i表示坐标在顺时针方向上的顺序编号,当i=1时,si-1对应于sn,当i=n时,si+1对应于s1;

根据电源网络的特征参数以及外圈电源环的坐标ri和内圈电源环的坐标ri相对于边界坐标si的方位来确定外圈电源环的坐标ri和内圈电源环的坐标ri;

将内圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定内圈电源环的摆放位置并根据内圈电源环的摆放位置和内圈电源环的线宽来生成内圈电源环图案信息,以及将外圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定外圈电源环的摆放位置并根据外圈电源环的摆放位置和外圈电源环的线宽来生成外圈电源环图案信息。

优选地,所述时针方向包括顺时针方向,边界坐标si-1、si和si+1顺次相连形成直角并且所述直角的两条边分别沿横向和纵向延伸,所述根据边界坐标si-1、si和si+1各自与起点边界坐标s1之间的距离来确定外圈电源环的坐标ri和内圈电源环的坐标ri相对于边界坐标si的方位包括:

如果a<b<c,则判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的右下方,其中a表示si-1与s1之间的距离,b表示si与s1之间的距离,c表示si+1与s1之间的距离;

如果a>b>c,则判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的左上方;

如果b>a并且b>c,或者如果b<a并且b<c,si-1在si+1的左上方,则在边界坐标s1、si-1、si和si+1以此顺序相连形成四边形并且其中si-1、si和si+1形成顺时针走向图案时,判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的左下方;

如果b>a并且b>c,或者如果b<a并且b<c,si-1在si+1的右下方,则在边界坐标s1、si-1、si和si+1以此顺序相连形成四边形并且其中si-1、si和si+1形成逆时针走向图案时,判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的右上方。

优选地,所述电源网络的特征参数还包括布线层数信息,所述方法还包括:基于所述布线层数信息,将所述内圈电源环的横向延伸部分与所述外圈电源环设置在第一布线层,将所述内圈电源环的纵向延伸部分设置在第二布线层,所述第一布线层和第二布线层为非顶层。

优选地,所述内圈电源环图案信息在所述外圈电源环图案信息之前生成,并且所述方法还包括:在生成所述内圈电源环图案信息之后,将所述内圈电源环的设置在所述第二布线层的所述纵向延伸部分删除。

优选地,所述方法还包括:根据生成的所述内圈电源环图案信息和外圈电源环图案信息在顶层布线层生成内圈电源环图案信息和外圈电源环图案信息,并在所述顶层布线层中将内圈电源环从起点和终点延伸到外圈电源环的部分删除。

优选地,所述电源网络的特征参数还包括通孔数量和通孔间距,所述方法还包括:根据外圈电源环图案信息、内圈电源环图案信息、通孔数量和通孔间距来生成通孔图案信息。

优选地,所述电源网络的特征参数还包括纵向电源条的间距和线宽,所述方法还包括:

根据边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的距离以及纵向电源条之间的间距来计算纵向电源条的数目,所述边界的横向最大宽度是基于边界的坐标来确定的;

对计算出的纵向电源条的数目进行取整,以得到纵向电源条的数目的优化值;

根据纵向电源条的数目的优化值来计算纵向电源条的间距的优化值;

根据纵向电源条的间距的优化值、边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽以及外圈电源环与内圈电源环之间的距离来确定纵向电源条的摆放位置;以及

根据纵向电源条的摆放位置和纵向电源条的线宽来确定纵向电源条图案信息。

优选地,所述电源网络的参数信息还包括横向电源条的间距和线宽以及所述芯片平面布局中各行的行高,所述方法还包括:

将与内圈电源环的内边界的下边沿距离最近的行的中线作为起算边沿;

基于所述行高将横向电源条的间距转化为偶数行数作为横向电源条的间距的优化值;

根据边界的纵向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的距离以及横向电源条的间距的优化值来计算横向电源条的数目,所述边界的纵向最大宽度是基于边界的坐标来确定的;

从起算边沿开始每间隔所述横向电源条的间距的优化值将行的中心线作为横向电源条的摆放位置,直到与所述横向电源条的数目相等数目的横向电源条的摆放位置均被确定;以及

根据横向电源条的摆放位置和横向电源条的线宽生成横向电源条图案信息。

优选地,所述方法还包括:在与所述横向电源条的数目相等数目的横向电源条的摆放位置均被确定之后,如果内圈电源环的内边界的上边沿和距离其最近的横向电源条之间的距离大于相邻两个横向电源条之间的距离,则在所述内圈电源环的内边界的上边沿和距离其最近的横向电源条之间增加一个横向电源条。

优选地,所述方法还包括:根据内圈电源环图案信息和边界信息来确定阻隔区域信息。

优选地,所述根据内圈电源环图案信息和边界信息来确定阻隔区域信息包括:

将内圈电源环图案信息中包含的内圈电源环的内边界的坐标按照所述时针方向的排列顺序编号按照所述时针方向的反方向循环移位一个数值;

将相同编号的边界坐标和内圈电源环的内边界坐标分别作为阻隔区域的第一对角坐标和第二对角坐标;

根据阻隔区域的所述第一对角坐标和第二对角坐标生成阻隔区域的左下角坐标和右上角坐标。

优选地,所述根据阻隔区域的所述第一对角坐标和第二对角坐标生成阻隔区域的左下角坐标和右上角坐标包括:

如果第一对角坐标位于阻隔区域的左下角并且第二对角坐标位于摆放区域的右上角,则以所述第一对角坐标作为阻隔区域的左下角坐标,以所述第二对角坐标作为阻隔区域的右上角坐标;

如果第一对角坐标位于阻隔区域的右上角并且第二对角坐标位于阻隔区域的左下角,则以所述第一对角坐标作为阻隔区域的左下角坐标,以所述第二对角坐标作为摆放区域的右上角坐标;

如果第一对角坐标位于阻隔区域的左上角并且第二对角坐标位于阻隔区域的右下角,或者如果第一对角坐标位于阻隔区域的右下角并且第二对角坐标位于阻隔区域的左上角,则根据第一对角坐标和第二对角坐标来计算阻隔区域的左下角坐标和右上角坐标。

根据本公开的另一方面,提供了一种生成芯片平面布局信息的装置,包括:

边界生成模块,用于根据预设的多个边界坐标和所述多个边界坐标按照时针方向的排列顺序来生成边界信息;

电源网络生成模块,用于根据所述多个边界坐标、所述边界坐标按照时针方向的排列顺序以及预设的电源网络的特征参数来生成电源网络图案信息。

优选地,所述电源网络包括外圈电源环和内圈电源环,所述预设的电源网络的特征参数包括核心与边界之间的距离、外圈电源环与内圈电源环之间的距离、外圈电源环的线宽以及内圈电源环的线宽,并且所述电源网络生成模块包括电源环生成模块,所述电源环生成模块包括:

方位计算单元,用于对于所述多个边界坐标当中在顺时针方向上连续的三个边界坐标si-1、si和si+1,根据边界坐标si-1、si和si+1各自与起点边界坐标s1之间的距离来确定外圈电源环的坐标ri和内圈电源环的坐标ri相对于边界坐标si的方位,其中1≤i≤n,n为大于4的整数,表示边界坐标的总数,i表示坐标在顺时针方向上的顺序编号,当i=1时,si-1对应于sn,当i=n时,si+1对应于s1;

电源环坐标计算单元,用于根据电源网络的特征参数以及外圈电源环的坐标ri和内圈电源环的坐标ri相对于边界坐标si的方位来确定外圈电源环的坐标ri和内圈电源环的坐标ri;

电源环图案生成单元,用于将内圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定内圈电源环的摆放位置并根据内圈电源环的摆放位置和内圈电源环的线宽来生成内圈电源环图案信息,以及将外圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定外圈电源环的摆放位置并根据外圈电源环的摆放位置和外圈电源环的线宽来生成外圈电源环图案信息。

优选地,所述时针方向包括顺时针方向,边界坐标si-1、si和si+1顺次相连形成直角并且所述直角的两条边分别沿横向和纵向延伸,并且所述方位计算单元用于:

如果a>b>c,则判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的左上方;

如果b>a并且b>c,或者如果b<a并且b<c,si-1在si+1的右下方,则在边界坐标s1、si-1、si和si+1以此顺序相连形成四边形并且其中si-1、si和si+1形成顺时针走向图案时,判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的左下方;

如果b>a并且b>c,或者如果b<a并且b<c,si-1在si+1的左上方,则在边界坐标s1、si-1、si和si+1以此顺序相连形成四边形并且其中si-1、si和si+1形成逆时针走向图案时,判定外圈电源环的坐标ri和内圈电源环的坐标ri在边界坐标si的右上方。

优选地,所述电源网络的特征参数还包括布线层数信息,所述电源环生成模块还包括:层设置单元,用于基于所述布线层数信息,将所述内圈电源环的横向延伸部分与所述外圈电源环设置在第一布线层,将所述内圈电源环的纵向延伸部分部分设置在第二布线层,所述第一布线层和第二布线层为非顶层。

优选地,所述内圈电源环图案信息在所述外圈电源环图案信息之前生成,并且所述电源环生成模块还包括:第一删除单元,用于在生成所述内圈电源环图案信息之后,将所述内圈电源环的设置在所述第二布线层的所述纵向延伸部分删除。

优选地,所述电源环生成模块还包括:

顶层布线单元,用于根据生成的所述内圈电源环图案信息和外圈电源环图案信息在顶层布线层生成内圈电源环图案信息和外圈电源环图案信息;以及

第二删除单元,用于在所述顶层布线层中将内圈电源环从起点和终点延伸到外圈电源环的部分删除。

优选地,所述电源网络的特征参数还包括通孔数量和通孔间距,所述装置还包括:通孔生成模块,用于根据外圈电源环图案信息、内圈电源环图案信息、通孔数量和通孔间距来生成通孔图案信息。

优选地,所述电源网络的特征参数还包括纵向电源条的间距和线宽,所述装置还包括纵向电源条生成模块,所述纵向电源条生成模块包括:

纵向电源条数目计算单元,用于根据边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的距离以及纵向电源条之间的间距来计算纵向电源条的数目,所述边界的纵向最大宽度是基于边界的坐标来确定的;

纵向电源条数目优化单元,用于对计算出的纵向电源条的数目进行取整,以得到纵向电源条的数目优化值;

纵向电源条间距优化单元,用于根据纵向电源条的数目优化值来计算纵向电源条的间距优化值;

纵向电源条摆放位置计算单元,用于根据纵向电源条的间距的优化值、边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽以及外圈电源环与内圈电源环之间的距离来确定纵向电源条的摆放位置;以及

纵向电源条图案生成单元,用于根据纵向电源条的摆放位置和纵向电源条的线宽来确定纵向电源条图案信息。

优选地,所述电源网络的特征参数还包括横向电源条的数目和线宽,所述装置还包括横向电源条生成模块,所述横向电源条生成模块包括:

起算线确定单元,用于将与内圈电源环的内边界的下边距离最近的行的中线作为起算边沿;

横向电源条间距优化单元,用于基于所述行高将横向电源条的间距转化为偶数行数作为横向电源条的间距的优化值

横向电源条数目计算单元,用于根据边界的纵向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的距离以及所述横向电源条的间距的优化值来计算横向电源条的数目,所述边界的纵向最大宽度是基于边界的坐标来确定的;

横向电源条摆放位置计算单元,用于从起算边沿开始每间隔所述横向电源条的间距的优化值将行的中心线作为横向电源条的摆放位置,直到与所述横向电源条的数目相等数目的横向电源条的摆放位置均被确定;以及

横向电源条图案生成单元,用于根据横向电源条的摆放位置和横向电源条的线宽生成横向电源条图案信息。

优选地,所述横向电源条生成模块还包括:电源条补充单元,用于在与所述数目优化值相等数目的横向电源条的摆放位置均被确定之后,如果内圈电源环的内边界的上边沿和距离其最近的横向电源条之间的距离大于相邻两个横向电源条之间的距离之和,则在所述内圈电源环的内边界的上边沿和距离其最近的横向电源条之间增加一个横向电源条。

优选地,所述装置还包括:阻隔区域生成模块,用于根据内圈电源环图案信息和边界信息来确定摆放区域信息。

优选地,所述阻隔区域生成模块包括:

编号移位单元,用于将内圈电源环图案信息中包含的内圈电源环的内边界的坐标按照所述时针方向的排列顺序编号按照所述时针方向的反方向循环移位一个数值;

对角确定单元,用于将相同编号的边界坐标和内圈电源环的内边界坐标分别作为阻隔区域的第一对角坐标和第二对角坐标;

阻隔区域坐标计算单元,用于根据阻隔区域的所述第一对角坐标和第二对角坐标生成阻隔区域的左下角坐标和右上角坐标。

优选地,所述阻隔区域坐标计算单元用于:

如果第一对角坐标位于阻隔区域的左下角并且第二对角坐标位于摆放区域的右上角,则以所述第一对角坐标作为阻挡区域的左下角坐标,以所述第二对角坐标作为阻隔区域的右上角坐标;

如果第一对角坐标位于阻隔区域的右上角并且第二对角坐标位于阻隔区域的左下角,则以所述第二对角坐标作为阻挡区域的左下角坐标,以所述第一对角坐标作为阻隔区域的右上角坐标;

如果第一对角坐标位于阻隔区域的左上角并且第二对角坐标位于阻隔区域的右下角,或者如果第一对角坐标位于阻隔区域的右下角并且第二对角坐标位于阻隔区域的左上角,则根据第一对角坐标和第二对角坐标来计算摆放区域的左下角坐标和右上角坐标。

附图说明

为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单介绍,显而易见地,下面的描述中的附图仅涉及本公开的一些实施例,而非对本公开的限制。

图1示出了根据本公开实施例的生成芯片平面布局信息的方法。

图2a示出了根据本公开实施例的边界和核心的形状的示例。

图2b示出了根据本公开实施例的边界的坐标及走向的示例。

图2c示出了根据本公开实施例的电源网络的局部示意图。

图3示出了根据本公开实施例的电源环图案信息的生成方法的流程图。

图4a示出了根据本公开实施例的电源环的布局的示意图。

图4b示出了图4a的一局部放大图。

图4c示出了图4a的另一局部放大图。

图5a至图5d示出了根据本公开实施例的电源环网络的方位的判断方法的示例流程图。

图6示出了根据本公开实施例的内圈电源环图案的布局的示意图。

图7示出了根据本公开实施例的外圈电源环图案的布局的示意图。

图8示出了根据本公开实施例的顶层电源环的布局的示意图。

图9示出了内圈顶层电源环多余部分的示意放大图。

图10示出了根据本公开实施例的通孔图案信息的生成方法的流程图。

图11示出了根据本公开实施例的通孔的布局的示意图。

图12示出了根据本公开实施例的纵向电源条图案信息的生成方法的流程图。

图13示出了根据本公开实施例的纵向电源条的布局的示意图。

图14示出了根据本公开实施例的横向电源条图案信息的生成方法的流程图。

图15示出了根据本公开实施例的横向电源条的布局的示意图。

图16示出了根据本公开实施例的阻隔区域信息的生成方法600的流程图。

图17a示出了根据本公开实施例的阻隔区域信息生成过程中的坐标点编号移位的示意图。

图17b示出了根据本公开实施例的阻隔区域信息生成过程中的坐标转换之前和之后的布局的示意图。

图18示出了根据本公开实施例的阻隔区域信息生成过程中的坐标转换方法的示意图。

图19示出了根据本公开实施例的生成芯片平面布局信息的装置的结构图。

图20示出了根据本公开实施例的电源网络生成模块的结构图。

图21示出了电源网络生成模块中的电源环生成模块的结构图。

图22示出了根据本公开实施例的电源网络生成模块中的纵向电源条生成模块的结构图。

图23示出了根据本公开另一实施例的电源网络生成模块中的横向电源条生成模块的结构图。

图24示出了根据本公开实施例的阻隔区域生成模块的结构图。

具体实施方式

为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整的描述。显然所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。

芯片floorplan设计内容主要包括:边界(boundary)、核心(core)的面积形状,接口(pad)、端口(port)、宏(macro)的位置摆放,电源环(ring)、电源条(strap)的网络构建,阻隔区域(blockage)的区域摆放。由于pad、port、macro的位置摆放存在不确定因素,需由工程师凭借经验进行合理摆放;但是在边界、电源网络和阻隔区域的设计方面,存在一定的关联性和规律性。因此,可以考虑在边界、电源网络、和阻隔区域等方面,实现floorplan的自动设计。

本公开提供了一种自动生成芯片平面布局信息的方法和装置,通过根据预设的多个边界(boundary)坐标及其排列顺序以及预设的电源网络的特征参数来生成边界、核心的信息和电源网络图案信息,使得至少对于边界和电源网络,无需用户手动进行设计和调整,减少了设计时间并且提高了设计的准确性。

图1示出了根据本公开实施例的生成芯片平面布局信息的方法100。

在步骤s101,根据预设的多个边界坐标和所述多个边界坐标按照时针方向的排列顺序来生成边界信息。图2a示出了十字形图案的边界的形状示例,图中外环表示边界,内环表示核心(core)。电源网络设置在core区域内。与核心有关的信息,例如核心的坐标点和排列顺序可以与边界信息一并生成,也可以根据边界信息计算得到。图2b示出了十字形图案的边界坐标及其按照顺时针方向排列顺序的示例。如图2b所示,以同一点坐标(x1,y1)作为多边形边界的坐标的起点位置和终点位置,边界坐标按照顺时钟方向依次为(x1,y1),(x2,y2),…,(x12,y12),连接走向为w1,w2,…,w12。这些坐标确定了边界的位置和形状。可以将这些坐标创建为数组,并统计这些坐标的个数,以便用于后面推断电源网络和阻隔区域的图案信息。

在步骤s102,根据所述多个边界坐标、所述边界坐标按照时针方向的排列顺序以及预设的电源网络的特征参数来生成电源网络图案信息。图2c示出了根据本公开实施例的电源网络的局部示意图。如图2c所示,设置在边界1内部的电源网络可以包括以下之中的一个或多个:电源环(pgring)2和3、跨接在电源环上的电源条(pgstrap)4和5以及设置在电源环上的通孔(via)6。电源环可以包括外圈电源环2和内圈电源环3,电源条可以包括纵向电源条4和横向电源条5。设置电源网络的核心区域分为多个行7,每个行7具有行高h。上述预设的电源网络的特征参数可以包括但不限于以下之中的一个或多个:布线层数信息、核心与边界之间的距离d、外圈电源环与内圈电源环之间的位距p、外圈电源环和内圈电源环的线宽w、纵向电源条之间的位距pv、纵向电源条的线宽wv、横向电源条之间的位距ph、横向电源条的线宽wh、行高h。由于电源网络的各个部分与边界坐标及其走向存在一定的关联性,因此可以基于电源网络的这些特征参数以及边界坐标和走向,来计算出电源网络图案信息。在生成电源网络图案信息时,可以先生成电源环图案信息,并据此生成通孔图案信息和电源条图案信息。通孔图案信息的生成和电源条图案信息的生成可以顺序地进行。

在步骤s103,根据边界信息和电源网络图案信息生成阻隔区域(blockage)信息。阻隔区域用于防止标准单元进入电源环的下面。图17和图18以十字形边界为例示出了阻隔区域的布局,可以根据边界坐标和电源环坐标来推算出阻隔区域的坐标,下面将详细进行描述。

图3示出了电源环图案信息的生成方法200的流程图。在本实施例中以顺时针方向为例来进行描述。电源环可以包括外圈电源环和内圈电源环。

在步骤s201,基于布线层数信息,将内圈电源环的横向延伸部分与外圈电源环设置在m1布线层,而将内圈电源环的纵向延伸部分设置在m2布线层。本实施例中,布线层数信息可以包括最大布线层数,优选地可以以m5或m6分别作为横向最高布线层和纵向最高布线层。之所以将内圈电源环的横向延伸部分和纵向延伸部分设置在不同层,是为了方便后续将所述纵向延伸部分删除。

在步骤s202,对于所述多个边界坐标当中在顺时针方向上连续的三个边界坐标si-1、si和si+1,根据边界坐标si-1、si和si+1各自与起点边界坐标s1之间的距离来确定电源环坐标ri和ri相对于边界坐标si的方位,其中1≤i≤n,n为大于3的整数,表示边界坐标的总数,i表示坐标在顺时针方向上的顺序编号,当i=1时,si-1对应于sn,当i=n时,si+1对应于s1。

图4a示出了在十字形图案的边界的情况下外圈电源环和内圈电源环的摆放位置和形状的示意图。从图4a可以看出,边界具有按顺时针方向排列的多个坐标点s1,s2,…,sn,其中n为大于3的整数,在本实施例中n=12。外圈电源环2与边界1形状相同,位于边界1内的核心区域内,外圈电源环2的外环与核心区域的边界重合。内圈电源环3与外圈电源环2形状相同,位于外圈电源环2限定的空间内,与外圈电源2环隔开一定的距离。图4b示出了图4a的一局部放大图。如图4b所示,每个边界坐标点si可以具有一个对应的外圈电源环坐标点ri和一个对应的内圈电源环坐标点ri。如果ri沿着顺时针方向相连,会形成外圈电源环的中心线,可以以该中心线以作为外圈电源环的摆放位置。如果ri沿着顺时针方向相连,会形成内圈电源环的中心线,可以以该中心线以作为内圈电源环的摆放位置,如图4a中的虚线所示。图4c示出了图4a的另一局部放大图。如图4c所示,对于起始点s1,可以将s1对应的内圈电源环和外圈电源环的布线起点和终点设在各自起始和结束的边缘中点,例如可以如图4c所示使电源环坐标下移w/2作为起点,左移w/2作为终点,以使得最终得到的图案完整,如图4a所示。

为例确定每个边界坐标点si所对应的外圈电源环坐标点ri和内圈电源环坐标点ri,要判断电源环坐标相对于边界坐标点处于哪个方位上。目前普遍采用的大部分边界采用直角多边形形状,即,边界的各个边只沿横向和纵向两个方向延伸,这使得任意连续的三个边界坐标si-1、si和si+1顺次相连形成直角并且所述直角的两条边分别沿横向和纵向延伸。通过分析起点与边界坐标的关系,可以计算出电源环坐标相对于边界坐标的位置是左上、左下、右上和右下中的哪一个。

图5a至图5d示出了电源环网络的方位的判断方法的示例流程图。

如图5a所示,如果a<b<c,则判定电源环坐标ri和ri在边界坐标si的右下方,其中a表示si-1与s1之间的距离,b表示si与s1之间的距离,c表示si+1与s1之间的距离。

如图5b所示,如果a>b>c,则判定电源环坐标ri和ri在边界坐标si的左上方。

如图5c所示,如果b>a并且b>c,或者如果b<a并且b<c,si-1在si+1的右下方,则在边界坐标s1、si-1、si和si+1以此顺序相连形成四边形并且其中si-1、si和si+1形成顺时针走向图案时,判定电源环坐标ri和ri在边界坐标si的左下方。

如图5d所示,如果b>a并且b>c,或者如果b<a并且b<c,si-1在si+1的左上方,则在边界坐标s1、si-1、si和si+1以此顺序相连形成四边形并且其中si-1、si和si+1形成逆时针走向图案时,判定电源环坐标ri和ri在边界坐标si的右上方。

在步骤s203,根据电源网络的特征参数以及电源环坐标ri和ri相对于边界坐标si的方位来确定内圈电源环的坐标ri。例如对于图5d中右图所示的情况,参考图4a和图4b,如果si的坐标为(xi,yi),则ri的坐标为(xi+d+w+p,yi+d+w+p)、(xi+d+w+p,yi-d-w-p)、(xi-d-w-p,yi+d+w+p)和(xi-d-w-p,yi-d-w-p)中的某一个坐标。对于坐标为(x1,y1)的起始点s1,可以将s1对应的内圈电源环的起始坐标设置成(x1+d+w/2+p,y1+d+p),终点坐标设置成(x1+d+p,y1+d+w/2+p),以便使电源环图案完整。

在步骤s204,将内圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定内圈电源环的摆放位置,并根据内圈电源环的摆放位置和内圈电源环的线宽来生成内圈电源环图案信息。内圈电源环图案信息可以包括内圈电源环的外边界坐标、内边界坐标以及中心线坐标(即,坐标ri)。通过该步骤生成的内圈电源环图案如图6的左侧部分所示。

在步骤s205,将所述内圈电源环的设置在m2层的部分删除。在一些实施例中,由于m1层的接地轨(gndrail)连接在m1层的外圈接地电源环,因此m1层不需要内圈电源环的纵向延伸部分,可以将该纵向延伸部分设置在m2层中并后续将其删除。在该步骤中可以通过删除m2金属层来简单地删除纵向延伸部分,而不会影响m1层的设计。删除m2层时可以将m2层上的通孔一并删除。删除m2层之后的内圈电源环的图案如图6右侧部分所示。

在步骤s206,根据电源网络的特征参数以及电源环坐标ri相对于边界坐标si的方位来确定外圈电源环的坐标ri。例如对于图5c中有图所示的情况,参考图4b,如果si的坐标为(xi,yi),则ri的坐标可以为(xi+d+w/2,yi+d+w/2)、(xi-d-w/2,yi+d+w/2)、(xi+d+w/2,yi-d-w/2)和(xi-d-w/2,yi-d-w/2)中的某一个坐标。对于坐标为(x1,y1)的起始点s1,可以将s1对应的外圈电源环的起始坐标设置成(x1+d+w/2,y1+d),终点坐标设置成(x1+d,y1+d+2/w),以便使电源环图案完整。

在步骤s207,将外圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定外圈电源环的摆放位置,并根据外圈电源环的摆放位置和外圈电源环的线宽来生成外圈电源环图案信息。图7示出了根据本公开实施例的外圈电源环的布局的示意图。从外圈电源环的起点开始,按照从1至12的顺序连接各个坐标点ri,从而确定外圈电源环的摆放位置(图7的左侧部分所示),根据外圈电源环的摆放位置和外圈电源环的线宽来生成外圈电源环图案信息(如图7的右侧部分所示)。外圈电源环图案信息可以包括外圈电源环的外侧坐标、内侧坐标以及中心线坐标(即,坐标ri)。

在步骤s208,根据生成的所述内圈电源环图案信息和外圈电源环图案信息在顶层布线层生成内圈电源环图案信息和外圈电源环图案信息。顶层的内圈电源环和外圈电源环的设计可以并行进行。具体地,可以根据外圈电源环的坐标进行外圈电源环的摆放设计,根据外圈电源环的摆放和内圈电源环与外圈电源环之间的间距,并行地设计内圈电源环。但是在这种并行设计内圈电源环和外圈电源环的情况下,脚本命令的起点坐标、终点坐标位置如图8左侧部分所示,这使得在完成内圈电源环和外圈电源环的设计之后,在起点和终点附近的内圈电源环存在多余金属线长,如图8的右侧图中虚线部分所示。

在步骤s209,在顶层布线层将所述内圈电源环从起点和终点延伸到外圈电源环的部分删除。在一些实施例中,图9示出了图8中由虚线圈出的内圈电源环多余部分的示意放大图。在图9所示的实施例中,假设边界起点s1坐标为(0,0),那么a点坐标为(d+p,d+p),b点坐标为(d+w+p,d),c点坐标为(d,d+w+p)。如图9所示,以坐标点a和b为对角的矩形区域部分为从内圈电源环起点延伸到外圈电源环的多余部分(如图9中右斜线阴影部分所示),以坐标b和c为对角的矩形区域部分为从内圈电源环终点延伸到外圈电源环的多余部分(如图9中左斜线阴影部分所示),这两部分分别位于不同的层中,例如前者位于纵向最高层中,后者位于横向最高层中。在删除时,可以在不同的层中进行删除。

虽然以上描述的实施例中内圈电源环图案信息在外圈电源环图案信息之前生成,然而本公开的实施例不限于此。可以先生成外圈电源环后生成内圈电源环,二者也可以同时生成。

另外本公开实施例的

在生成电源环图案信息之后,可以据此生成通孔图案信息、电源条图案信息和阻隔区域信息等等,下面参考图10至图19来进行描述。

图10示出了根据本公开实施例的通孔图案信息的生成方法300的流程图。图11示出了根据本公开实施例的通孔的布局的示意图。

在步骤s301,根据电源环的坐标和电源环的宽度来计算电源环上用于布置通孔的区域的坐标。例如,如图11右侧所示,可以将通过以上方法获得的外圈电源环的坐标ri作为外圈电源环上的用于布置通孔的区域的中心坐标,并以外圈电源环的宽度作为该通孔区域的横向和纵向长度,来计算该通孔区域的四个角的坐标。类似地,可以将内圈电源环的坐标ri作为内圈电源环上的用于布置通孔的区域的中心坐标,并以内圈电源环的宽度作为该通孔区域的横向和纵向长度,来计算该通孔区域的四个角的坐标。可以在每个通孔区域内布置一个或多个通孔,优选地可以布置通孔阵列。

在步骤s302,根据预设的通孔数量和通孔间距来计算通孔的摆放位置。例如,可以根据通孔区域的长度和宽度以及预设的通孔横向和纵向间距来计算横向通孔数量和纵向通孔数量,并按照该间距在通孔区域上设置通孔的摆放位置。

在步骤s303,根据通孔的摆放位置来确定通孔图案信息。可以直接在摆放位置上形成方形图案,也可以预设通孔的形状和大小,并结合通孔的形状和大小来形成通孔图案信息。

在步骤s304,在不同的布线层中生成通孔图案信息。如图11的左侧部分所示,可以在预设的最大布线层数范围内,在通孔区域所对应的从次顶层到底层每一个布线层均设置通孔阵列。

下面参考图12和图13来描述根据本公开实施例的纵向电源条图案信息的生成方法。

图12示出了根据本公开实施例的纵向电源条图案信息的生成方法400的流程图。图13示出了根据本公开实施例的纵向电源条的布局的示意图,其中为了图示清楚,将内圈电源环和外圈电源环用点线示出。

在步骤s401,根据边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的位距以及纵向电源条之间的位距来计算纵向电源条数目。在图13中为了方便描述采用矩形边界并且以坐标原点(0,0)作为边界左下角的坐标,以(x,0)作为边界右下角坐标,从而可以确定边界的最大横向宽度为x。在本实施例中,以分别跨接在外圈电源环和内圈电源环上并且彼此相邻的两个纵向电源条作为一组,共计n组,组间距为inc,每组中两个电源条之间的距离为inc/2,如图13所示。可以用n来表示纵向电源条的组数,用inc表示纵向电源条的组间距。如以上参考图2c已经描述过的,边界与外圈电源环之间距离为d,内、外电源环之间的位距为p,电源环宽度为w。在这种情况下,作为起点的最左侧纵向电源条的摆放位置为(d+w+p+inc/2),作为终点的最右侧纵向电源条的摆放位置为x-(d+w+p+inc/2),二者之间的距离为x-(d+w+p+inc/2)*2。由此可以推断出以下等式:

n=[x-(d+w+p+inc/2)*2]/inc+0.5

在步骤s402,对计算出的纵向电源条的数目进行取整,以得到纵向电源条的数目优化值。例如,可以根据n`=int(n+0.5)计算纵向电源条的数目的优化值n`,其中int()表示取整。因为在之前的步骤s401计算得出的数值n通常不是整数,因此在本步骤中进行例如四舍五入的取整运算,以得到与n值接近的整数值n`作为后续计算的参数。

在步骤s403,根据纵向电源条的数目的优化值来计算纵向电源条的间距的优化值。例如,可以根据inc`=[x-(d+w+p+inc/2)*2]/(n`-0.5)来计算纵向电源条的间距的优化值inc`,从而获得适合于数目n`的电源条间距。

在步骤s404,根据纵向电源条的间距的优化值、边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽以及外圈电源环与内圈电源环之间的距离来确定纵向电源条的摆放位置。例如,可以从左侧起点位置开始每间隔inc`摆放一组纵向电源条。通过该步骤实现了最左侧作为起点的纵向电源条与内圈电源环的内边界左侧的距离=相邻两根纵向电源条之间的距离=右侧作为终点的纵向电源条与内圈电源环的内边界右侧的距离。

在步骤s405,根据纵向电源条的摆放位置和纵向电源条的线宽来确定纵向电源条图案信息。纵向电源条的长度可以根据纵向电源条所在的电源环的纵向宽度来确定。

虽然以上以两个电源条为一组进行了推导和计算,然而本公开的实施例不限于此,也可以按照单个电源条来进行推导和计算,例如可以将inc/2作为两个相邻纵向电源条之间的间距来进行参数的预设,那么相应地将以2n作为电源条的数目来计算,从而在摆放时也是间隔inc/2来进行摆放,在此不再赘述。

下面参考图14和图15来描述根据本公开实施例的横向电源条图案信息的生成方法。

图14示出了根据本公开实施例的横向电源条图案信息的生成方法500的流程图。图15示出了根据本公开实施例的横向电源条的布局的示意图,其中为了图示清楚,将内圈电源环和外圈电源环用点线示出。

在步骤s501,将与内圈电源环的内边界的下边沿距离最近的行的中线作为起算边沿。优选地,可以将内圈电源环的内边界的下边沿的高度与距离其最近的行的上沿高度相比较。以核心的下边沿为起线,内圈电源环的内边界的下边沿的高度为w+p。将w+p转化成行高之和,得到行数为int((w+p)/h+0.5),行高之和为(int((w+p)/h+0.5))*h。然后将二者的高度进行比较,如果内边界的下边沿的高度(w+p)大于行的上沿高度(即行高之和(int((w+p)/h+0.5))*h),则以内边界的下边沿上方行的中线作为起算边沿,起始位置为s=(int((w+p)/h+0.5))*h+0.5*h否则以下方行的中线作为起算边沿,起始位置为s=(int((w+p)/h+0.5))*h-0.5*h。在如图15所示的实施例中,内圈电源环内边界的下边沿的高度小于距离其最近的行的上沿高度,因此将所述内边界的下边沿下方一行的中线作为起算边沿。通过以该起算边沿为起点来计算横向电源条摆放位置,可使横向电源条之间的间距d与最下方横向电源条到起算边沿的距离d’相等,进而与最下方横向电源条到内圈下方电源环的上边沿的距离最为相近。例如,对于最下方的一组横向电源条,可以使vdd电源条到vss电源条的距离与vdd电源条到下方内圈电源环的上边沿距离最为相近。

在步骤s502,基于行高将横向电源条的间距转化为行数。例如可以根据u=int(inc/h)计算相邻两组横向电源条之间相隔的行数u,也称作组间距,其中h表示行高。通过本步骤,可以将预设的横向电源条间距转换成行数,以便于后续按照行数间隔来确定横向电源条的摆放位置。

在步骤s503,将行数优化为偶数值,作为横向电源条的间距的优化值。这是因为,组间距为u的情况下,每组中两个相邻电源条之间的间距为u/2,如果组间距为奇数个行高之和,将使组中的一个横向电源条不会摆放在行的中心线位置。鉴于此,如果根据u=int(inc/h)计算得出的u值为奇数,需要将其转化成偶数,如果给定的横向电源条的组间距小于u*h,则转化成的偶数为u-1,得到横线电源条组间距的优化值inc`=(u-1)*h;如果给定的横向电源条的组间距大于u*h,则转化成的偶数为u+1,得到横向电源条组间距的优化值inc`=(u+1)*h。

在步骤s504,根据边界的纵向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的距离以及横向电源条的间距的优化值来计算横向电源条的数目,所述边界的纵向最大宽度是基于边界的坐标来确定的。例如,可以按照与纵向电源条类似的方式,将跨接在不同电源环上的相邻两个横向电源条分为一组。组间距的优化值inc`。整个核心里面行的总行数nt=int((y-2*d)/h),其中y表示边界的纵向最大宽度,d表示核心与边界的距离,h表示行高。核心的总行高为nt*h。由此可以推算出横向电源条的组数n=int((nt*h-(s+inc`/2)*2)/inc`+0.5),其中s表示起算线相对于核心的下边沿而言的高度。由此可以得到横向电源条的数目2n。

在步骤s505,从起算边沿开始每间隔所述横向电源条的间距的优化值将行的中心线作为横向电源条的摆放位置,直到2n个的横向电源条的摆放位置均被确定。横向电源条组数的摆放是从下面往上面依次进行位置摆放,例如,可以每间隔inc`/2的间距摆放一根横向电源条。通过间隔一定的行数将行的中心线作为摆放位置,一方面实现了电源条的均匀摆放,另一方面可以避免电源条与电源网络上引起短接或者阻碍通孔不能从电源轨通向电源条。

在步骤s506,判断内圈电源环的内边界的上边沿和距离其最近的横向电源条之间的距离是否大于inc`/2,即,比较内边界的上边沿与最上面一根横向电源条的高度差是否大于u/2,如果是,则意味着还存在能够摆放一个单独横向电源条的空间,执行步骤s508,否则执行步骤s509。最后一根横向电源条的高度=s+(n-0.5)*inc`,内边界的上边沿高度=y-w-p-d。电源条是按组数摆放,存在最后一组电源条摆放之后,最后一根电源条距离内边界上沿的高度差在0~inc`之间,而相邻两根电源条的间距是inc`/2,如果最后一根电源条距离内边界上沿的高度差大于inc`/2,可以单独另外再插入一根电源条。

在步骤s507,在所述内圈电源环的内边界的上边沿和距离其最近的横向电源条之间增加一个横向电源条。例如,可以将距离上边沿最近的横向电源条上方s+(n-0.5)*inc`+0.5*inc`处的行的中心线作为增加的横向电源条的摆放位置。通过该步骤,可以按照一个与预设的间距尽可能接近的距离来实现尽可能多的横向电源条的均匀摆放。

在步骤s508,根据横向电源条的摆放位置和横向电源条的线宽生成横向电源条图案信息。

类似于纵向电源条的摆放,横向电源条的摆放位置的确定也不局限于以上描述分组实现的实施例,可以按照单个电源条的间距和数目来进行计算,在此不再赘述。

图16示出了根据本公开实施例的阻隔区域信息的生成方法600的流程图。图17a示出了根据本公开实施例的阻隔区域信息生成过程中的坐标点编号移位的示意图,图17b示出了根据本公开实施例的阻隔区域信息生成过程中的坐标转换之后的布局的示意图,其中为了图示清楚,将内圈电源环和外圈电源环以点线来示出。图18示出了根据本公开实施例的阻隔区域信息生成过程中的坐标转换方法的示意图。

在步骤s601,将内圈电源环图案信息中包含的内圈电源环的内边界坐标按照所述时针方向的排列顺序编号按照所述时针方向的反方向循环移位一个数值。图17a示出了在顺时针编号的情况下坐标移位的示例。如图17a中的实线箭头所示,在按照顺时针编号的情况下,可以将各个坐标点的编号按逆时针顺序移位,即,编号为1的坐标点的编号改为12,将编号为2的坐标点的编号改为1,将编号为3的坐标点的编号改为2,以此类推,直到将编号为12的坐标点的编号改为11。当然本公开的实施例不限于此,在按照逆时针编号的情况下,可以各个坐标点的编号按顺时针方向移位,即,将每个坐标点的编号加1。通过该步骤,使得编号相同的边界坐标和内圈电源环的内边界坐标构成了阻隔区域的对角线坐标,对角坐标连线如图17a中的虚线箭头所示。

在步骤s602,将相同编号的边界坐标和内圈电源环的内边界坐标分别作为阻隔区域的第一对角坐标和第二对角坐标。

在步骤s603,根据阻隔区域的所述第一对角坐标和第二对角坐标生成阻隔区域的左下角坐标和右上角坐标。通过步骤701的编号重新排序之后虽然确定了阻隔区域的对角线坐标,如图18左侧部分所示,然而通常阻隔区域信息由左下角坐标和右上角坐标构成,如图18右侧部分所示,因此需要将之前计算出的对角坐标转换成左下角坐标和右上角坐标。

下面参考图18来描述坐标转换方法。

如图18a所示,如果第一对角坐标位于阻隔区域的左下角并且第二对角坐标位于阻隔区域的右上角,则可以直接以所述第一对角坐标作为阻隔区域的左下角坐标,以所述第二对角坐标作为阻隔区域的右上角坐标。

如图18b所示,如果第一对角坐标位于阻隔区域的右上角并且第二对角坐标位于阻隔区域的左下角,则可以将二者调换,以第二对角坐标作为阻隔区域的左下角坐标,以第一对角坐标作为阻隔区域的右上角坐标。

如图18c所示,如果第一对角坐标位于阻隔区域的左上角并且第二对角坐标位于阻隔区域的右下角,则可以根据左上角坐标和右下角坐标来计算左下角坐标和右上角坐标,例如,如果左上角坐标为(x1,y2)并且右下角坐标为(x2,y1),则可以得到坐标点(x1,y1)和(x2,y2)来分别作为左下角坐标和右上角坐标。

如图18d所示,如果第一对角坐标位于阻隔区域的右下角并且第二对角坐标位于阻隔区域的左上角,则可以根据类似于图18c描述的方式来得到左下角坐标和右上角坐标。

本公开实施例描述的方法可以以脚本的形式实现,执行该方法自动生成的floorplan信息可以分别以三个文件的形式提供,例如tdf文件。第一文件包含boundary、core、行(row)、走线通道(track)的信息,也可以包含人工摆放的pad、macro、端口(terminal)的位置信息,第二文件包含电源网络信息,第三文件包含阻隔区域信息。

图19示出了根据本公开实施例的生成芯片平面布局信息的装置700的结构图。

如图19所示,装置700包括边界生成模块701和电源网络生成模块702。可选地,装置700还可以包括阻隔区域生成模块703。边界生成模块701用于根据预设的多个边界坐标和所述多个边界坐标按照时针方向的排列顺序来生成边界信息。电源网络生成模块702用于根据所述多个边界坐标、所述边界坐标按照时针方向的排列顺序以及预设的电源网络的特征参数来生成电源网络图案信息。阻隔区域生成模块703用于根据内圈电源环图案信息和边界信息来确定摆放区域信息。

图20示出了根据本公开实施例的电源网络生成模块702的结构图。

如图20所示,电源网络生成模块702包括电源环生成模块7021,并且包括通孔生成模块7022、纵向电源条生成模块7023和横向电源条生成模块7024中的至少一个。电源环生成模块7021用于根据边界信息生产内圈电源环信息和外圈电源环信息。通孔生成模块7022用于根据外圈电源环图案信息、内圈电源环图案信息以及预设的通孔特征参数来生成通孔图案信息。纵向电源条生成模块7023用于根据边界信息、内圈电源环信息和外圈电源环信息以及预设的纵向电源条的特征参数来生成纵向电源条信息。横向电源条生成模块7023用于根据边界信息、内圈电源环信息和外圈电源环信息以及预设的横向电源条的特征参数来生成横向电源条信息。

图21示出了电源网络生成模块702中的电源环生成模块7021的结构图。

如图21所示,电源环生成模块7021包括层设置单元7021-1、方位计算单元7021-2、电源环坐标计算单元7021-3、电源环图案生成单元7021-4、第一删除单元7021-5、顶层布线单元7021-6和第二删除单元7021-7。

层设置单元7021-1用于基于预设的布线层数信息,将内圈电源环的横向延伸部分与所述外圈电源环设置在第一布线层(例如m1层),将内圈电源环的纵向延伸部分设置在第二布线层(例如m2层)。

方位计算单元7021-2用于对于所述多个边界坐标当中在顺时针方向上连续的三个边界坐标si-1、si和si+1,根据边界坐标si-1、si和si+1各自与起点边界坐标s1之间的距离来确定电源环坐标ri和ri相对于边界坐标si的方位,其中1≤i≤n,n为大于3的整数,表示边界坐标的总数,i表示坐标在顺时针方向上的顺序编号,当i=1时,si-1对应于sn,当i=n时,si+1对应于s1。方位计算单元7021-1例如可以按照参考图5a至图5d描述的方式来进行计算。

电源环坐标计算单元7021-3用于根据电源网络的特征参数以及电源环坐标ri和ri相对于边界坐标si的方位来确定外圈电源环的坐标ri和内圈电源环的坐标ri。

电源环图案生成单元7021-4用于将外圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定外圈电源环的摆放位置并根据外圈电源环的摆放位置和外圈电源环的线宽来生成外圈电源环图案信息,以及将内圈电源环的坐标ri按照所述时针方向的排列顺序相连以确定内圈电源环的摆放位置并根据内圈电源环的摆放位置和内圈电源环的线宽来生成内圈电源环图案信息。具体地,电源环图案生成单元7021-4可以根据层设置单元7021-1的设置,将内圈电源环的横向延伸部分与所述外圈电源环布置在m1布线层,将内圈电源环的纵向延伸部分设置在m2布线层。

第一删除单元7021-5用于在生成所述内圈电源环图案信息之后,将所述内圈电源环的设置在所述第二布线层(例如m2层)的所述纵向延伸部分删除。

顶层布线单元7021-6用于根据生成的所述内圈电源环图案信息和外圈电源环图案信息在顶层布线层生成内圈电源环图案信息和外圈电源环图案信息。

第二删除单元7021-7用于在所述顶层布线层中将内圈电源环从起点和终点延伸到外圈电源环的部分删除。

在本公开的实施例中,层设置单元7021-1、第一删除单元7021-5和第二删除单元7021-7可以是可选的单元,在不需要删除m1层内圈电源环纵向部分和/或顶层内圈电源环多余部分的情况下,可以相应地不被包含在内。

图22示出了根据本公开实施例的电源网络生成模块702中的纵向电源条生成模块7023的结构图。

如图22所示,纵向电源条生成模块7023包括纵向电源条数目计算单元7023-1、纵向电源条数目优化单元7023-2、纵向电源条间距优化单元7023-3、纵向电源条摆放位置计算单元7023-4和纵向电源条图案生成单元7023-5。

纵向电源条数目计算单元7023-1用于根据n=[x-(d+w+p+inc/2)*2]/inc+0.5计算纵向电源条数目,其中n表示纵向电源条的数目,x表示边界的横向最大宽度,其根据边界的坐标而确定,d表示核心与边界之间的距离,w表示外圈电源环和内圈电源环的线宽,p表示外圈电源环与内圈电源环之间的位距,inc表示在外圈电源环上的相邻纵向电源条之间的位距和内圈电源环上的相邻纵向电源条之间的间距。

纵向电源条数目优化单元7023-2用于根据n`=int(n+0.5)计算纵向电源条的数目的优化值n`,其中int()表示取整。

纵向电源条间距优化单元7023-3用于根据inc`=[x-(d+w+p+inc/2)*2]/(n`-0.5)来计算纵向电源条的间距的优化值inc`。

纵向电源条摆放位置计算单元7023-4用于根据纵向电源条的间距的优化值inc`、边界的横向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽以及外圈电源环与内圈电源环之间的距离来确定纵向电源条的摆放位置。

纵向电源条图案生成单元7023-5用于根据纵向电源条的摆放位置和纵向电源条的线宽来确定纵向电源条图案信息。

图23示出了根据本公开另一实施例的电源网络生成模块702中的横向电源条生成模块7024的结构图。

如图23所示,横向电源条生成模块7024包括:起算线确定单元7024-1、横向电源条间距优化单元7024-2、横向电源条数目计算单元7024-3、横向电源条摆放位置计算单元7024-4、横向电源条补充单元7024-5、横向电源条图案生成单元7024-6。

起算线确定单元7024-1用于将与内圈电源环的内边界的下边距离最近的行的中线作为起算边沿。若最近的行的行高大于内边界的下边沿的高度,则最近的行的中线高度s=(int((w+p)/h+0.5))*h+0.5*h,若最近的行的行高小于内边界的下边沿的高度,则最近的行的中线高度s=(int((w+p)/h+0.5))*h-0.5*h。

横向电源条间距优化单元7024-2基于所述行高将横向电源条的间距转化为偶数行数作为横向电源条的间距的优化值。具体地,可以根据u=int(inc/h)计算横向电源条之间相隔的行数u,其中h表示行高。需要确保行数u为偶数。如果给定的横向电源条的组间距小于u*h,则转化成的偶数为u-1,得到横线电源条组间距的优化值inc`=(u-1)*h;如果给定的横向电源条的组间距大于u*h,则转化成的偶数为u+1,得到横向电源条组间距的优化值inc`=(u+1)*h。

横向电源条数目计算单元7024-3根据边界的纵向最大宽度、核心与边界之间的距离、外圈电源环和内圈电源环的线宽、外圈电源环与内圈电源环之间的距离以及所述横向电源条的间距的优化值来计算横向电源条的数目。具体地,由于横向电源条组数的摆放是从下面往上面依次进行位置摆放,在前面起算线确定单元7024-1和横向电源条间距优化单元7024-2确定之后了s和inc`之后,就可以计算横向电源条的数目。首先计算整个核心里面行的总行数nt=int((y-2*d)/h),核心的总行高为nt*h,横向电源条的组数n=int((nt*h-(s+inc`/2)*2)/inc`+0.5)。由此可以得到横向电源条的数目为2*n。

横向电源条摆放位置计算单元7024-4用于从起算边沿开始每间隔所述inc`/2将行的中心线作为横向电源条的摆放位置,直到2*n个横向电源条,即n组横向电源条的摆放位置均被确定。

电源条补充单元7024-5用于在2*n个横向电源条的摆放位置均被确定之后,如果内圈电源环的内边界的上边沿和距离其最近的横向电源条之间的距离大于inc`/2,则增加一个横向电源条并以所述最近的横向电源条上方inc`/2距离处的行的中心线作为增加的横向电源条的摆放位置。

横向电源条图案生成单元7024-6用于根据横向电源条的摆放位置和横向电源条的线宽生成横向电源条图案信息。

图24示出了根据本公开实施例的阻隔区域生成模块703的结构图。

如图24所示,所述阻隔区域生成模块包括:编号移位单元7031、对角确定单元7032和阻隔区域坐标计算单元7033。

编号移位单元7031用于将内圈电源环图案信息中包含的内圈电源环的内边界的坐标按照所述时针方向的排列顺序编号按照所述时针方向的反方向循环移位一个数值。例如编号移位单元7031可以按照参考图17a描述的方式来进行编号的重新排序。

对角确定单元7032用于将相同编号的边界坐标和内圈电源环的内边界坐标分别作为阻隔区域的第一对角坐标和第二对角坐标。

阻隔区域坐标计算单元7033用于根据阻隔区域的所述第一对角坐标和第二对角坐标生成阻隔区域的左下角坐标和右上角坐标。例如阻隔区域坐标计算单元7033可以按照参考图17b和图18描述的方式来生成阻隔区域的左下角坐标和右上角坐标。

本公开的实施例根据预设的边界坐标及其走向结合电源网络参数来生成边界信息、电源网络图案信息和阻隔区域信息,在一些实施例中甚至可以相应地生成阻隔区域信息,实现了floorplan的自动化设计。用户不需要手动绘制和摆放,只需要输入边界坐标、电源网络参数等等,即可得到所需的floorplan设计信息。用户在需要修改设计时,只需要修改设计的参数,即可快速获得修改后的floorplan设计信息。这极大地减少了floorplan的设计时间,同时也增加了floorplan设计的合理性和规范性。有利于将后端设计人员从floorplan的设计中解脱出来,可以更加快速地配合和推进项目的进程。

本公开的实施例采用计算反馈平均值的优化方法来计算纵向电源条摆放位置,使电源网络分布均匀合理。

本公开的实施例以row的中心线作为横向电源条摆放位置,可以确保横向电源条不会走在row两侧轨道(rail)上方,从而避免由于人工不小心将电源条置于rail上方导致供电通孔打不上去和供电通孔短接的情况。因而使得电源条的排列整齐美观,而且兼具合理性。

本公开的实施例通过将内圈电源环的纵向延伸部分与其余部分设置在不同的层中,可以便于后续删除该不需要的纵向延伸部分,从而得到简洁干净的设计图案。另外,本公开的实施例还计算顶层布线中内圈电源环的多余部分的坐标并将所述多余部分删除,使得顶层布线的设计也简单干净。

以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1