CN107633524A - 一种版图边界提取方法及装置 - Google Patents
一种版图边界提取方法及装置 Download PDFInfo
- Publication number
- CN107633524A CN107633524A CN201610565874.0A CN201610565874A CN107633524A CN 107633524 A CN107633524 A CN 107633524A CN 201610565874 A CN201610565874 A CN 201610565874A CN 107633524 A CN107633524 A CN 107633524A
- Authority
- CN
- China
- Prior art keywords
- rectangle
- submodule
- module
- summit
- 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.)
- Granted
Links
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明提供一种版图边界提取方法及装置,获取集成电路版图中每个矩形子模块的顶点;对集成电路版图中的矩形子模块进行边界提取;将模块与其他未组合的矩形子模块和/或者其他模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为集成电路版图;以组合成所述集成电路版图的组成主体的顶点为依据,对所述组成主体的边界进行整合,得到集成电路版图的边界,实现以矩形子模块和/或模块的顶点为依据,获取集成电路版图的边界,并且在以矩形子模块和/或模块的顶点为依据获取边界时,可以同时获取多个子模块和/或模块的顶点,实现对多个子模块和/或模块的边界提取。
Description
技术领域
本发明涉及集成电路版图技术领域,特别涉及一种版图边界提取方法及装置。
背景技术
随着半导体制造工艺和集成电路设计能力的不断进步,SoC(System-on-Chip,系统级芯片)中使用的存储器数目日益增多,由于在同一个设计中需要各种大小不同或结构不同的存储器,完全用全定制的方法设计这些存储器变得非常困难。存储器编译器作为用来生成不同大小与功能的存储器的有效工具而被广泛使用。
在存储器编译器的使用中,首先需要快速地获得所生成的存储器IP(Intellectual Property,硅知识产权)核的边界;并且为了保护存储器编译器开发方的核心技术,提供存储器IP核的接口信息给用户,该存储器IP核的接口信息包括边界。因此基于上述原因,快速的提取版图边界是存储器编译器的一项重要功能。
其中存储器IP核的边界是构成存储器IP核的集成电路版图的边界,在集成电路版图中,每个集成电路版图中的子模块都有一个多边形边界,所有子模块的多边形边界构成集成电路版图的边界。虽然目前已有版图边界提取方法,但是目前的版图边界提取方法是基于多边形分割为矩形子模块后的斜率计算,其中矩形子模块为所述集成电路中具有某种功能的电路。
发明内容
有鉴于此,本发明提供一种版图边界提取方法及装置,基于集成电路版图中每个矩形子模块的顶点得到集成电路版图的边界。技术方案如下:
本发明提供一种版图边界提取方法,包括:
获取集成电路版图中每个矩形子模块的顶点;
对所述集成电路版图中的矩形子模块进行边界提取,其中所述边界提取过程包括:将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界;
将所述模块与其他未组合的所述矩形子模块和/或者其他所述模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为所述集成电路版图;
以组合成所述集成电路版图的组成主体的顶点为依据,对所述组成主体的边界进行整合,得到集成电路版图的边界,其中所述组成主体为组成所述集成电路版图的模块的集合,或者所述组成主体为组成所述集成电路版图的模块和矩形子模块的集合。
优选地,将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界,包括:
将所述集成电路版图中相邻的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中,组合所述模块的两个矩形子模块中一个矩形子模块记为第一矩形子模块,另一个矩形子模块记为第二矩形子模块;
以所述第一矩形子模块和所述第二矩形子模块的顶点坐标为依据,获取所述第一矩形子模块相对于所述第二矩形子模块的插入点和结束点,以及所述第二矩形子模块相对于所述第一矩形子模块的开始点;
按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块的顶点从所述开始点起依次插入到所述第一矩形子模块的顶点中,得到所述模块的顶点集合,所述第二矩形子模块的顶点位于所述插入点和所述结束点之间;
以所述模块的顶点集合中的顶点顺序为依据,连接所述顶点集合中各个顶点以得到所述模块的边界。
优选地,按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块的顶点从所述开始点依次插入到所述第一矩形子模块的顶点中,包括:
当所述第二矩形子模块和所述第一矩形子模块中包括相同坐标的顶点时,从所述第二矩形子模块和所述第一矩形子模块中删除所述相同坐标的顶点;
按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块中剩余的顶点从所述开始点起依次插入到所述第一矩形子模块的剩余顶点中,所述第二矩形子模块中剩余的顶点位于所述插入点和所述结束点之间。
优选地,将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界,包括:
将所述集成电路版图中相连的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中;
获取所述模块的边界点,所述模块的边界点为仅包括在一个所述矩形子模块中的顶点;
基于所述模块的边界点坐标,获取所述模块的边界点顺序;
以所述模块的边界点顺序为依据,连接各个边界点以得到所述模块的边界。
优选地,获取所述模块的边界点,包括:
计算所述两个矩形子模块的顶点在两个所述矩形子模块中出现的次数,将出现次数为奇数的顶点作为所述模块的边界点;
或者
计算所述两个矩形子模块的顶点坐标,将坐标不相同的顶点作为所述模块的边界点。
优选地,将所述集成电路版图中相邻的至少两个矩形子模块进行组合,包括:按照矩形子模块顶点的X坐标从小到大的顺序进行扫描,将X坐标相同的顶点所在的矩形子模块进行组合。
本发明还提供一种版图边界提取装置,包括:
获取单元,用于获取集成电路版图中每个矩形子模块的顶点;
提取单元,用于对所述集成电路版图中的矩形子模块进行边界提取,其中所述边界提取过程包括:将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界;
组合单元,用于将所述模块与其他未组合的所述矩形子模块和/或者其他所述模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为所述集成电路版图;
整合单元,用于以组合成所述集成电路版图的组成主体的顶点为依据,对所述组成主体的边界进行整合,得到集成电路版图的边界,其中所述组成主体为组成所述集成电路版图的模块的集合,或者所述组成主体为组成所述集成电路版图的模块和矩形子模块的集合。
优选地,所述提取单元包括:
第一组合子单元,用于将所述集成电路版图中相邻的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中,组合所述模块的两个矩形子模块中一个矩形子模块记为第一矩形子模块,另一个矩形子模块记为第二矩形子模块;
第一获取子单元,用于以所述第一矩形子模块和所述第二矩形子模块的顶点坐标为依据,获取所述第一矩形子模块相对于所述第二矩形子模块的插入点和结束点,以及所述第二矩形子模块相对于所述第一矩形子模块的开始点;
插入子单元,用于按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块的顶点从所述开始点起依次插入到所述第一矩形子模块的顶点中,得到所述模块的顶点集合,所述第二矩形子模块的顶点位于所述插入点和所述结束点之间;
第一连接子单元,用于以所述模块的顶点集合中的顶点顺序为依据,连接所述顶点集合中各个顶点以得到所述模块的边界。
优选地,所述插入子单元,用于当所述第二矩形子模块和所述第一矩形子模块中包括相同坐标的顶点时,从所述第二矩形子模块和所述第一矩形子模块中删除所述相同坐标的顶点,并按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块中剩余的顶点从所述开始点起依次插入到所述第一矩形子模块的剩余顶点中,所述第二矩形子模块中剩余的顶点位于所述插入点和所述结束点之间。
优选地,所述提取单元包括:
第二组合子单元,用于将所述集成电路版图中相连的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中;
第二获取子单元,用于获取所述模块的边界点,所述模块的边界点为仅包括在一个所述矩形子模块中的顶点;
第三获取子单元,用于基于所述模块的边界点坐标,获取所述模块的边界点顺序;
第二连接子单元,用于以所述模块的边界点顺序为依据,连接各个边界点以得到所述模块的边界。
优选地,所述第二获取子单元,用于计算所述两个矩形子模块的顶点在两个所述矩形子模块中出现的次数,将出现次数为奇数的顶点作为所述模块的边界点;
或者
所述第二获取子单元,用于计算所述两个矩形子模块的顶点坐标,将坐标不相同的顶点作为所述模块的边界点。
优选地,所述提取单元将所述集成电路版图中相邻的至少两个矩形子模块进行组合,包括:按照矩形子模块顶点的X坐标从小到大的顺序进行扫描,将X坐标相同的顶点所在的矩形子模块进行组合。
与现有技术相比,本发明包括以下优点:
通过上述技术方案可知,本发明提供的版图边界提取方法及装置以矩形子模块和/或模块的顶点为依据,获取组合后得到的模块和集成电路版图的边界。相对于现有基于多边形分割为矩形子模块后的斜率来说提供一种新的版图边界提取方法及装置,并且在以矩形子模块和/或模块的顶点为依据获取边界时,可以同时获取多个子模块和/或模块的顶点,实现对多个子模块和/或模块的边界提取。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的版图边界提取方法的流程图;
图2是本发明实施例提供的集成电路版图的一种示意图;
图3是本发明实施例提供的版图边界提取方法中以顶点为基础提取边界的流程图;
图4是本发明实施例提供的集成电路版图中矩形子模块组合的一种示意图;
图5是本发明实施例提供的集成电路版图中矩形子模块组合的另一种示意图;
图6是本发明实施例提供的版图边界提取方法中构建模块的边界的流程图;
图7是本发明实施例提供的集成电路版图中边界点的示意图;
图8是应用本发明实施例提供的版图边界提取方法得到的边界的示意图;
图9是本发明实施例提供的版图边界提取装置的结构示意图;
图10是本发明实施例提供的版图边界提取装置中提取单元的一种结构示意图;
图11是本发明实施例提供的版图边界提取装置中提取单元的另一种结构示意图。
具体实施方式
为了使本领域技术人员更好地理解本发明实施例,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种版图边界提取方法的流程图,可以包括以下步骤:
101:获取集成电路版图中每个矩形子模块的顶点。
在本发明实施例中,集成电路版图包括多个矩形子模块,在获取到需要提取边界的集成电路版图后,首先获取集成电路版图中每个矩形子模块的顶点。
为了便于记录矩形子模块的顶点,还可以对集成电路版图中的矩形子模块进行编号。如某个集成电路版图包括五个矩形子模块,则对这五个矩形子模块依次编号为1、2、3、4和5,然后按照编号1至5的顺序获取五个矩形子模块的顶点,降低重复获取某个矩形子模块顶点的概率。
102:对集成电路版图中的矩形子模块进行边界提取,其中边界提取过程包括:将集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界。
在组合矩形子模块时可以将相邻的两个矩形子模块进行组合,当然也可以将相邻的多个矩形子模块进行组合,对此本发明并不加以限制。并且在组合矩形子模块时任意一个矩形子模块仅可以被组合一次,即任意一个矩形子模块仅包括在组合得到的一个模块中,这样组合后的模块数量降低,相应的降低计算模块边界的次数。
如图2所示的集成电路版图的示意图,该集成电路版图中包括编号为1至5的五个矩形子模块,记为矩形子模块1、矩形子模块2、矩形子模块3、矩形子模块4和矩形子模块5。在对其进行矩形子模块组合时,可以对矩形子模块1和矩形子模块2进行组合,同时将矩形子模块3和矩形子模块5进行组合。当然也可以仅对矩形子模块1和矩形子模块2进行组合,或者仅对矩形子模块1、矩形子模块2和矩形子模块3进行组合。
现有集成电路版图中,有一些矩形子模块共用顶点甚至是该共用顶点的两个边重叠,如图2中,矩形子模块1和矩形子模块2这两个矩形子模块中有一个共用顶点,且该共用顶点的边重叠,因此在组合矩形子模块时可以将共用顶点的矩形子模块进行组合,这样在第一次组合过程中,可以把共用顶点一次性删除,加快边界提取速度。其组合方法如下:
按照X坐标从小到大的顺序扫描各个矩形子模块,当扫描到有共用顶点的矩形子模块(即X坐标相同的顶点所在的矩形子模块),则将该共用顶点的矩形子模块存入到同一个集合中,相反没有共用顶点的矩形子模块存入到不同的集合中。如图2所示,虚线框内的编号为按照X坐标从小到大的顺序记录的各个矩形子模块的编号。
在坐标1处仅有矩形子模块1,则将矩形子模块1存入到集合1中;在坐标2处仅有矩形子模块4,则将矩形子模块4存入到集合2中;在坐标3处有矩形子模块1和矩形子模块2,则将矩形子模块2存入到集合1中;在坐标4处仅有矩形子模块5,则将矩形子模块5存入到集合3中;在坐标5处有矩形子模块2和矩形子模块3,则将矩形子模块3存入到集合1中。
经过上述扫描,得到三个矩形子模块的集合,分别是集合1(矩形子模块1、矩形子模块2、矩形子模块3),集合2(矩形子模块4)和集合3(矩形子模块5)。具有共用顶点的矩形子模块1和矩形子模块2、矩形子模块2和矩形子模块3被划分至一个集合中,则在进行矩形子模块组合时将矩形子模块1、矩形子模块2和矩形子模块3进行组合,相应的,各个集合内的矩形子模块组合形成对应的模块。
103:将模块与其他未组合的矩形子模块和/或者其他模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为集成电路版图。
104:以组合成集成电路版图的组成主体的顶点为依据,对组成主体的边界进行整合,得到集成电路版图的边界。
由于在矩形子模块组合时可以将至少两个矩形子模块进行组合,则可能在组合后剩余一个矩形子模块,所以组成电路版图的模块的组成主体可以是组成集成电路版图的模块和矩形子模块的集合。当然在组合时可以将部分矩形子模块组成一个模块,剩余矩形子模块组成另一个模块,则组成集成电路版图的模块的组成主体可以是组成集成电路版图的模块的集合。
仍以图2为例,当图2所示集成电路版图中的矩形子模块1、矩形子模块2和矩形子模块3组合成一个模块后,该模块再与矩形子模块4组成第二个模块,该第二个模块再与矩形子模块5组成第三个模块,该第三个模块即组成集成电路版图,其内的组成主体为:第二个模块和矩形子模块5。
假如图2所示集成电路版图在组合时,将矩形子模块1、矩形子模块2和矩形子模块4组合成第一个模块,矩形子模块3和矩形子模块5组合成第二个模块,则有第一个模块和第二个模块组成的第三个模块为集成电路版图,该第三个模块的组成主体为第一个模块和第二个模块。
并且在本发明实施例中,每组合一次都需要按照步骤102所示方式,提取组合后得到的模块的边界。对于步骤102来说其提取边界的一种方式可以是从一个矩形子模块的顶点中获取相对于其他模块的插入点和结束点,再将其他模块的顶点插入到插入点和结束点,完成对矩形子模块顶点的排序,以排序后的顶点构建模块的边界;另一种方式是:获取组合模块的矩形子模块的边界点以及边界点的排序,在以排序后的边界点构建模块的边界。
下面以图2所示集成电路版图,对两个矩形子模块组合为例对上述两种提取边界的方式进行说明,首先对插入点和结束点排序顶点的方式进行阐述,其流程图如图3所示,可以包括以下步骤:
201:将集成电路版图中相邻的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中,组合模块的两个矩形子模块中一个矩形子模块记为第一矩形子模块,另一个矩形子模块记为第二矩形子模块。
如图4所示集成电路版图,将矩形子模块A和矩形子模块B进行组合,且矩形子模块A和矩形子模块B仅在一个模块中组合,并且将矩形子模块A记为第一矩形子模块,矩形子模块B记为第二矩形子模块。
202:以第一矩形子模块和第二矩形子模块的顶点坐标为依据,获取第一矩形子模块相对于第二矩形子模块的插入点和结束点,以及第二矩形子模块相对于第一矩形子模块的开始点。
为了本领域技术人员更好地理解本发明实施例,首先对插入点和结束点进行说明,在图4中矩形子模块A(第一矩形子模块)是被合并矩形子模块,矩形子模块B(第二矩形子模块)是合并矩形子模块,在组合矩形子模块A和矩形子模块B的过程中,矩形子模块A在矩形子模块B中的前后位置分别称为矩形子模块A的插入点(如A1)和矩形子模块A的结束点(如A3)。矩形子模块B组合到矩形子模块A后的第一点被称为矩形子模块B的开始点(如B2)。其中前后位置是按照平面坐标系的惯例,顺时针方向为后,逆时针方向为前。
组合矩形子模块A和矩形子模块B的关键在于确定出不同集成电路版图是否有删除点,以及有无删除点的情况下确定插入点、结束点和开始点,其中确定插入点、结束点和开始点的基本情况有两种,其中删除点是连续出现在至少两个矩形子模块中的顶点,即第一矩形子模块和第二矩形子模块中具有相同坐标的顶点,如图4所示集成电路版图中矩形子模块A中的顶点A2和矩形子模块B中的顶点B1。
1、有删除点的情况:
从第一矩形子模块中的删除点出发,按照逆时针方向扫描到的第一个非删除点即第一矩形子模块相对于第二矩形子模块的插入点。例如,从矩形子模块A的删除点A2出发按照逆时针方向扫描到的第一个非删除点是A1,因此A1就是插入点。在实际操作过程时,除了采用按照逆时针方向扫描这种线性查找方式来说,还可以利用矩形子模块的顶点下标通过简单的模运算即可获取插入点。
其中矩形子模块的顶点下标是用于从数字1开始以阿拉伯数字顺序标记矩形子模块的顶点,如矩形子模块A中的顶点A1、A2、A3和A4。该模运算为(m+(n-1)%n),m为删除点的下标,n为矩形子模块的顶点个数。
从第一矩形子模块中删除点出发,按照顺时针方向扫描到的第一个非删除点即第一矩形子模块相对于第二矩形子模块的结束点。例如,从矩形子模块A的删除点A2出发按照顺时针方向扫描到的第一个非删除点是A3,因此A3就是结束点。在实际操作过程时,除了采用按照逆时针方向扫描这种线性查找方式来说,还可以利用矩形子模块的顶点下标通过简单的模运算即可获取结束点。
其中矩形子模块的顶点下标是用于从数字1开始以阿拉伯数字顺序标记矩形子模块的顶点,如矩形子模块A中的顶点A1、A2、A3和A4。该模运算为(m+1)%n,m为删除点的下标,n为矩形子模块的顶点个数。
相对于开始点来说,从第二矩形子模块的删除点出发,按照顺时针方向扫描到的第一个非删除点即第二矩形子模块相对于第一矩形子模块的开始点。如从矩形子模块B中删除点B1出发,按照顺时针方向扫描到的第一个非删除点是B2,因此B2就是B开始点。
2、没有删除点的情况:
获取第一矩形子模块和第二矩形子模块的相对位置,将相对位置较低或者相对靠左的矩形子模块记为被合并矩形子模块,另一个矩形子模块记为合并矩形子模块,其中相对位置的判定可以根据第一矩形子模块和第二矩形子模块的左下角顶点坐标来确定。
如图5矩形子模块A为被合并矩形子模块,矩形子模块B为合并矩形子模块,然后利用扫描线技术,按照从下向上和从左向右顺序扫描矩形子模块A的各个顶点,在扫描过程中扫描到矩形子模块A中相同的Y坐标的顶点,以顺时针顺序将矩形子模块A中相同的Y坐标的两个顶点是矩形子模块A的插入点和结束点,而从插入点出发顺时针扫描到的矩形子模块B中的第一个顶点即为开始点。
仍以图5为例,矩形子模块A中的顶点A1和A2为插入点和结束点,从插入点A1顺时针扫描遇到的矩形子模块B中的顶点B1为开始点。
203:按照第二矩形子模块的顶点顺序,将第二矩形子模块的顶点从开始点起依次插入到第一矩形子模块的顶点中,得到模块的顶点集合,第二矩形子模块的顶点位于插入点和结束点之间。
204:以模块的顶点集合中的顶点顺序为依据,连接顶点集合中各个顶点以得到模块的边界。
在确定出插入点、结束点和开始点后,则需要对两个矩形子模块进行合并以提取出边界,其提取边界的过程也针对有删除点和无删除点两种情况,其中有删除点的情况,首先将删除点从两个矩形子模块中都去掉。然后将第二矩形子模块中剩余的顶点从开始点起依次插入到第一矩形子模块的剩余顶点中,第二矩形子模块中剩余的顶点位于插入点和结束点之间。
以图4为例,删除A2(B1)后,将(B2,B3,B4)插入到(A1,A3,A4)的A1和A3之间,得到模块的顶点集合(A1,B2,B3,B4,A3,A4),在将该顶点集合中的顶点集合则正是组合得到的模块的边界。
在无删除点的情况下,则直接从开始点起依次插入到第一矩形子模块的插入点和结束点之间,以图5为例,将(B1,B2,B3,B4)插入到(A1,A2,A3,A4)的A1和A2之间,得到模块的顶点集合(A1,B1,B2,B3,B4,A2,A3,A4),在将该顶点集合中的顶点集合则正是组合得到的模块的边界。
在本发明实施例中,以排序后的边界点构建模块的边界的流程图可以参阅图6所示,可以包括以下步骤:
601:将集成电路版图中相连的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中。
602:获取模块的边界点,模块的边界点为仅包括在一个矩形子模块中的顶点。其中获取模块的边界点的一种方式可以是:计算两个矩形子模块的顶点在两个矩形子模块中出现的次数,将出现次数为奇数的顶点作为模块的边界点。
如图7所示,首先对图7所示集成电路版图中各矩形子模块进行编号,编号方法任意,然后按照编号顺序对矩形子模块的顶点进行计数,如顶点1出现一次,顶点5出现两次(分别作为矩形子模块1的右下角和矩形子模块3的左下角),将出现次数为奇数的顶点作为模块的边界点。
另一种方式可以是:计算两个矩形子模块的顶点坐标,将坐标不相同的顶点作为模块的边界点。如图7中,顶点1和顶点2坐标不同,则顶点1和顶点2为边界点。
603:基于模块的边界点坐标,获取模块的边界点顺序。其获取过程以图6所示集成电路版图为例进行阐述,假设按顺时针顺序排列,并以图6中编号为1、2、3、4四个点为例,方法如下:
步骤1、将X坐标相同的点组织为一个列表,并按照Y坐标从小到大排序,得到(1,2)和(4,3)两个列表。
步骤2、将Y坐标相同的点组织为一个列表,并按照X坐标从小到大排序,得到(1),(2,3)和(4)三个列表。
步骤3、选择X列表中的Y值最小的点作为第一个点,即点1。找到后设置为当前点。
步骤4、在X列表中查找当前点的后一个点,即点2,并将点2作为当前点。然后在Y列表中查找当前点的后一个点,即点3。然后再次在x列表中查找点3的后一个点,即点4,至此获取到边界点的顺序,为1-2-3-4。
604:以模块的边界点顺序为依据,连接各个边界点以得到模块的边界。基于图6所示方式最终获取到的图7所示的集成电路版图的边界如图8所示。
从上述技术方案可知,本发明实施例提供的版图边界提取方法以矩形子模块和/或模块的顶点为依据,获取组合后得到的模块和集成电路版图的边界。相对于现有基于多边形分割为矩形子模块后的斜率来说提供一种新的版图边界提取方法,并且在以矩形子模块和/或模块的顶点为依据获取边界时,可以同时获取多个子模块和/或模块的顶点,实现对多个子模块和/或模块的边界提取。
与上述方法实施例相对应,本发明实施例还提供一种版图边界提取装置,其结构示意图如图9所示,可以包括:获取单元11、提取单元12、组合单元13和整合单元14。
获取单元11,用于获取集成电路版图中每个矩形子模块的顶点。为了便于记录矩形子模块的顶点,还可以对集成电路版图中的矩形子模块进行编号。如某个集成电路版图包括五个矩形子模块,则对这五个矩形子模块依次编号为1、2、3、4和5,然后按照编号1至5的顺序获取五个矩形子模块的顶点,降低重复获取某个矩形子模块顶点的概率。
提取单元12,用于对集成电路版图中的矩形子模块进行边界提取,其中边界提取过程包括:将集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界。
在组合矩形子模块时可以将相邻的两个矩形子模块进行组合,当然也可以将相邻的多个矩形子模块进行组合,对此本发明并不加以限制。并且在组合矩形子模块时任意一个矩形子模块仅可以被组合一次,即任意一个矩形子模块仅包括在组合得到的一个模块中,这样组合后的模块数量降低,相应的降低计算模块边界的次数。具体的,提取单元12可以以以下方式进行组合:
按照矩形子模块顶点的X坐标从小到大的顺序进行扫描,将X坐标相同的顶点所在的矩形子模块进行组合,这样可以将在X坐标相同的顶点下的矩形子模块组合到同一个模块中,从而将多个矩形子模块的共用顶点一次性删除,加快边界提取速度。
组合单元13,用于将模块与其他未组合的矩形子模块和/或者其他模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为集成电路版图,即组合单元13每组合一次,需要触发提取单元12对组合后得到的模块进行边界提取。
在本发明实施例中,提取单元12可以采用两种方式进行边界提取,其中一种方式可以是从一个矩形子模块的顶点中获取相对于其他模块的插入点和结束点,再将其他模块的顶点插入到插入点和结束点,完成对矩形子模块顶点的排序,以排序后的顶点构建模块的边界;另一种方式是:获取组合模块的矩形子模块的边界点以及边界点的排序,在以排序后的边界点构建模块的边界。
相对应的,提取单元12在采用上述两种方式时,其各自对应的结构如图10和图11所示。请参阅图10,其示出了本发明实施例提供的提取单元12的一种结构示意图,其以插入点和结束点排序顶点的顺序,并以排序后的顶点构建模块的边界。具体的提取单元12可以包括:第一组合子单元121、第一获取子单元122、插入子单元123和第一连接子单元124。
第一组合子单元121,用于将集成电路版图中相邻的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中,组合模块的两个矩形子模块中一个矩形子模块记为第一矩形子模块,另一个矩形子模块记为第二矩形子模块。
第一获取子单元122,用于以第一矩形子模块和第二矩形子模块的顶点坐标为依据,获取第一矩形子模块相对于第二矩形子模块的插入点和结束点,以及第二矩形子模块相对于第一矩形子模块的开始点。
插入子单元123,用于按照第二矩形子模块的顶点顺序,将第二矩形子模块的顶点从开始点起依次插入到第一矩形子模块的顶点中,得到模块的顶点集合,第二矩形子模块的顶点位于插入点和结束点之间。
例如插入子单元123可以在第二矩形子模块和第一矩形子模块中包括相同坐标的顶点时,从第二矩形子模块和第一矩形子模块中删除相同坐标的顶点,并按照第二矩形子模块的顶点顺序,将第二矩形子模块中剩余的顶点从开始点起依次插入到第一矩形子模块的剩余顶点中,第二矩形子模块中剩余的顶点位于插入点和结束点之间。
第一连接子单元124,用于以模块的顶点集合中的顶点顺序为依据,连接顶点集合中各个顶点以得到模块的边界。
请参阅图11,其示出了本发明实施例提供的提取单元12的另一种结构示意图,其以边界点来构建模块的边界。具体的提取单元12可以包括:第二组合子单元125、第二获取子单元126、第三获取子单元127和第二连接子单元128。
第二组合子单元125,用于将集成电路版图中相连的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中。
第二获取子单元126,用于获取模块的边界点,模块的边界点为仅包括在一个矩形子模块中的顶点。其中获取模块的边界点的一种方式可以是:计算两个矩形子模块的顶点在两个矩形子模块中出现的次数,将出现次数为奇数的顶点作为模块的边界点。
另一种方式可以是:计算两个矩形子模块的顶点坐标,将坐标不相同的顶点作为模块的边界点。如图7中,顶点1和顶点2坐标不同,则顶点1和顶点2为边界点。
第三获取子单元127,用于基于模块的边界点坐标,获取模块的边界点顺序。
第二连接子单元128,用于以模块的边界点顺序为依据,连接各个边界点以得到模块的边界。
上述图10和图11所示提取单元12中各个子单元的具体执行过程可以参阅方法实施例部分的相关说明,对此本发明实施例不再阐述。
整合单元14,用于以组合成集成电路版图的组成主体的顶点为依据,对组成主体的边界进行整合,得到集成电路版图的边界,其中组成主体为组成集成电路版图的模块的集合,或者组成主体为组成集成电路版图的模块和矩形子模块的集合。
由于在矩形子模块组合时可以将至少两个矩形子模块进行组合,则可能在组合后剩余一个矩形子模块,所以组成电路版图的模块的组成主体可以是组成集成电路版图的模块和矩形子模块的集合。当然在组合时可以将部分矩形子模块组成一个模块,剩余矩形子模块组成另一个模块,则组成集成电路版图的模块的组成主体可以是组成集成电路版图的模块的集合。
仍以图2为例,当图2所示集成电路版图中的矩形子模块1、矩形子模块2和矩形子模块3组合成一个模块后,该模块再与矩形子模块4组成第二个模块,该第二个模块再与矩形子模块5组成第三个模块,该第三个模块即组成集成电路版图,其内的组成主体为:第二个模块和矩形子模块5。
假如图2所示集成电路版图在组合时,将矩形子模块1、矩形子模块2和矩形子模块4组合成第一个模块,矩形子模块3和矩形子模块5组合成第二个模块,则有第一个模块和第二个模块组成的第三个模块为集成电路版图,该第三个模块的组成主体为第一个模块和第二个模块。
从上述技术方案可知,本发明实施例提供的版图边界提取装置以矩形子模块和/或模块的顶点为依据,获取组合后得到的模块和集成电路版图的边界。相对于现有基于多边形分割为矩形子模块后的斜率来说提供一种新的版图边界提取装置,并且在以矩形子模块和/或模块的顶点为依据获取边界时,可以同时获取多个子模块和/或模块的顶点,实现对多个子模块和/或模块的边界提取。
需要说明的是,本说明书中的每个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,每个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的版图边界提取方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种版图边界提取方法,其特征在于,包括:
获取集成电路版图中每个矩形子模块的顶点;
对所述集成电路版图中的矩形子模块进行边界提取,其中所述边界提取过程包括:将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界;
将所述模块与其他未组合的所述矩形子模块和/或者其他所述模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为所述集成电路版图;
以组合成所述集成电路版图的组成主体的顶点为依据,对所述组成主体的边界进行整合,得到集成电路版图的边界,其中所述组成主体为组成所述集成电路版图的模块的集合,或者所述组成主体为组成所述集成电路版图的模块和矩形子模块的集合。
2.根据权利要求1所述的方法,其特征在于,将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界,包括:
将所述集成电路版图中相邻的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中,组合所述模块的两个矩形子模块中一个矩形子模块记为第一矩形子模块,另一个矩形子模块记为第二矩形子模块;
以所述第一矩形子模块和所述第二矩形子模块的顶点坐标为依据,获取所述第一矩形子模块相对于所述第二矩形子模块的插入点和结束点,以及所述第二矩形子模块相对于所述第一矩形子模块的开始点;
按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块的顶点从所述开始点起依次插入到所述第一矩形子模块的顶点中,得到所述模块的顶点集合,所述第二矩形子模块的顶点位于所述插入点和所述结束点之间;
以所述模块的顶点集合中的顶点顺序为依据,连接所述顶点集合中各个顶点以得到所述模块的边界。
3.根据权利要求2所述的方法,其特征在于,按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块的顶点从所述开始点依次插入到所述第一矩形子模块的顶点中,包括:
当所述第二矩形子模块和所述第一矩形子模块中包括相同坐标的顶点时,从所述第二矩形子模块和所述第一矩形子模块中删除所述相同坐标的顶点;
按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块中剩余的顶点从所述开始点起依次插入到所述第一矩形子模块的剩余顶点中,所述第二矩形子模块中剩余的顶点位于所述插入点和所述结束点之间。
4.根据权利要求1所述的方法,其特征在于,将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界,包括:
将所述集成电路版图中相连的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中;
获取所述模块的边界点,所述模块的边界点为仅包括在一个所述矩形子模块中的顶点;
基于所述模块的边界点坐标,获取所述模块的边界点顺序;
以所述模块的边界点顺序为依据,连接各个边界点以得到所述模块的边界。
5.根据权利要求4所述的方法,其特征在于,获取所述模块的边界点,包括:
计算所述两个矩形子模块的顶点在两个所述矩形子模块中出现的次数,将出现次数为奇数的顶点作为所述模块的边界点;
或者
计算所述两个矩形子模块的顶点坐标,将坐标不相同的顶点作为所述模块的边界点。
6.根据权利要求1至5任意一项所述的方法,其特征在于,将所述集成电路版图中相邻的至少两个矩形子模块进行组合,包括:按照矩形子模块顶点的X坐标从小到大的顺序进行扫描,将X坐标相同的顶点所在的矩形子模块进行组合。
7.一种版图边界提取装置,其特征在于,包括:
获取单元,用于获取集成电路版图中每个矩形子模块的顶点;
提取单元,用于对所述集成电路版图中的矩形子模块进行边界提取,其中所述边界提取过程包括:将所述集成电路版图中相邻的至少两个矩形子模块进行组合,以组合的每个所述矩形子模块的顶点为依据,对组合的每个矩形子模块的边界进行整合,得到组合至少两个矩形子模块后形成的模块的边界;
组合单元,用于将所述模块与其他未组合的所述矩形子模块和/或者其他所述模块进行组合,每组合一次对组合后得到的模块进行边界提取直至组合后的模块为所述集成电路版图;
整合单元,用于以组合成所述集成电路版图的组成主体的顶点为依据,对所述组成主体的边界进行整合,得到集成电路版图的边界,其中所述组成主体为组成所述集成电路版图的模块的集合,或者所述组成主体为组成所述集成电路版图的模块和矩形子模块的集合。
8.根据权利要求7所述的装置,其特征在于,所述提取单元包括:
第一组合子单元,用于将所述集成电路版图中相邻的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中,组合所述模块的两个矩形子模块中一个矩形子模块记为第一矩形子模块,另一个矩形子模块记为第二矩形子模块;
第一获取子单元,用于以所述第一矩形子模块和所述第二矩形子模块的顶点坐标为依据,获取所述第一矩形子模块相对于所述第二矩形子模块的插入点和结束点,以及所述第二矩形子模块相对于所述第一矩形子模块的开始点;
插入子单元,用于按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块的顶点从所述开始点起依次插入到所述第一矩形子模块的顶点中,得到所述模块的顶点集合,所述第二矩形子模块的顶点位于所述插入点和所述结束点之间;
第一连接子单元,用于以所述模块的顶点集合中的顶点顺序为依据,连接所述顶点集合中各个顶点以得到所述模块的边界。
9.根据权利要求8所述的装置,其特征在于,所述插入子单元,用于当所述第二矩形子模块和所述第一矩形子模块中包括相同坐标的顶点时,从所述第二矩形子模块和所述第一矩形子模块中删除所述相同坐标的顶点,并按照所述第二矩形子模块的顶点顺序,将所述第二矩形子模块中剩余的顶点从所述开始点起依次插入到所述第一矩形子模块的剩余顶点中,所述第二矩形子模块中剩余的顶点位于所述插入点和所述结束点之间。
10.根据权利要求7所述的装置,其特征在于,所述提取单元包括:
第二组合子单元,用于将所述集成电路版图中相连的两个矩形子模块进行组合,且任意一个矩形子模块仅包括组合得到的一个模块中;
第二获取子单元,用于获取所述模块的边界点,所述模块的边界点为仅包括在一个所述矩形子模块中的顶点;
第三获取子单元,用于基于所述模块的边界点坐标,获取所述模块的边界点顺序;
第二连接子单元,用于以所述模块的边界点顺序为依据,连接各个边界点以得到所述模块的边界。
11.根据权利要求10所述的装置,其特征在于,所述第二获取子单元,用于计算所述两个矩形子模块的顶点在两个所述矩形子模块中出现的次数,将出现次数为奇数的顶点作为所述模块的边界点;
或者
所述第二获取子单元,用于计算所述两个矩形子模块的顶点坐标,将坐标不相同的顶点作为所述模块的边界点。
12.根据权利要求7至11任意一项所述的装置,其特征在于,所述提取单元将所述集成电路版图中相邻的至少两个矩形子模块进行组合,包括:按照矩形子模块顶点的X坐标从小到大的顺序进行扫描,将X坐标相同的顶点所在的矩形子模块进行组合。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610565874.0A CN107633524B (zh) | 2016-07-18 | 2016-07-18 | 一种版图边界提取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610565874.0A CN107633524B (zh) | 2016-07-18 | 2016-07-18 | 一种版图边界提取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107633524A true CN107633524A (zh) | 2018-01-26 |
CN107633524B CN107633524B (zh) | 2020-09-29 |
Family
ID=61112439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610565874.0A Active CN107633524B (zh) | 2016-07-18 | 2016-07-18 | 一种版图边界提取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107633524B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276748A1 (en) * | 2008-04-30 | 2009-11-05 | Leidy Robert K | Stitched circuitry region boundary indentification for stitched ic chip layout |
CN102063717A (zh) * | 2009-11-17 | 2011-05-18 | 瑞昱半导体股份有限公司 | 边缘检测装置以及应用于边缘检测装置的运算电路 |
CN103425829A (zh) * | 2013-08-06 | 2013-12-04 | 中国科学院微电子研究所 | 一种快速读取版图的方法 |
WO2014111961A1 (en) * | 2013-01-21 | 2014-07-24 | Datalogic Ip Tech S.R.L. | Describing objects using edge-pixel-feature descriptors |
CN104156958A (zh) * | 2014-08-06 | 2014-11-19 | 中国科学院生物物理研究所 | 一种电路板布线边缘提取方法及提取平台 |
US20140369593A1 (en) * | 2012-03-08 | 2014-12-18 | Kla-Tencor Corporation | Detection of thin lines for selective sensitivity during reticle inspection using processed images |
CN104794308A (zh) * | 2015-05-07 | 2015-07-22 | 西安电子科技大学 | 基于图像边缘检测的版图图像转换为cif文件方法 |
CN105513008A (zh) * | 2015-12-15 | 2016-04-20 | 天津津芯微电子科技有限公司 | 一种图像处理方法及装置 |
CN105551027A (zh) * | 2015-12-08 | 2016-05-04 | 沈阳东软医疗系统有限公司 | 一种边界跟踪方法及装置 |
-
2016
- 2016-07-18 CN CN201610565874.0A patent/CN107633524B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276748A1 (en) * | 2008-04-30 | 2009-11-05 | Leidy Robert K | Stitched circuitry region boundary indentification for stitched ic chip layout |
CN102063717A (zh) * | 2009-11-17 | 2011-05-18 | 瑞昱半导体股份有限公司 | 边缘检测装置以及应用于边缘检测装置的运算电路 |
US20140369593A1 (en) * | 2012-03-08 | 2014-12-18 | Kla-Tencor Corporation | Detection of thin lines for selective sensitivity during reticle inspection using processed images |
WO2014111961A1 (en) * | 2013-01-21 | 2014-07-24 | Datalogic Ip Tech S.R.L. | Describing objects using edge-pixel-feature descriptors |
CN103425829A (zh) * | 2013-08-06 | 2013-12-04 | 中国科学院微电子研究所 | 一种快速读取版图的方法 |
CN104156958A (zh) * | 2014-08-06 | 2014-11-19 | 中国科学院生物物理研究所 | 一种电路板布线边缘提取方法及提取平台 |
CN104794308A (zh) * | 2015-05-07 | 2015-07-22 | 西安电子科技大学 | 基于图像边缘检测的版图图像转换为cif文件方法 |
CN105551027A (zh) * | 2015-12-08 | 2016-05-04 | 沈阳东软医疗系统有限公司 | 一种边界跟踪方法及装置 |
CN105513008A (zh) * | 2015-12-15 | 2016-04-20 | 天津津芯微电子科技有限公司 | 一种图像处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
肖军 等: "集成电路版图的电路提取", 《微电子学》 * |
Also Published As
Publication number | Publication date |
---|---|
CN107633524B (zh) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Murata et al. | VLSI module placement based on rectangle-packing by the sequence-pair | |
CN103810317B (zh) | 基于图案重复使用的寄生提取的图案匹配 | |
CN102279874B (zh) | 用于交互制图的快速边路由 | |
CN106683167A (zh) | 复杂建筑物高精度模型自动建模方法 | |
Liu et al. | Identifying faces in a 2D line drawing representing a manifold object | |
Tanase et al. | Polygon decomposition based on the straight line skeleton | |
CN107680154A (zh) | 基于视图的体素几何参数提取方法 | |
TWI254459B (en) | Software product for and method of laying-out semiconductor device | |
EP1584050A1 (en) | Asic clock floor planning method and structure | |
CN101533525B (zh) | 一种用于地理信息系统中的点面叠加分析方法 | |
CN107633524A (zh) | 一种版图边界提取方法及装置 | |
CN107016714A (zh) | 一种闭合曲线图形填充方法 | |
Cayiroglu | A new method for machining feature extracting of objects using 2D technical drawings | |
Hsieh et al. | LiB: a cell layout generator | |
JP3308869B2 (ja) | 部品表示画像操作システムおよび方法 | |
CN105718702A (zh) | 一种Def库与3D集成电路bookshelf库转换的方法 | |
Mehta et al. | On the use of flexible, rectilinear blocks to obtain minimum-area floorplans in mixed block and cell designs | |
Németh et al. | 3D parallel thinning algorithms based on isthmuses | |
CN110211132A (zh) | 基于切片网络的点云语义分割改进算法 | |
Ling et al. | Scalable synthesis and clustering techniques using decision diagrams | |
Huang et al. | A pure quasi-human algorithm for solving the cuboid packing problem | |
Dong et al. | Buffer planning for 3D ICs | |
Veelaert | Concurrency of line segments in uncertain geometry | |
Valero et al. | 3d fpga resource management and fragmentation metric for hardware multitasking | |
JPS62192861A (ja) | 多角形の矩形分割方式 |
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 |