CN112347731B - 集成电路模块级布局中判断直角多边形的角的类型的方法 - Google Patents
集成电路模块级布局中判断直角多边形的角的类型的方法 Download PDFInfo
- Publication number
- CN112347731B CN112347731B CN202011179732.3A CN202011179732A CN112347731B CN 112347731 B CN112347731 B CN 112347731B CN 202011179732 A CN202011179732 A CN 202011179732A CN 112347731 B CN112347731 B CN 112347731B
- Authority
- CN
- China
- Prior art keywords
- angle
- point
- measured
- polygon
- integrated circuit
- 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
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
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
一种在集成电路模块级布局中判断直角多边形的角的类型的方法和对集成电路进行模块级布局的方法。判断直角多边形的角的类型的方法包括:获取集成电路的多个电路模块进行布局时对应的直角多边形;确定直角多边形的一个角为待测角;以待测角的顶点为圆心作一个辅助圆,该辅助圆的半径大于零小于等于半径参考值;在四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,第一点、第二点、第三点以及第四点均在辅助圆内;以及判断第一点、第二点、第三点以及第四点是否位于直角多边形内,并根据判断结果确定待测角的类型为凸角还是凹角。
Description
技术领域
本公开的实施例涉及一种在集成电路模块级布局中判断直角多边形的角的类型的方法、在集成电路模块级布局中判断直角多边形的边的类型的方法、对集成电路进行模块级布局的方法、在集成电路模块级布局中判断直角多边形的角的类型的装置、在集成电路模块级布局中判断直角多边形的边的类型的装置、对集成电路进行模块级布局的装置、存储介质以及判断设备。
背景技术
模块级布局是集成电路自动布图设计的重要环节之一。模块级布局就是将多个电路模块适当排列,从而达到使某种给定的目标函数最优的目的。确定一种最优的布局方案对集成电路后续的物理设计会起到重要作用。
发明内容
本公开至少一实施例提供一种在集成电路模块级布局中判断直角多边形的角的类型的方法,包括:获取集成电路的多个电路模块进行布局时对应的直角多边形;确定所述直角多边形的一个角为待测角;以所述待测角的顶点为圆心作一个辅助圆,该辅助圆的半径大于零小于等于半径参考值,所述半径参考值为所述直角多边形的多条边中与所述待测角的顶点不连接的边上的任意一点与所述待测角的顶点之间的距离的最小值;根据所述待测角的两条边所对应的两条直线将所述直角多边形所在的平面划分为四个区域;在所述四个区域内各取一个点并分别记作第一点、第二点、第三点以及第四点,所述第一点、所述第二点、所述第三点以及所述第四点均在所述辅助圆内;判断所述第一点、所述第二点、所述第三点以及所述第四点是否位于所述直角多边形内,并根据判断结果确定所述待测角的类型为凸角还是凹角。
例如,在本公开至少一实施例提供的方法中,获取所述集成电路的多个电路模块进行布局时对应的所述直角多边形包括:获取所述直角多边形的所有角的顶点的坐标;其中,所述半径参考值根据所述直角多边形的所有角的顶点的坐标通过计算获得。
例如,在本公开至少一实施例提供的方法中,所述半径参考值是预先获得的数据。
例如,在本公开至少一实施例提供的方法中,所述第一点、所述第二点、所述第三点以及所述第四点所在的区域呈逆时针分布;所述第一点和所述第三点的连线与所述待测角的一条边所对应的直线的夹角为45度,且所述第二点和所述第四点的连线与所述第一点和所述第三点的连线相互垂直。
例如,在本公开至少一实施例提供的方法中,所述待测角的顶点的坐标为(x,y),所述第一点的坐标为(x+a,y+a),所述第二点的坐标为(x-a,y+a),所述第三点的坐标为(x-a,y-a),所述第四点的坐标为(x+a,y-a);a满足 B为所述辅助圆的半径。
例如,在本公开至少一实施例提供的方法中,判断所述第一点、所述第二点、所述第三点以及所述第四点是否位于所述直角多边形内包括:确定所述第一点、所述第二点、所述第三点以及所述第四点中的一个为待测点;从所述待测点出发作一条与所述直角多边形有交点的射线;若所述射线与所述直角多边形的交点个数为奇数,则所述待测点在所述直角多边形内;若所述射线与所述直角多边形的交点个数为偶数,则所述待测点在所述直角多边形外。
例如,在本公开至少一实施例提供的方法中,根据判断结果确定所述待测角的类型为凸角还是凹角包括:如果所述第一点、所述第二点、所述第三点以及所述第四点中有且仅有三个点在所述直角多边形内,则所述待测角为凹角;如果所述第一点、所述第二点、所述第三点以及所述第四点中有且仅有一个点在所述直角多边形内,则所述待测角为凸角。
本公开至少一实施例还提供一种对集成电路进行模块级布局的方法,包括:对集成电路的多个电路模块进行布局;根据本公开的实施例提供的任一方法对所述多个电路模块进行布局时对应的直角多边形的所有角的类型进行判断;若所述直角多边形的一个角的类型为凸角,则在该凸角所在的位置插入第一边界单元;若所述直角多边形的一个角的类型为凹角,则在该凹角所在的位置插入第二边界单元;根据至少一个所述第一边界单元和至少一个所述第二边界单元确定所述集成电路的所述多个电路模块的边界;基于所述多个电路模块的边界对所述集成电路的模块级布局进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
本公开至少一实施例还提供一种在集成电路模块级布局中判断直角多边形的边的类型的方法,包括:获取集成电路的多个电路模块进行布局时对应的直角多边形;确定所述直角多边形中的一条边为待测边,将所述待测边的两个端点所在的两个角记作第一待测角和第二待测角;根据本公开的实施例提供的任一方法对所述第一待测角和所述第二待测角的类型进行判断;若所述第一待测角和所述第二待测角均为凹角,则确定所述待测边的类型为凹边;若所述第一待测角和所述第二待测角均为凸角,则确定所述待测边的类型为凸边;若所述第一待测角和所述第二待测角中的一个为凹角,另一个为凸角,则确定所述待测边的类型为凸凹边。
本公开至少一实施例还提供一种对集成电路进行模块级布局的方法,包括:对集成电路的多个电路模块进行布局;根据本公开的实施例所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有边的类型进行判断;对所述直角多边形的所有边中除了凹边外的其它边的长度进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
本公开至少一实施例还提供一种在集成电路模块级布局中判断直角多边形的角的类型的装置,包括:获取模块,被配置为获取集成电路的多个电路模块进行布局时对应的直角多边形;辅助模块,被配置为确定所述直角多边形的一个角为待测角,并以所述待测角的顶点为圆心作一个辅助圆,其中,该辅助圆的半径大于零小于等于半径参考值,所述半径参考值为所述直角多边形的多条边中与所述待测角的顶点不连接的边上的任意一点与所述待测角的顶点之间的距离的最小值;选取模块,被配置为根据所述待测角的两条边所对应的两条直线将所述直角多边形所在的平面划分为四个区域,并在所述四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,所述第一点、所述第二点、所述第三点以及所述第四点均在所述辅助圆内;以及第一角判断模块,被配置为判断所述第一点、所述第二点、所述第三点以及所述第四点是否位于所述直角多边形内,并根据判断结果确定所述待测角的类型为凸角还是凹角。
本公开至少一实施例还提供一种对集成电路进行模块级布局的装置,包括:布局模块,被配置为对集成电路的多个电路模块进行布局;第二角判断模块,被配置为根据权利要求1-7任一所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有角的类型进行判断;插入模块,被配置为:若所述直角多边形的一个角的类型为凸角,则在该凸角所在的位置插入第一边界单元,若所述直角多边形的一个角的类型为凹角,则在该凹角所在的位置插入第二边界单元;以及第一检查模块,被配置为根据至少一个所述第一边界单元和至少一个所述第二边界单元确定所述集成电路的所述多个电路模块的边界,并基于所述多个电路模块的边界对所述集成电路的模块级布局进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
本公开至少一实施例还提供一种在集成电路模块级布局中判断直角多边形的边的类型的装置,包括:获取模块,被配置为获取集成电路的多个电路模块进行布局时对应的直角多边形;第三角判断模块,被配置为确定所述直角多边形中的一条边为待测边,将所述待测边的两个端点所在的两个角记作第一待测角和第二待测角,以及根据权利要求1-7任一所述的方法对所述第一待测角和所述第二待测角的类型进行判断;以及第一边判断模块,被配置为若所述第一待测角和所述第二待测角均为凹角,则确定所述待测边的类型为凹边,若所述第一待测角和所述第二待测角均为凸角,则确定所述待测边的类型为凸边,若所述第一待测角和所述第二待测角中的一个为凹角,另一个为凸角,则确定所述待测边的类型为凸凹边。
本公开至少一实施例还提供一种对集成电路进行模块级布局的装置,包括:布局模块,被配置为对集成电路的多个电路模块进行布局;第二边判断模块,被配置为根据权利要求9所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有边的类型进行判断;以及第二检查模块,被配置为对所述直角多边形的所有边中除了凹边外的其它边的长度进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
本公开至少一实施例还提供一种判断设备,包括:处理器;存储器,包括一个或多个计算机程序模块;所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现如本公开的实施例提供的任一方法。
本公开至少一实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现如本公开的实施例提供的任一方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1A为一种模块级布局的示意图;
图1B为另一种模块级布局的示意图;
图2为本公开的至少一实施例提供的一种判断直角多边形的角的类型的方法10的示意图;
图3为本公开的至少一实施例提供的一种对直角多边形的一个待测角的类型进行判断的示意图;
图4为本公开的至少一实施例提供的另一种对直角多边形的一个待测角的类型进行判断的示意图;
图5为本公开的至少一实施例提供的一种判断点是否位于直角多边形内的示意图;
图6为本公开的至少一实施例提供的再一种对直角多边形的一个待测角的类型进行判断的示意图;
图7为本公开的至少一实施例提供的另一种判断点是否位于直角多边形内的示意图;
图8为本公开的至少一实施例提供的又一种对直角多边形的一个待测角的类型进行判断的示意图;
图9为本公开的至少一实施例提供的一种对集成电路进行模块级布局的方法20的示意图;
图10为本公开的至少一实施例提供的一种根据角的类型插入边界单元的示意图;
图11为本公开的至少一实施例提供的一种判断直角多边形的边的类型的方法30的示意图;
图12为本公开的至少一实施例提供的一种应用图11的方法30对直角多边形的边的类型进行判断的示意图;
图13为本公开的至少一实施例提供的一种对集成电路进行模块级布局的方法40的示意图;
图14为本公开的至少一实施例提供的一种判断设备的示意框图;
图15为本公开的至少一实施例提供的另一种判断设备的示意框图;
图16为本公开的至少一实施例提供的一种存储介质的示意图;
图17为本公开的至少一实施例提供的一种在集成电路模块级布局中判断直角多边形的角的类型的装置1000的示意框图;
图18为本公开的至少一实施例提供的一种对集成电路进行模块级布局的装置2000的示意框图;
图19为本公开的至少一实施例提供的一种在集成电路模块级布局中判断直角多边形的边的类型的装置3000的示意框图;以及
图20为本公开的至少一实施例提供的一种对集成电路进行模块级布局的装置4000的示意框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
在芯片设计领域,通常需要对集成电路进行模块化设计,即将集成电路按照功能划分为多个电路模块,然后在设计阶段需要对该多个电路模块进行模块级布局,从而使得最终制作出来的集成电路所占的面积尽量小。
模块级布局是集成电路自动布图设计的重要环节之一,模块级布局就是将多个电路模块适当排列,从而达到使某种给定的目标函数最优的目的。确定一种最优的布局方案对集成电路后续的物理设计会起到重要作用。
在设计阶段可以将电路模块抽象为矩形,将平面作为布局的工作区域。对于给定的多个矩形,一种合法布局就是把所有矩形放置于平面上,使得任何两块矩形相互之间不能重叠,并且矩形的边平行或者垂直于坐标轴。多个矩形在该平面所占的区域的边界构成一个直角多边形,模块级布局就是寻找一个最优布局或近似最优布局,使得该直角多边形的面积最小或者其它优化目标组成的目标函数值达到最优。
例如,图1A和图1B分别示出了两种进行模块级布局的示意图。如图1A所示,采用图1A所示的布局方案会使得多个矩形中间会产生多个没有被利用到的区域。相对于图1A的布局方案,在图1B所示的布局方案中,多个矩形所占的区域的边界构成的直角多边形的面积更小,所以图1B的布局方案更合理。
在本公开的至少一个实施例中,对集成电路的多个电路模块进行布局时,一个布局方案对应一个直角多边形,该直角多边形为在该布局方案中多个电路模块(多个矩形)所占用的区域的边界构成的一个多边形。另外,在本公开的实施例中,直角多边形表示所有的角均为直角的多边形。以下各实施例均与此相同,不再赘述。
在上述对集成电路的多个电路模块进行模块级布局时,完成一个布局方案后,还需要对该布局方案进行设计规则检查(Design Rule Check,DRC),以确认该模块级布局是否符合设计规则。如果不完全符合设计规则,则需要对该布局方案继续进行改进和优化,最终使得获得的布局方案符合设计规则。例如,该设计规则可以是预先存储在存储介质中的,在需要时可以直接调用。
在对一个布局方案进行设计规则检查前,需要先确定集成电路的多个电路模块的边界,然后基于该多个电路模块的边界对该模块级布局进行设计规则检查,而确定该多个电路模块的边界则需要对该多个电路模块对应的直角多边形的角的类型进行判断。
本公开的至少一实施例提供了一种在集成电路模块级布局中判断直角多边形的角的类型的方法。该方法包括:获取集成电路的多个电路模块进行布局时对应的直角多边形;确定直角多边形的一个角为待测角;以待测角的顶点为圆心作一个辅助圆,该辅助圆的半径大于零小于等于半径参考值,半径参考值为直角多边形的多条边中与待测角的顶点不连接的边上的任意一点与待测角的顶点之间的距离的最小值;根据待测角的两条边所对应的两条直线将直角多边形所在的平面划分为四个区域;在四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,第一点、第二点、第三点以及第四点均在辅助圆内;以及判断第一点、第二点、第三点以及第四点是否位于直角多边形内,并根据判断结果确定待测角的类型为凸角还是凹角。
本公开的至少一实施例还提供一种在集成电路模块级布局中判断直角多边形的边的类型的方法、一种对集成电路进行模块级布局的方法、一种在集成电路模块级布局中判断直角多边形的角的类型的装置、一种在集成电路模块级布局中判断直角多边形的边的类型的装置、一种对集成电路进行模块级布局的装置、一种存储介质以及一种判断设备。
基于本公开的至少一实施例提供的方法,可以实现在集成电路的模块级布局中对直角多边形的角的类型进行判断以及对直角多边形的边的类型进行判断,从而为进行模块级布局的设计规则检查打下基础。
本公开的至少一实施例提供一种在集成电路模块级布局中判断直角多边形的角的类型的方法10,该判断直角多边形的角的类型的方法10可以用于在集成电路的模块级布局中对直角多边形的角的类型进行判断。
例如,如图2所示,该判断直角多边形的角的类型的方法10包括以下操作步骤。
步骤S101:获取集成电路的多个电路模块进行布局时对应的直角多边形。
步骤S102:确定直角多边形的一个角为待测角。
步骤S103:以待测角的顶点为圆心作一个辅助圆,该辅助圆的半径大于零小于等于半径参考值,半径参考值为直角多边形的多条边中与待测角的顶点不连接的边上的任意一点与待测角的顶点之间的距离的最小值。
步骤S104:根据待测角的两条边所对应的两条直线将直角多边形所在的平面划分为四个区域;在四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,第一点、第二点、第三点以及第四点均在辅助圆内。
步骤S105:判断第一点、第二点、第三点以及第四点是否位于直角多边形内,并根据判断结果确定待测角的类型为凸角还是凹角。
下面以图3为例对上述判断直角多边形的角的类型的方法10进行描述。如前所述,在对集成电路进行模块级布局时,即对集成电路的多个电路模块进行布局时,多个电路模块对应的多个矩形所占用的区域的边界构成一个直角多边形,该直角多边形即为集成电路的多个电路模块进行布局时对应的直角多边形。
例如,在步骤S101中获取该集成电路的多个电路模块进行布局时对应的直角多边形,图3示出了该直角多边形的一种示例。这里需要说明的是,图3中所示的直角多边形仅是为了说明本公开的实施例的一种示例,它的形状、大小均不构成对本公开的实施例的限制。
例如,如图3所示,该直角多边形包括10个角,分别为角401、角402、角403、角404、角405、角406、角407、角408、角409以及角410。
在步骤S102中确定直角多边形的一个角为待测角。例如,在图3所示的示例中,确定角401为待测角。
如图3所示,在步骤S103中,以待测角401的顶点为圆心O作一个辅助圆AC。该辅助圆AC的半径大于零小于等于半径参考值,半径参考值为直角多边形的多条边中与待测角401的顶点(即圆心O)不连接的边上的任意一点与待测角401的顶点之间的距离的最小值,图3中示出了半径参考值RR的示例。
又例如,图4示出了一种极限情形,在该示例中,辅助圆AC的半径等于半径参考值RR。
例如,在一些实施例中,上述步骤S101可以包括获取直角多边形的所有角的顶点的坐标。以图3为例,即获取图3所示的直角多边形的所有角(角401-角410)的顶点的坐标。
在获取直角多边形的所有角的顶点的坐标的基础上,上述半径参考值可以根据直角多边形的所有角的顶点的坐标通过计算获得。
又例如,在其它一些实施例中,上述半径参考值可以是预先获得的数据。
对于一个确定的直角多边形来说,一个待测角对应于一个辅助圆,而该辅助圆的半径要小于等于半径参考值;选择的待测角改变,对应的半径参考值也会改变。也就是说,对于一个确定的直角多边形来说,半径参考值不是固定不变的,它是根据待测角的改变而改变的,一个待测角对应一个半径参考值。所以对于一个直角多边形来说,待测角和该待测角对应的半径参考值可以预先存储在存储介质中,在需要时直接调用即可。
继续以图3为例进行说明,经过步骤S103作出辅助圆AC后,在步骤S104中,根据待测角401的两条边所对应的两条直线201和202将直角多边形所在的平面划分为四个区域。然后在四个区域内各选取一个点并分别记作第一点P1、第二点P2、第三点P3以及第四点P4,并使得第一点P1、第二点P2、第三点P3以及第四点P4均在辅助圆AC内。
步骤S104的操作也可以理解为:以辅助圆AC的圆心O为原点,以待测角401的两条边所对应的两条直线202和201为坐标轴构建一个直角坐标系,然后在该直角坐标系的第一象限、第二象限、第三象限以及第四象限各选取一个点并分别记作第一点P1、第二点P2、第三点P3以及第四点P4,并使得第一点P1、第二点P2、第三点P3以及第四点P4均在辅助圆AC内。该直角坐标系的第一象限、第二象限、第三象限以及第四象限即对应上述的四个区域。
然后,在步骤S105中,判断第一点P1、第二点P2、第三点P3以及第四点P4是否位于直角多边形内,并根据判断结果确定待测角401的类型为凸角还是凹角。
例如,在一些实施例中,判断第一点P1、第二点P2、第三点P3以及第四点P4是否位于直角多边形内包括以下操作步骤:确定第一点P1、第二点P2、第三点P3以及第四点P4中的一个为待测点;从待测点出发作一条与直角多边形有交点的射线;若射线与直角多边形的交点个数为奇数,则待测点在直角多边形内;若射线与直角多边形的交点个数为偶数,则待测点在直角多边形外。
例如,以图5为例进行说明,先确定第一点P1、第二点P2、第三点P3以及第四点P4中的一个为待测点,例如确定第一点P1为待测点,然后从待测点P1出发作一条与直角多边形有交点的射线R1,该射线R1与直角多边形的交点为一个,交点个数为奇数,所以判断待测点P1在直角多边形内。
和上述类似地,确定第二点P2为待测点,从待测点P2出发作一条与直角多边形有交点的射线R2,该射线R2与直角多边形的交点为一个,交点个数为奇数,所以判断待测点P2在直角多边形内;确定第三点P3为待测点,从待测点P3出发作一条与直角多边形有交点的射线R3,该射线R3与直角多边形的交点为两个,交点个数为偶数,所以判断待测点P3在直角多边形外;确定第四点P4为待测点,从待测点P4出发作一条与直角多边形有交点的射线R4,该射线R4与直角多边形的交点为一个,交点个数为奇数,所以判断待测点P4在直角多边形内。
需要说明的是,在上述从待测点出发作射线时,对该射线的方向不作限定,只要保证该射线与直角多边形有交点即可。例如,如图5所示,射线可以与直角多边形的边垂直,例如射线R1、R3;又例如,射线可以与直角多边形的边不垂直,例如射线R2;又例如,射线还可以穿过直角多边形的一个角的顶点,例如射线R4。
另外,需要说明的是,上述判断一个点是否在一个直角多边形内的方法仅是一种示例,本公开的实施例还可以采用其它方法进行判断,本公开的实施例对此不作限制。
在步骤S105中,在完成判断第一点P1、第二点P2、第三点P3以及第四点P4是否位于直角多边形内的操作后,可以根据判断结果确定待测角401的类型为凸角还是凹角。
例如,在一些实施例中,根据判断结果确定待测角401的类型为凸角还是凹角包括:如果第一点P1、第二点P2、第三点P3以及第四点P4中有且仅有三个点在直角多边形内,则待测角401为凹角;如果第一点P1、第二点P2、第三点P3以及第四点P4中有且仅有一个点在直角多边形内,则待测角401为凸角。
仍然以图3为例进行说明,在步骤S105中,判断出第一点P1、第二点P2以及第四点P4在直角多边形内,且第三点P3在直角多边形外,即第一点P1、第二点P2、第三点P3以及第四点P4中有且仅有三个点在直角多边形内,所以确定待测角401为凹角。
下面结合图6对判断直角多边形的角402的类型的方法进行描述,这里步骤S101和上述实施例相同,不再赘述。
在步骤S102中,确定直角多边形的角402为待测角。然后,在步骤S103中,以待测角402的顶点为圆心O作一个辅助圆AC。该辅助圆AC的半径大于零小于等于半径参考值RR,半径参考值RR为直角多边形的多条边中与待测角402的顶点(即圆心O)不连接的边上的任意一点与待测角402的顶点之间的距离的最小值,图6示出了半径参考值RR的示例。需要注意的是,由于这里待测角从角401变为了角402,所以对应的半径参考值也发生了变化。
然后在步骤S104中,和上述实施例类似地,根据待测角402的两条边所对应的两条直线201和202将直角多边形所在的平面划分为四个区域。然后在四个区域内各选取一个点并分别记作第一点P1、第二点P2、第三点P3以及第四点P4,并使得第一点P1、第二点P2、第三点P3以及第四点P4均在辅助圆AC内。
然后,在步骤S105中,判断第一点P1、第二点P2、第三点P3以及第四点P4是否位于直角多边形内,并根据判断结果确定待测角402的类型为凸角还是凹角。
例如,结合图7进行说明,先确定第一点P1、第二点P2、第三点P3以及第四点P4中的一个为待测点,例如确定第一点P1为待测点,然后从待测点P1出发作一条与直角多边形有交点的射线R1,该射线R1与直角多边形的交点为一个,交点个数为奇数,所以判断待测点P1在直角多边形内。
和上述类似地,确定第二点P2为待测点,从待测点P2出发作一条与直角多边形有交点的射线R2,该射线R2与直角多边形的交点为两个,交点个数为偶数,所以判断待测点P2在直角多边形外;确定第三点P3为待测点,从待测点P3出发作一条与直角多边形有交点的射线R3,该射线R3与直角多边形的交点为两个,交点个数为偶数,所以判断待测点P3在直角多边形外;确定第四点P4为待测点,从待测点P4出发作一条与直角多边形有交点的射线R4,该射线R4与直角多边形的交点为两个,交点个数为偶数,所以判断待测点P4在直角多边形外。
在步骤S105中,在完成判断第一点P1、第二点P2、第三点P3以及第四点P4是否位于直角多边形内的操作后,然后根据判断结果确定待测角402的类型为凸角还是凹角。
仍然以图6为例进行说明,在步骤S105中,判断出第一点P1在直角多边形内,且第二点P2、第三点P3以及第四点P4在直角多边形外,即第一点P1、第二点P2、第三点P3以及第四点P4中有且仅有一个点在直角多边形内,所以确定待测角402为凸角。
关于图3和图6所示的直角多边形的其它角403-角410的类型的判断方法和上述实施例类似,这里不再赘述。最后可以判断出该直角多边形的角401、角404以及角407为凹角,其余角为凸角。
下面以图8为例对在步骤S104中选取第一点P1、第二点P2、第三点P3以及第四点P4的另一种实施例进行描述。
例如,如图8所示,第一点P1、第二点P2、第三点P3以及第四点P4所在的区域呈逆时针分布。例如在上面的描述中,如果以辅助圆AC的圆心O为原点,以待测角401的两条边所对应的两条直线202和201为坐标轴构建一个直角坐标系,则第一点P1、第二点P2、第三点P3以及第四点P4所在的区域分别为该直角坐标系的第一象限、第二象限、第三象限以及第四象限。
如图8所示,第一点P1和第三点P3的连线301与待测角401的一条边所对应的直线(201或202)的夹角为45度,且第二点P2和第四点P4的连线302与第一点P1和第三点P3的连线301相互垂直。
更进一步地,例如,如图8所示,选取第一点P1、第二点P2、第三点P3以及第四点P4时可以使得该四个点构成一个正方形300。例如,如果待测角401的顶点(圆心O)的坐标为(x,y),则第一点P1的坐标为(x+a,y+a),第二点P2的坐标为(x-a,y+a),第三点P3的坐标为(x-a,y-a),第四点P4的坐标为(x+a,y-a);由于第一点P1、第二点P2、第三点P3以及第四点P4在辅助圆AC内,所以a需要满足以下条件:B为辅助圆AC的半径。
需要说明的是,图8所示的实施例仅是选取第一点P1、第二点P2、第三点P3以及第四点P4的一种示例,本公开的实施例包括但不限于此,在选取时只要使得第一点P1、第二点P2、第三点P3以及第四点P4满足上述步骤S104中的要求即可。
另外,需要说明的是,在图8所示的实施例中,待测角401的顶点的坐标为(x,y),这里的坐标对应的是整个直角多边形的直角坐标系,而不是以待测角401的顶点为原点构建的直角坐标系。当然,如果以待测角401的顶点为原点构建对应直角多边形的直角坐标系,则待测角401的顶点的坐标为(0,0)。
图8所示的实施例通过限定选取第一点P1、第二点P2、第三点P3以及第四点P4的位置,可以简化上述操作步骤S104。
本公开的至少一实施例提供的判断直角多边形的角的类型的方法可以用于在集成电路的模块级布局中对直角多边形的角的类型进行判断,从而为模块级布局的后续操作打下基础。
本公开的至少一实施例还提供一种对集成电路进行模块级布局的方法20,该方法20可以在芯片设计领域用于对集成电路进行模块级布局。
例如,如图9所示,该方法20包括以下操作步骤。
步骤S201:对集成电路的多个电路模块进行布局。
步骤S202:根据本公开的实施例提供的方法10对多个电路模块进行布局时对应的直角多边形的所有角的类型进行判断。
步骤S203:若直角多边形的一个角的类型为凸角,则在该凸角所在的位置插入第一边界单元;若直角多边形的一个角的类型为凹角,则在该凹角所在的位置插入第二边界单元。
步骤S204:根据至少一个第一边界单元和至少一个第二边界单元确定集成电路的多个电路模块的边界。
步骤S205:基于多个电路模块的边界对集成电路的模块级布局进行设计规则检查,以确认集成电路的模块级布局是否符合设计规则。
下面结合图10对上述方法20进行描述。
在步骤S201中,对一个集成电路的多个电路模块进行布局,例如,多个电路模块对应多个矩形,对集成电路的多个电路模块进行布局即对该多个矩形进行布局,假设布局完后对应的直角多边形如图10所示,为了便于说明,该直角多边形与图3和图6中的一致。
然后在步骤S202中,采用上述实施例中提供的判断直角多边形的角的类型的方法10对该直角多边形的所有角的类型进行判断。例如,根据方法10可以判断出该直角多边形的角401、角404以及角407为凹角,其余的角为凸角。
然后在步骤S203中,在凸角(角402、角403、角405、角406、角408、角409以及角410)所在的位置均插入第一边界单元BC1,同时在凹角(角401、角404以及角407)所在的位置插入第二边界单元BC2。
然后在步骤S204中,根据步骤S203中的第一边界单元BC1以及第二边界单元BC2确定集成电路的多个电路模块的边界。
这里需要说明的是,在集成电路(芯片)的设计过程中,例如该集成电路通常由多个层(layer)构成,该多个层在最底层上的映射均位于上述实施例中所述的集成电路进行模块级布局时对应的直角多边形内,即该直角多边形可以看作是该集成电路在设计过程中的一个最外侧的一个标线。
虽然集成电路的每一层都位于上述直角多边形界定的区域内,但不同的层对应的形状通常也是不同的,即每一层都有自己对应的一个边界。上述在步骤S203中插入的第一边界单元BC1和第二边界单元BC2不是平面的而是立体的,每个边界单元(第一边界单元BC1和第二边界单元BC2)都包括了集成电路的多个层在该边界单元所在的位置处对应的边界,从而使得根据第一边界单元BC1以及第二边界单元BC2确定的集成电路的边界也是立体的,该边界可以看作是各个层对应的边界的集合,而不是指通常意义上由多个线条构成的边界。
然后在步骤S205中,基于步骤S204获得的多个电路模块的边界(上述立体的边界)对集成电路的模块级布局进行设计规则检查(DRC),以确认集成电路的模块级布局是否符合设计规则,例如,检查集成电路的不同层之间的相对位置关系是否符合设计规则等。
也就是说,在集成电路的模块级布局中,获得集成电路的多个电路模块的边界是进行后续设计规则检查的基础,而要获得该多个电路模块的边界需要根据角的类型对应插入不同的边界单元,所以要先对直角多边形的角的类型进行判断。
本公开的至少一实施例还提供一种在集成电路模块级布局中判断直角多边形的边的类型的方法30,该判断直角多边形的边的类型的方法30可以用于在集成电路的模块级布局中对直角多边形的边的类型进行判断。
例如,如图11所示,该判断直角多边形的边的类型的方法30包括以下操作步骤。
步骤S301:获取集成电路的多个电路模块进行布局时对应的直角多边形。
步骤S302:确定直角多边形中的一条边为待测边,将待测边的两个端点所在的两个角记作第一待测角和第二待测角。
步骤S303:根据本公开的实施例提供的方法10对第一待测角和第二待测角的类型进行判断。
步骤S304:若第一待测角和第二待测角均为凹角,则确定待测边的类型为凹边;若第一待测角和第二待测角均为凸角,则确定待测边的类型为凸边;若第一待测角和第二待测角中的一个为凹角,另一个为凸角,则确定待测边的类型为凸凹边。
下面结合图12对上述判断直角多边形的边的类型的方法30进行描述。需要说明是,步骤301与上述实施例中的步骤S101类似,这里不再赘述。
例如,图12示出了一种集成电路的多个电路模块进行布局时对应的直角多边形。这里为了更清楚的描述,仅标注了该直角多边形的部分角和部分边。
在步骤S302中,例如确定直角多边形的边602为待测边,并将待测边602的两个端点所在的两个角记作第一待测角和第二待测角,例如角502为第一待测角且角503为第二待测角。
然后在步骤S303中,根据本公开的实施例提供的方法10对第一待测角502和第二待测角503的类型进行判断,从而可以获得第一待测角502为凸角且第二待测角503为凹角。
然后在步骤S304中,由于第一待测角502为凸角且第二待测角503为凹角,所以可以确定边602为凸凹边。
类似地,通过方法30还可以对图12所示的直角多边形的其它边进行判断,从而确定边601为凸边、边603为凹边、边604为凸凹边以及边605为凸边。
本公开的至少一实施例提供的判断直角多边形的边的类型的方法可以用于在集成电路的模块级布局中对直角多边形的边的类型进行判断,从而为模块级布局的后续操作打下基础。
本公开的至少一实施例还提供一种对集成电路进行模块级布局的方法40,该方法40可以在芯片设计领域用于对集成电路进行模块级布局。
例如,如图13所示,该方法40包括以下操作步骤。
步骤S401:对集成电路的多个电路模块进行布局。
步骤S402:根据本公开的实施例提供的方法30对多个电路模块进行布局时对应的直角多边形的所有边的类型进行判断。
步骤S403:对直角多边形的所有边中除了凹边外的其它边的长度进行设计规则检查,以确认集成电路的模块级布局是否符合设计规则。
在步骤S401中,对一个集成电路的多个电路模块进行布局,例如,多个电路模块对应多个矩形,对集成电路的多个电路模块进行布局即对该多个矩形进行布局,假设布局完后对应的直角多边形如图12所示。
然后在步骤S402中,采用上述实施例中提供的判断直角多边形的边的类型的方法30对该直角多边形的所有边的类型进行判断。例如,根据方法30可以判断出图12所示的直角多边形的边601为凸边、边602为凸凹边、边603为凹边、边604为凸凹边以及边605为凸边。关于其它没有标注的边的判断可以参考上述方法30,这里不再赘述。
然后在步骤S403中,将直角多边形的所有边中的凹边剔除,对应图12所示的直角多边形来说,就是将边603剔除,然后对该直角多边形的其余边的长度进行设计规则检查(DRC),以确认集成电路的模块级布局是否符合设计规则。
本公开的至少一实施例提供的对集成电路进行模块级布局的方法40可以先对直角多边形的所有边的类型进行判断,从而把不需要进行处理的凹边剔除,然后再对其它边进行设计规则检查(DRC),从而确认当前的模块级布局是否符合设计规则,如果不完全符合设计规则,则需要继续改进布局方案直到符合设计规则。
本公开的至少一实施例还提供一种判断设备,该判断设备包括处理器和存储器;该存储器包括一个或多个计算机程序模块;一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上文所述的本公开的实施例中的方法10、20、30以及40。
图14为本公开至少一实施例提供的一种判断设备的示意框图。如图14所示,该判断设备700包括处理器710和存储器720。存储器720用于存储非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器710用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器710运行时可以执行上文所述的方法10、20、30以及40中的一个或多个步骤。存储器720和处理器710可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器710可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器710可以为通用处理器或专用处理器,可以控制判断设备700中的其它组件以执行期望的功能。
例如,存储器720可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器710可以运行一个或多个计算机程序模块,以实现判断设备700的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
例如,在存储器720中还可以存储各种数据,例如上文中提到的直角多边形的所有角的顶点的坐标。例如,在上述步骤103中,可以直接调用存储器720中存储的直角多边形的所有角的顶点的坐标,然后根据这些坐标通过计算可以获得半径参考值。又例如,在存储器720中还可以存储所有待测角对应的半径参考值,这样在步骤S103中,可以直接从存储器720中调用半径参考值,然后继续后续操作步骤。
需要说明的是,本公开的实施例中,判断设备700的具体功能和技术效果可以参考上文中关于方法10、20、30以及40的描述,此处不再赘述。
图15为本公开一些实施例提供的另一种判断设备的示意框图。该判断设备800例如适于用来实施本公开实施例提供的方法10、20、30以及40。需要注意的是,图15示出的判断设备800仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图15所示,判断设备800可以包括处理装置(例如中央处理器、图形处理器等)810,其可以根据存储在只读存储器(ROM)820中的程序或者从存储装置880加载到随机访问存储器(RAM)830中的程序而执行各种适当的动作和处理。在RAM 830中,还存储有判断设备800操作所需的各种程序和数据。处理装置810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
通常,以下装置可以连接至I/O接口850:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置860;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置870;包括例如磁带、硬盘等的存储装置880;以及通信装置890。通信装置890可以允许判断设备800与其他电子设备进行无线或有线通信以交换数据。虽然图15示出了具有各种装置的判断设备800,但应理解的是,并不要求实施或具备所有示出的装置,判断设备800可以替代地实施或具备更多或更少的装置。
例如,本公开实施例提供的方法10、20、30以及40可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括用于执行上述方法10、20、30以及40的程序代码。在这样的实施例中,该计算机程序可以通过通信装置890从网络上被下载和安装,或者从存储装置880安装,或者从ROM 820安装。在该计算机程序被处理装置810执行时,可以执行本公开实施例提供的方法10、20、30以及40。
本公开至少一个实施例还提供一种存储介质,用于存储非暂时性计算机可读指令,当该非暂时性计算机可读指令由计算机执行时可以实现本公开任一实施例所述的方法10、20、30以及40。利用该存储介质,可以实现在集成电路的模块级布局中对直角多边形的角的类型进行判断以及对直角多边形的边的类型进行判断,从而为进行模块级布局的设计规则检查打下基础。
图16为本公开一些实施例提供的一种存储介质的示意图。如图16所示,存储介质100用于存储非暂时性计算机可读指令110。例如,当非暂时性计算机可读指令110由计算机执行时可以执行根据上文所述的方法10、20、30以及40中的一个或多个步骤。
例如,该存储介质100可以应用于上述判断设备700中。例如,存储介质100可以为图14所示的判断设备700中的存储器720。例如,关于存储介质100的相关说明可以参考图14所示的判断设备700中的存储器720的相应描述,此处不再赘述。
本公开至少一个实施例还提供一种在集成电路模块级布局中判断直角多边形的角的类型的装置1000,如图17所示,该装置1000包括获取模块1100、辅助模块1200、选取模块1300以及第一角判断模块。
例如,该获取模块1100被配置为获取集成电路的多个电路模块进行布局时对应的直角多边形。
该辅助模块1200被配置为确定直角多边形的一个角为待测角,并以待测角的顶点为圆心作一个辅助圆。该辅助圆的半径大于零小于等于半径参考值,半径参考值为直角多边形的多条边中与待测角的顶点不连接的边上的任意一点与待测角的顶点之间的距离的最小值。
该选取模块1300被配置为根据待测角的两条边所对应的两条直线将直角多边形所在的平面划分为四个区域,并在四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,第一点、第二点、第三点以及第四点均在辅助圆内。
该第一角判断模块1400被配置为判断第一点、第二点、第三点以及第四点是否位于直角多边形内,并根据判断结果确定待测角的类型为凸角还是凹角。
本公开至少一个实施例还提供一种对集成电路进行模块级布局的装置2000,如图18所示,该装置2000包括布局模块2100、第二角判断模块2200、插入模块2300以及第一检查模块2400。
例如,该布局模块2100被配置为对集成电路的多个电路模块进行布局。
该第二角判断模块2200被配置为根据本公开的实施例提供的任一方法10对多个电路模块进行布局时对应的直角多边形的所有角的类型进行判断;
该插入模块2300被配置为:若直角多边形的一个角的类型为凸角,则在该凸角所在的位置插入第一边界单元,若直角多边形的一个角的类型为凹角,则在该凹角所在的位置插入第二边界单元。
该第一检查模块2400被配置为根据至少一个第一边界单元和至少一个第二边界单元确定集成电路的多个电路模块的边界,并基于多个电路模块的边界对集成电路的模块级布局进行设计规则检查,以确认集成电路的模块级布局是否符合设计规则。
本公开至少一个实施例还提供一种在集成电路模块级布局中判断直角多边形的边的类型的装置3000,如图19所示,该装置3000包括获取模块3100、第三角判断模块3200以及第一边判断模块3300。
例如,该获取模块3100被配置为获取集成电路的多个电路模块进行布局时对应的直角多边形。需要说明的是,该获取模块3100与装置1000中的获取模块1100可以配置为相同。
该第三角判断模块3200被配置为确定直角多边形中的一条边为待测边,将待测边的两个端点所在的两个角记作第一待测角和第二待测角,以及根据本公开的实施例提供任一方法10对第一待测角和第二待测角的类型进行判断。
该第一边判断模块3300被配置为若第一待测角和第二待测角均为凹角,则确定待测边的类型为凹边,若第一待测角和第二待测角均为凸角,则确定待测边的类型为凸边,若第一待测角和第二待测角中的一个为凹角,另一个为凸角,则确定待测边的类型为凸凹边。
本公开至少一个实施例还提供一种对集成电路进行模块级布局的装置4000,如图20所示,该装置4000包括布局模块4100、第二边判断模块4200以及第二检查模块4300。
例如,该布局模块4100被配置为对集成电路的多个电路模块进行布局。需要说明的是,该布局模块4100与装置2000中的布局模块2100可以配置为相同。
该第二边判断模块4200被配置为根据本公开的实施例提供的方法30对多个电路模块进行布局时对应的直角多边形的所有边的类型进行判断。
该第二检查模块4300被配置为对直角多边形的所有边中除了凹边外的其它边的长度进行设计规则检查,以确认集成电路的模块级布局是否符合设计规则。
由于以上已经在描述方法10、20、30、40的过程中,对上述装置1000、2000、3000、4000操作所涉及的内容的细节进行了介绍,因此这里为简洁起见不再赘述,相关细节可参照以上关于图2至图13的描述。
需要说明的是,图17-图20所示的装置中的各个模块可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些模块可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。作为示例,参照图17-图20描述的装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其它能够执行程序指令的装置,但不限于此。
另外,尽管以上在描述装置1000、2000、3000、4000时将其划分为用于分别执行相应处理的模块,然而,本领域技术人员清楚的是,各模块执行的处理也可以在装置中不进行任何具体模块划分或者各模块之间并无明确划界的情况下执行。此外,以上参照图17-图20描述的装置并不限于包括以上描述的模块,而是还可以根据需要增加一些其它模块(例如,存储模块、数据处理模块等),或者以上模块也可被组合。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种在集成电路模块级布局中判断直角多边形的角的类型的方法,包括:
获取集成电路的多个电路模块进行布局时对应的直角多边形;
确定所述直角多边形的一个角为待测角;
以所述待测角的顶点为圆心作一个辅助圆,其中,该辅助圆的半径大于零小于等于半径参考值,所述半径参考值为所述直角多边形的多条边中与所述待测角的顶点不连接的边上的任意一点与所述待测角的顶点之间的距离的最小值;
根据所述待测角的两条边所对应的两条直线将所述直角多边形所在的平面划分为四个区域;
在所述四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,所述第一点、所述第二点、所述第三点以及所述第四点均在所述辅助圆内;
判断所述第一点、所述第二点、所述第三点以及所述第四点是否位于所述直角多边形内,并根据判断结果确定所述待测角的类型为凸角还是凹角。
2.根据权利要求1所述的方法,其中,获取所述集成电路的多个电路模块进行布局时对应的所述直角多边形包括:
获取所述直角多边形的所有角的顶点的坐标;
其中,所述半径参考值根据所述直角多边形的所有角的顶点的坐标通过计算获得。
3.根据权利要求1所述的方法,其中,所述半径参考值是预先获得的数据。
4.根据权利要求1所述的方法,其中,所述第一点、所述第二点、所述第三点以及所述第四点所在的区域呈逆时针分布;
所述第一点和所述第三点的连线与所述待测角的一条边所对应的直线的夹角为45度,且所述第二点和所述第四点的连线与所述第一点和所述第三点的连线相互垂直。
6.根据权利要求1所述的方法,其中,判断所述第一点、所述第二点、所述第三点以及所述第四点是否位于所述直角多边形内包括:
确定所述第一点、所述第二点、所述第三点以及所述第四点中的一个为待测点;
从所述待测点出发作一条与所述直角多边形有交点的射线;
若所述射线与所述直角多边形的交点个数为奇数,则所述待测点在所述直角多边形内;
若所述射线与所述直角多边形的交点个数为偶数,则所述待测点在所述直角多边形外。
7.根据权利要求1-6任一所述的方法,其中,根据判断结果确定所述待测角的类型为凸角还是凹角包括:
如果所述第一点、所述第二点、所述第三点以及所述第四点中有且仅有三个点在所述直角多边形内,则所述待测角为凹角;
如果所述第一点、所述第二点、所述第三点以及所述第四点中有且仅有一个点在所述直角多边形内,则所述待测角为凸角。
8.一种对集成电路进行模块级布局的方法,包括:
对集成电路的多个电路模块进行布局;
根据权利要求1-7任一所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有角的类型进行判断;
若所述直角多边形的一个角的类型为凸角,则在该凸角所在的位置插入第一边界单元;
若所述直角多边形的一个角的类型为凹角,则在该凹角所在的位置插入第二边界单元;
根据至少一个所述第一边界单元和至少一个所述第二边界单元确定所述集成电路的所述多个电路模块的边界;
基于所述多个电路模块的边界对所述集成电路的模块级布局进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
9.一种在集成电路模块级布局中判断直角多边形的边的类型的方法,包括:
获取集成电路的多个电路模块进行布局时对应的直角多边形;
确定所述直角多边形中的一条边为待测边,将所述待测边的两个端点所在的两个角记作第一待测角和第二待测角;
根据权利要求1-7任一所述的方法对所述第一待测角和所述第二待测角的类型进行判断;
若所述第一待测角和所述第二待测角均为凹角,则确定所述待测边的类型为凹边;
若所述第一待测角和所述第二待测角均为凸角,则确定所述待测边的类型为凸边;
若所述第一待测角和所述第二待测角中的一个为凹角,另一个为凸角,则确定所述待测边的类型为凸凹边。
10.一种对集成电路进行模块级布局的方法,包括:
对集成电路的多个电路模块进行布局;
根据权利要求9所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有边的类型进行判断;
对所述直角多边形的所有边中除了凹边外的其它边的长度进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
11.一种在集成电路模块级布局中判断直角多边形的角的类型的装置,包括:
获取模块,被配置为获取集成电路的多个电路模块进行布局时对应的直角多边形;
辅助模块,被配置为确定所述直角多边形的一个角为待测角,并以所述待测角的顶点为圆心作一个辅助圆,其中,该辅助圆的半径大于零小于等于半径参考值,所述半径参考值为所述直角多边形的多条边中与所述待测角的顶点不连接的边上的任意一点与所述待测角的顶点之间的距离的最小值;
选取模块,被配置为根据所述待测角的两条边所对应的两条直线将所述直角多边形所在的平面划分为四个区域,并在所述四个区域内各选取一个点并分别记作第一点、第二点、第三点以及第四点,所述第一点、所述第二点、所述第三点以及所述第四点均在所述辅助圆内;以及
第一角判断模块,被配置为判断所述第一点、所述第二点、所述第三点以及所述第四点是否位于所述直角多边形内,并根据判断结果确定所述待测角的类型为凸角还是凹角。
12.一种对集成电路进行模块级布局的装置,包括:
布局模块,被配置为对集成电路的多个电路模块进行布局;
第二角判断模块,被配置为根据权利要求1-7任一所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有角的类型进行判断;
插入模块,被配置为:若所述直角多边形的一个角的类型为凸角,则在该凸角所在的位置插入第一边界单元,若所述直角多边形的一个角的类型为凹角,则在该凹角所在的位置插入第二边界单元;以及
第一检查模块,被配置为根据至少一个所述第一边界单元和至少一个所述第二边界单元确定所述集成电路的所述多个电路模块的边界,并基于所述多个电路模块的边界对所述集成电路的模块级布局进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
13.一种在集成电路模块级布局中判断直角多边形的边的类型的装置,包括:
获取模块,被配置为获取集成电路的多个电路模块进行布局时对应的直角多边形;
第三角判断模块,被配置为确定所述直角多边形中的一条边为待测边,将所述待测边的两个端点所在的两个角记作第一待测角和第二待测角,以及根据权利要求1-7任一所述的方法对所述第一待测角和所述第二待测角的类型进行判断;以及
第一边判断模块,被配置为若所述第一待测角和所述第二待测角均为凹角,则确定所述待测边的类型为凹边,若所述第一待测角和所述第二待测角均为凸角,则确定所述待测边的类型为凸边,若所述第一待测角和所述第二待测角中的一个为凹角,另一个为凸角,则确定所述待测边的类型为凸凹边。
14.一种对集成电路进行模块级布局的装置,包括:
布局模块,被配置为对集成电路的多个电路模块进行布局;
第二边判断模块,被配置为根据权利要求9所述的方法对所述多个电路模块进行布局时对应的直角多边形的所有边的类型进行判断;以及
第二检查模块,被配置为对所述直角多边形的所有边中除了凹边外的其它边的长度进行设计规则检查,以确认所述集成电路的模块级布局是否符合设计规则。
15.一种判断设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-10任一所述的方法。
16.一种存储介质,用于存储非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时可以实现权利要求1-10任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011179732.3A CN112347731B (zh) | 2020-10-29 | 2020-10-29 | 集成电路模块级布局中判断直角多边形的角的类型的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011179732.3A CN112347731B (zh) | 2020-10-29 | 2020-10-29 | 集成电路模块级布局中判断直角多边形的角的类型的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112347731A CN112347731A (zh) | 2021-02-09 |
CN112347731B true CN112347731B (zh) | 2022-07-19 |
Family
ID=74356459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011179732.3A Active CN112347731B (zh) | 2020-10-29 | 2020-10-29 | 集成电路模块级布局中判断直角多边形的角的类型的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112347731B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208486A (zh) * | 2005-08-31 | 2008-06-25 | 吉野产业株式会社 | 建筑物的凸出转角结构和室内凹壁结构 |
EP2223810A2 (en) * | 2009-02-28 | 2010-09-01 | Kenji Kamiya | Bookmark |
CN104216235A (zh) * | 2014-08-15 | 2014-12-17 | 上海华力微电子有限公司 | 图形预处理方法以及测量图形密度的方法 |
CN107607612A (zh) * | 2017-08-11 | 2018-01-19 | 清华大学 | 基于漏磁信号的垂直分量的缺陷轮廓识别方法及装置 |
CN109634070A (zh) * | 2019-02-01 | 2019-04-16 | 墨研计算科学(南京)有限公司 | 一种基于掩模版拐角圆化的计算光刻方法及装置 |
CN111390248A (zh) * | 2020-03-18 | 2020-07-10 | 广州兴森快捷电路科技有限公司 | 电路板凸角的处理方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4575274B2 (ja) * | 2005-10-31 | 2010-11-04 | 富士通セミコンダクター株式会社 | パターンレイアウト、レイアウトデータの生成方法及び半導体装置 |
-
2020
- 2020-10-29 CN CN202011179732.3A patent/CN112347731B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208486A (zh) * | 2005-08-31 | 2008-06-25 | 吉野产业株式会社 | 建筑物的凸出转角结构和室内凹壁结构 |
EP2223810A2 (en) * | 2009-02-28 | 2010-09-01 | Kenji Kamiya | Bookmark |
CN104216235A (zh) * | 2014-08-15 | 2014-12-17 | 上海华力微电子有限公司 | 图形预处理方法以及测量图形密度的方法 |
CN107607612A (zh) * | 2017-08-11 | 2018-01-19 | 清华大学 | 基于漏磁信号的垂直分量的缺陷轮廓识别方法及装置 |
CN109634070A (zh) * | 2019-02-01 | 2019-04-16 | 墨研计算科学(南京)有限公司 | 一种基于掩模版拐角圆化的计算光刻方法及装置 |
CN111390248A (zh) * | 2020-03-18 | 2020-07-10 | 广州兴森快捷电路科技有限公司 | 电路板凸角的处理方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
"面向复杂机电产品的管路布局优化方法研究";曲艳峰;《中国优秀博硕士学位论文全文数据库(博士)工程科技Ⅱ辑》;20200315;第C029-3页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112347731A (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5726330B2 (ja) | 3次元物体の保護区域を計算するように構成された方法およびシステム | |
CN105447221A (zh) | 设计半导体装置的布局的方法 | |
KR102255450B1 (ko) | 반도체 장치의 레이아웃 설계 방법 | |
CN102759353A (zh) | 导航装置、确定高度坐标的方法和生成数据库的方法 | |
CN111815082B (zh) | 一种打磨路径规划方法、装置、电子设备及存储介质 | |
CN115906720A (zh) | 存储器的设计方法、装置、电子设备和存储介质 | |
CN114722745A (zh) | 湍流壁面距离计算方法、装置、计算机设备和存储介质 | |
CN112308969A (zh) | 三维地图生成方法及装置 | |
US20160132615A1 (en) | Device Arrangement Apparatus and Device Arrangement Method | |
CN112347731B (zh) | 集成电路模块级布局中判断直角多边形的角的类型的方法 | |
CN111079223B (zh) | 一种遮挡区域确定方法、装置、设备及存储介质 | |
CN114036721A (zh) | 微模块的三维温度云场的构建方法及装置 | |
US10169519B2 (en) | Area sharing between multiple large block synthesis (LBS) blocks | |
CN112712119A (zh) | 确定目标检测模型的检测准确率的方法和装置 | |
CN112802143A (zh) | 球面地图绘制方法、装置及存储介质 | |
CN108305329B (zh) | 一种构建模型的方法及终端 | |
US20170236315A1 (en) | Method and System for Merging of Polygons in Adjacent Tiles | |
CN112347727A (zh) | 一种支持圆弧边的填充型覆铜方法、系统、设备及存储介质 | |
CN117278935B (zh) | 基站选址的方法、装置、电子设备及可读存储介质 | |
CN116598219B (zh) | 一种可视化晶圆图的生成方法、装置及电子设备 | |
US11751491B2 (en) | Heavy-hex connection topology to rectilinear physical layout | |
CN110727755B (zh) | 一种地物形状规则化方法、电子设备及存储介质 | |
CN116631004A (zh) | 在空间内确定采样点的方法、系统、电子设备和存储介质 | |
CN116151431A (zh) | 一种资源规划配置方法、系统及电子设备 | |
CN117330038A (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 |