CN115731251A - Gds ii的分割方法、装置、计算机可读存储介质和电子设备 - Google Patents
Gds ii的分割方法、装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN115731251A CN115731251A CN202211521347.1A CN202211521347A CN115731251A CN 115731251 A CN115731251 A CN 115731251A CN 202211521347 A CN202211521347 A CN 202211521347A CN 115731251 A CN115731251 A CN 115731251A
- Authority
- CN
- China
- Prior art keywords
- gds
- file
- layout
- sub
- layout area
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本申请提供了一种GDS II的分割方法、装置、计算机可读存储介质和电子设备。获取GDS II文件,GDS II文件包括版图区域;根据运算需求,确定是否需要对GDS II文件中的版图区域进行分割;在需要对GDS II文件中的版图区域进行分割的情况下,将GDS II文件中的版图区域平均分割为四份,得到多个子版图区域。该方案中,通过将具有大量多边形的GDS II文件的版图区域进行分割,可以得到较小的子版图区域,这样子版图区域中的多边形数量也较少,可以对多个GDS II文件的子版图区域同时进行多线程运算,无需对单个大版图进行单线程运算,进而降低了时间成本,可以有效提升处理GDS II文件的效率。
Description
技术领域
本申请涉及图像处理技术领域,具体而言,涉及一种GDS II的分割方法、装置、计算机可读存储介质和电子设备。
背景技术
GDS II是一种二进制的数据库文件格式,通过分层的平面几何形状,来描述构建芯片的掩膜布局。GDS II的架构能够支持数十亿个多边形的掩膜,这种简单的架构也方便开发人员编写代码来操纵GDS II。由于GDS II能够支持数十亿个多边形,当开发人员对具有大量多边形的GDS II文件进行修改操作时,会消耗大量的时间成本。
发明内容
本申请的主要目的在于提供一种GDS II的分割方法、装置、计算机可读存储介质和电子设备,以解决现有技术中对具有大量多边形的GDS II文件进行修改操作时,会消耗大量的时间成本的问题。
根据本发明实施例的一个方面,提供了一种GDS II的分割方法,包括:获取GDS II文件,所述GDS II文件包括版图区域;获取运算需求,所述运算需求是指采用所述GDS II文件构建掩膜布局的需求;根据所述运算需求,确定是否需要对所述GDS II文件中的所述版图区域进行分割;在需要对所述GDS II文件中的所述版图区域进行分割的情况下,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域。
可选地,所述运算需求中还包括需求数量,所述需求数量是指需要参与运算的所述GDS II文件中的多边形的数量,根据所述运算需求,确定是否需要对所述GDS II文件中的所述版图区域进行分割,包括:在所述需求数量大于或者等于数量阈值的情况下,确定需要对所述GDS II文件中的所述版图区域进行分割;在所述需求数量小于所述数量阈值的情况下,确定不需要对所述GDS II文件中的所述版图区域进行分割。
可选地,所述方法还包括:获取存储所述GDS II文件所占用的存储空间;在所述存储空间大于或者等于存储容量阈值的情况下,确定需要对所述GDS II文件中的所述版图区域进行分割;在所述存储空间小于所述存储容量阈值的情况下,确定不需要对所述GDS II文件中的所述版图区域进行分割。
可选地,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域,包括:获取所述版图区域中各坐标点的坐标值;根据所述坐标点的所述坐标值,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域。
可选地,所述坐标值包括横坐标值和纵坐标值,根据所述坐标点的所述坐标值,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域,包括:在不满足预定条件的情况下,执行目标步骤至少一次,直到满足所述预定条件,所述目标步骤包括:根据所述坐标点的所述横坐标值和所述纵坐标值,将所述GDS II文件中的所述版图区域进行平均分割,得到四个所述子版图区域,其中,所述预定条件至少包括:分割后的多个版图区域的运行总时间小于分割前的运算时间。
可选地,在将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域的过程中,所述方法还包括:在所述GDS II文件中有图形占据至少两个所述子版图区域的情况下,确定所述图形为目标图形,根据所述目标图形的所述坐标点的所述坐标值,对所述版图区域进行分割,其中,所述目标图形属于分割后的一个所述子版图区域。
可选地,所述方法还包括:将多个所述子版图区域进行合并,得到合并后的版图区域。
根据本发明实施例的另一方面,还提供了一种GDS II的分割装置,包括:第一获取单元,用于获取GDS II文件,所述GDS II文件包括版图区域;第二获取单元,用于获取运算需求,所述运算需求是指采用所述GDS II文件构建掩膜布局的需求;第一确定单元,用于根据所述运算需求,确定是否需要对所述GDS II文件中的所述版图区域进行分割;分割单元,用于在需要对所述GDS II文件中的所述版图区域进行分割的情况下,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域
根据本发明实施例的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,所述程序执行任意一种所述的方法。
根据本发明实施例的再一方面,还提供了一种电子设备,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的方法。
在本发明实施例中,首先获取GDS II文件,之后获取运算需求,之后根据运算需求,确定是否需要对GDS II文件中的版图区域进行分割,最后在需要对GDS II文件中的版图区域进行分割的情况下,将GDS II文件中的版图区域平均分割为四份,得到多个子版图区域。该方案中,通过将具有大量多边形的GDS II文件的版图区域进行分割,可以得到较小的子版图区域,这样子版图区域中的多边形数量也较少,可以对多个GDS II文件的子版图区域同时进行多线程运算,无需对单个大版图进行单线程运算,进而降低了时间成本,可以有效提升处理GDS II文件的效率。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的一种GDS II的分割方法的流程示意图;
图2示出了根据本申请的实施例的一种GDS II的分割装置的结构示意图;
图3示出了又一种GDS II的分割方法的流程示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
正如背景技术中所说的,现有技术中对具有大量多边形的GDS II文件进行修改操作时,会消耗大量的时间成本,为了解决上述问题,本申请的一种典型的实施方式中,提供了一种GDS II的分割方法、装置、计算机可读存储介质和电子设备。
根据本申请的实施例,提供了一种GDS II的分割方法。
图1是根据本申请实施例的GDS II的分割方法的流程图。如图1所示,该方法包括以下步骤:
步骤S101,获取GDS II文件,上述GDS II文件包括版图区域;
上述的步骤S101中,可以采用C++来读取GDS II文件,当然,并不限于采用C++读取的方式,还可以采用其他的任何可行的算法或者应用来读取GDS II文件。
步骤S102,获取运算需求,上述运算需求是指采用上述GDS II文件构建掩膜布局的需求;
上述的步骤S102中,可以先获取到请求端的运算需求,这样后续可以根据运算需求来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割。
步骤S103,根据上述运算需求,确定是否需要对上述GDS II文件中的上述版图区域进行分割;
具体地,实际应用中的GDS II文件中的多边形数量可能是百万级别的,这样会造成对具有大量多边形的GDS II文件进行修改操作时,会消耗大量的时间成本,也有可能需要参与运算的GDS II文件中的多边形数量较少,因此,可以先确定是否需要对GDS II文件中的版图区域进行分割。
上述的步骤S103中,可以确定是否需要对GDS II文件中的版图区域进行分割,这样是由于部分运算需求所需要的运算量较大,或者GDS II文件运行时占用的系统内存较大,如果出现以上的情况,那么GDS II文件运算数量较大,或者GDS II文件运行缓慢,这样都会消耗大量的时间成本,因此,可以先确定是否需要对GDS II文件中的版图区域进行分割,如果确定不需要对GDS II文件中的版图区域进行分割的情况下,那么表明GDS II文件运算数量较小,或者GDS II文件运行较快,这时可以无需对GDS II文件中的版图区域进行分割。
步骤S104,在需要对上述GDS II文件中的上述版图区域进行分割的情况下,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域。
上述的步骤S104中,可以对版图区域需要拆分的数量进行设定,例如,可以为四份,当然,并不限于四份,还可以是4的n次方,具体需要拆分的数量还可以为其他的数量,通过对版图区域进行拆分,可以得到子版图区域,这样得到的子版图区域中的多边形数量较少,后续可以对GDS II文件的子版图区域进行修改,这样可以降低时间成本。
上述的方法中,首先获取GDS II文件,之后获取运算需求,之后根据运算需求,确定是否需要对GDS II文件中的版图区域进行分割,最后在需要对GDS II文件中的版图区域进行分割的情况下,将GDS II文件中的版图区域平均分割为四份,得到多个子版图区域。该方案中,通过将具有大量多边形的GDS II文件的版图区域进行分割,可以得到较小的子版图区域,这样子版图区域中的多边形数量也较少,可以对多个GDS II文件的子版图区域同时进行多线程运算,无需对单个大版图进行单线程运算,进而降低了时间成本,可以有效提升处理GDS II文件的效率。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
还需要说明的是,由于对GDS II文件进行分割操作也会有时间方面的损耗,因此如何用较短的时间得到最终的小版图区域会直接影响整体运算的效率,如果在分割这一步耗时过长,可能导致最终的运算时间不减反增。鉴于C++在高效率计算的特点,这里更推荐优选使用C++进行版图的分割操作。
对于确定是否需要对GDS II文件中的版图区域进行分割的方式有多种,可以采用需求数量来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割,本申请的一种实施例中,上述运算需求中还包括需求数量,上述需求数量是指需要参与运算的上述GDS II文件中的多边形的数量,根据上述运算需求,确定是否需要对上述GDS II文件中的上述版图区域进行分割,具体包括如下步骤:
步骤S1031,在上述需求数量大于或者等于数量阈值的情况下,确定需要对上述GDS II文件中的上述版图区域进行分割;
具体地,数量阈值可以是100,也可以是500,当然,并不限于这两种情况,还可以是其他任何可行的数量阈值。
步骤S1032,在上述需求数量小于上述数量阈值的情况下,确定不需要对上述GDSII文件中的上述版图区域进行分割。
上述的步骤S1031至步骤S1032中,由于部分运算需求所需要的运算量较大,那么GDS II文件运算数量较大,这样会消耗大量的时间成本,因此可以通过运算需求中的需求数量的大小来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割。
对于确定是否需要对GDS II文件中的版图区域进行分割的方式有多种,可以采用GDS II文件运行时的内存占系统内存的比例来进一步准确且高效地确定是否需要对GDSII文件中的版图区域进行分割,本申请的又一种实施例中,上述方法还包括如下步骤:
步骤S201,获取存储上述GDS II文件所占用的存储空间;
步骤S202,在上述存储空间大于或者等于存储容量阈值的情况下,确定需要对上述GDS II文件中的上述版图区域进行分割;
具体地,存储容量阈值可以是50MB,还可以是600MB,当然,并不限于这两种情况,还可以是其他任何可行的存储容量阈值。
步骤S203,在上述存储空间小于上述存储容量阈值的情况下,确定不需要对上述GDS II文件中的上述版图区域进行分割。
上述的步骤S201至步骤S203中,由于GDS II文件存储时所占用的存储空间较大,GDS II文件运行缓慢,这样会消耗大量的时间成本,因此可以通过存储GDS II文件所占用的存储空间的大小来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割。
为进一步更为高效地对版图区域进行分割,本申请的另一种实施例中,将上述GDSII文件中的上述版图区域平均分割为四份,得到多个子版图区域,具体包括如下步骤:
步骤S1041,获取上述版图区域中各坐标点的坐标值;
步骤S1042,根据上述坐标点的上述坐标值,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域。
对于实际上分割的过程,如果一次分割即可以满足需求,那么可以只对GDS II文件的版图区域进行一次分割,如果一次分割无法满足需求,那么可以对GDS II文件的版图区域进行多次分割,本申请的一种具体的实施例中,上述坐标值包括横坐标值和纵坐标值,根据上述坐标点的上述坐标值,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域,包括:在不满足预定条件的情况下,执行目标步骤至少一次,直到满足上述预定条件,上述目标步骤包括:根据上述坐标点的上述横坐标值和上述纵坐标值,将上述GDS II文件中的上述版图区域进行平均分割,得到四个上述子版图区域,其中,上述预定条件至少包括:分割后的多个版图区域的运行总时间小于分割前的运算时间。该实施例中,通过执行目标步骤可以对GDS II文件的版图区域进行分割,并且分割的次数为至少一次,直到满足预定条件,这样可以保证最后一次分割得到的子版图区域的运算速率较快。
例如,对于面积为100的版图区域,该版图区域的横坐标的范围是0-10,纵坐标的范围是0-10,执行目标步骤一次,可以得到四个子版图区域,那么对应地,各个子版图区域的坐标范围为:
第一子版图区域,横坐标的范围是0-5,纵坐标的范围是0-5;
第二子版图区域,横坐标的范围是0-5,纵坐标的范围是6-10;
第三子版图区域,横坐标的范围是6-10,纵坐标的范围是0-5;
第四子版图区域,横坐标的范围是6-10,纵坐标的范围是6-10。
在对GDS II文件的版图区域分割了一次的情况下,可以得到4个子版图区域,在对GDS II文件的版图区域分割了两次的情况下,可以得到16个子版图区域,在对GDS II文件的版图区域分割了三次的情况下,可以得到64个子版图区域,在对GDS II文件的版图区域分割了四次的情况下,可以得到256个子版图区域,以此类推。
具体地,在对GDS II文件中的版图区域进行平均分割后,还可以对得到的子版图区域构建索引,这样可以更加方便后续通过索引找到对应的子版图区域,也可以更加方便后续通过索引找到对应的图形。
进一步地,可以采用GDS II文件的版图区域进行for循环语句分割,具体分割的次数可以根据预定条件来设定,当然,并不限于for循环语句,还可以采用其他的循环语句,例如switch语句。
上述的步骤S1041至步骤S1042中,版图区域的分割可以提升GDS II文件运算的效率,分割得到的子版图区域由于多边形的数量较少,那么对应的子版图区域的运算效率也较高,也可以减少循环运算的次数,分割后的子版图区域的运算量可以缩短到原来的四分之一。
具体地,子版图区域的分割可以从两个方面提升运算的效率,第一个方面是分割得到的几个子版图区域可以通过多线程,调用多个CPU进行运算,进而将每个子版图区域的结果进行合并,得到最终的运算结果;第二个方面是通过分割可以减少for循环运算的次数,比如原来的GDS II文件有100个多边形,若不分割版图区域,需要进行100^2=10000次运算,如果将版图区域拆成4部分,每个子版图部分有25个多边形,一共需要进行4*(25^2)=2500次运算,运算量直接缩短为原来的四分之一。
由于对GDS II文件进行分割操作需要对版图区域内的多边形进行for循环操作,因此也会有时间方面的损耗,但是整体效率依然优于直接对大版图进行操作。
除了版图分割这类软件的方法可以提升运算效率,提升硬件也能提升运算效率,经测试,使用高主频的CPU,运算效率远远高于低主频的CPU。
在分割GDS II文件的版图区域的过程中,为了避免出现一个图形被分割到多个子区域,本申请的再一种实施例中,在将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域的过程中,上述方法还包括如下步骤:
步骤S301,在上述GDS II文件中有图形占据至少两个上述子版图区域的情况下,确定上述图形为目标图形,根据上述目标图形的上述坐标点的上述坐标值,对上述版图区域进行分割,其中,上述目标图形属于分割后的一个上述子版图区域。
具体地,如果目标图形又属于第一子版图区域,又属于第二子版图区域,那么可以将目标图形归属于这两个子版图区域的任意一个,一种方式是确定目标图形在两个子版图区域中所占的面积,可以将目标图形归属于占用面积较大的子版图区域,通过延长子版图区域的坐标范围即可以实现,另一种方式是通过冗余来对版图区域进行分割。
例如上述的实施例中,第一子版图区域,横坐标的范围是0-5,纵坐标的范围是0-5;第二子版图区域,横坐标的范围是0-5,纵坐标的范围是6-10,目标图形同时属于第一子版图区域和第二子版图区域,那么可以重新对第一子版图区域以及第二子版图区域的横纵坐标范围进行划分:
第一子版图区域,横坐标的范围是0-5,纵坐标的范围是0-8;
第二子版图区域,横坐标的范围是0-5,纵坐标的范围是9-10。
上述的步骤S301中,如果出现目标图形同时属于两个子版图区域,那么可以重新根据目标图像的坐标点的坐标值进行分割,这样可以避免目标图形被截断,保证了目标图形的完整性。
本申请的又一种具体的实施例中,上述方法还包括如下步骤:将多个上述子版图区域进行合并,得到合并后的版图区域。该实施例中,通过对GDS II文件的版图区域进行分割,可以降低对GDS II文件的操作的时间成本,分割后还需要将GDS II文件的版图区域传送给请求端,因此可以对多个子版图区域进行合并,得到合并后的版图区域,这样请求端依然可以通过合并后的版图区域进行运算。
本申请实施例还提供了一种GDS II的分割装置,需要说明的是,本申请实施例的GDS II的分割装置可以用于执行本申请实施例所提供的用于GDS II的分割方法。以下对本申请实施例提供的GDS II的分割装置进行介绍。
图2是根据本申请实施例的GDS II的分割装置的示意图。如图2所示,该装置包括:
第一获取单元10,用于获取GDS II文件,上述GDS II文件包括版图区域;
上述的第一获取单元,可以采用C++来读取GDS II文件,当然,并不限于采用C++读取的方式,还可以采用其他的任何可行的算法或者应用来读取GDS II文件。
第二获取单元20,用于获取运算需求,上述运算需求是指采用上述GDS II文件构建掩膜布局的需求;
上述的第二获取单元,可以先获取到请求端的运算需求,这样后续可以根据运算需求来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割。
第一确定单元30,用于根据上述运算需求,确定是否需要对上述GDS II文件中的上述版图区域进行分割;
具体地,实际应用中的GDS II文件中的多边形数量可能是百万级别的,这样会造成对具有大量多边形的GDS II文件进行修改操作时,会消耗大量的时间成本,也有可能需要参与运算的GDS II文件中的多边形数量较少,因此,可以先确定是否需要对GDS II文件中的版图区域进行分割。
上述的第一确定单元,可以确定是否需要对GDS II文件中的版图区域进行分割,这样是由于部分运算需求所需要的运算量较大,或者GDS II文件运行时占用的系统内存较大,如果出现以上的情况,那么GDS II文件运算数量较大,或者GDS II文件运行缓慢,这样都会消耗大量的时间成本,因此,可以先确定是否需要对GDS II文件中的版图区域进行分割,如果确定不需要对GDS II文件中的版图区域进行分割的情况下,那么表明GDS II文件运算数量较小,或者GDS II文件运行较快,这时可以无需对GDS II文件中的版图区域进行分割。
分割单元40,用于在需要对上述GDS II文件中的上述版图区域进行分割的情况下,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域。
上述的分割单元,可以对版图区域需要拆分的数量进行设定,例如,可以为四份,当然,并不限于四份,还可以是4的n次方,具体需要拆分的数量还可以为其他的数量,通过对版图区域进行拆分,可以得到子版图区域,这样得到的子版图区域中的多边形数量较少,后续可以对GDS II文件的子版图区域进行修改,这样可以降低时间成本。
上述的装置中,第一获取单元获取GDS II文件,第二获取单元获取运算需求,第一确定单元根据运算需求,确定是否需要对GDS II文件中的版图区域进行分割,分割单元在需要对GDS II文件中的版图区域进行分割的情况下,将GDS II文件中的版图区域平均分割为四份,得到多个子版图区域。该方案中,通过将具有大量多边形的GDS II文件的版图区域进行分割,可以得到较小的子版图区域,这样子版图区域中的多边形数量也较少,可以对多个GDS II文件的子版图区域同时进行多线程运算,无需对单个大版图进行单线程运算,进而降低了时间成本,可以有效提升处理GDS II文件的效率。
还需要说明的是,由于对GDS II文件进行分割操作也会有时间方面的损耗,因此如何用较短的时间得到最终的小版图区域会直接影响整体运算的效率,如果在分割这一步耗时过长,可能导致最终的运算时间不减反增。鉴于C++在高效率计算的特点,这里更推荐优选使用C++进行版图的分割操作。
对于确定是否需要对GDS II文件中的版图区域进行分割的方式有多种,可以采用需求数量来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割,本申请的一种实施例中,上述运算需求中还包括需求数量,上述需求数量是指需要参与运算的上述GDS II文件中的多边形的数量,第一确定单元包括第一确定模块和第二确定模块,各模块的功能如下:
第一确定模块,用于在上述需求数量大于或者等于数量阈值的情况下,确定需要对上述GDS II文件中的上述版图区域进行分割;
具体地,数量阈值可以是100,也可以是500,当然,并不限于这两种情况,还可以是其他任何可行的数量阈值。
第二确定模块,用于在上述需求数量小于上述数量阈值的情况下,确定不需要对上述GDS II文件中的上述版图区域进行分割。
上述的第一确定模块和第二确定模块,由于部分运算需求所需要的运算量较大,那么GDS II文件运算数量较大,这样会消耗大量的时间成本,因此可以通过运算需求中的需求数量的大小来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割。
对于确定是否需要对GDS II文件中的版图区域进行分割的方式有多种,可以采用GDS II文件运行时的内存占系统内存的比例来进一步准确且高效地确定是否需要对GDSII文件中的版图区域进行分割,本申请的又一种实施例中,上述装置还包括第三获取单元、第二确定单元和第三确定单元,各单元的功能如下:
第三获取单元,用于获取存储上述GDS II文件所占用的存储空间;
第二确定单元,用于在上述存储空间大于或者等于存储容量阈值的情况下,确定需要对上述GDS II文件中的上述版图区域进行分割;
具体地,存储容量阈值可以是50MB,还可以是600MB,当然,并不限于这两种情况,还可以是其他任何可行的存储容量阈值。
第三确定单元,用于在上述存储空间小于上述存储容量阈值的情况下,确定不需要对上述GDS II文件中的上述版图区域进行分割。
上述的第三获取单元、第二确定单元和第三确定单元,由于GDS II文件存储时所占用的存储空间较大,GDS II文件运行缓慢,这样会消耗大量的时间成本,因此可以通过存储GDS II文件所占用的存储空间的大小来进一步准确且高效地确定是否需要对GDS II文件中的版图区域进行分割。
为进一步更为高效地对版图区域进行分割,本申请的另一种实施例中,分割单元包括获取模块和分割模块,各模块的功能如下:
获取模块,用于获取上述版图区域中各坐标点的坐标值;
分割模块,用于根据上述坐标点的上述坐标值,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域。
对于实际上分割的过程,如果一次分割即可以满足需求,那么可以只对GDS II文件的版图区域进行一次分割,如果一次分割无法满足需求,那么可以对GDS II文件的版图区域进行多次分割,本申请的一种具体的实施例中,上述坐标值包括横坐标值和纵坐标值,分割模块包括分割子模块,分割子模块用于在不满足预定条件的情况下,执行目标步骤至少一次,直到满足上述预定条件,上述目标步骤包括:根据上述坐标点的上述横坐标值和上述纵坐标值,将上述GDS II文件中的上述版图区域进行平均分割,得到四个上述子版图区域,其中,上述预定条件至少包括:分割后的多个版图区域的运行总时间小于分割前的运算时间。该实施例中,通过执行目标步骤可以对GDS II文件的版图区域进行分割,并且分割的次数为至少一次,直到满足预定条件,这样可以保证最后一次分割得到的子版图区域的运算速率较快。
例如,对于面积为100的版图区域,该版图区域的横坐标的范围是0-10,纵坐标的范围是0-10,执行目标步骤一次,可以得到四个子版图区域,那么对应地,各个子版图区域的坐标范围为:
第一子版图区域,横坐标的范围是0-5,纵坐标的范围是0-5;
第二子版图区域,横坐标的范围是0-5,纵坐标的范围是6-10;
第三子版图区域,横坐标的范围是6-10,纵坐标的范围是0-5;
第四子版图区域,横坐标的范围是6-10,纵坐标的范围是6-10。
在对GDS II文件的版图区域分割了一次的情况下,可以得到4个子版图区域,在对GDS II文件的版图区域分割了两次的情况下,可以得到16个子版图区域,在对GDS II文件的版图区域分割了三次的情况下,可以得到64个子版图区域,在对GDS II文件的版图区域分割了四次的情况下,可以得到256个子版图区域,以此类推。
具体地,在对GDS II文件中的版图区域进行平均分割后,还可以对得到的子版图区域构建索引,这样可以更加方便后续通过索引找到对应的子版图区域,也可以更加方便后续通过索引找到对应的图形。
进一步地,可以采用GDS II文件的版图区域进行for循环语句分割,具体分割的次数可以根据预定条件来设定,当然,并不限于for循环语句,还可以采用其他的循环语句,例如switch语句。
上述的获取模块和分割模块,版图区域的分割可以提升GDS II文件运算的效率,分割得到的子版图区域由于多边形的数量较少,那么对应的子版图区域的运算效率也较高,也可以减少循环运算的次数,分割后的子版图区域的运算量可以缩短到原来的四分之一。
具体地,子版图区域的分割可以从两个方面提升运算的效率,第一个方面是分割得到的几个子版图区域可以通过多线程,调用多个CPU进行运算,进而将每个子版图区域的结果进行合并,得到最终的运算结果;第二个方面是通过分割可以减少for循环运算的次数,比如原来的GDS II文件有100个多边形,若不分割版图区域,需要进行100^2=10000次运算,如果将版图区域拆成4部分,每个子版图部分有25个多边形,一共需要进行4*(25^2)=2500次运算,运算量直接缩短为原来的四分之一。
由于对GDS II文件进行分割操作需要对版图区域内的多边形进行for循环操作,因此也会有时间方面的损耗,但是整体效率依然优于直接对大版图进行操作。
除了版图分割这类软件的方法可以提升运算效率,提升硬件也能提升运算效率,经测试,使用高主频的CPU,运算效率远远高于低主频的CPU。
在分割GDS II文件的版图区域的过程中,为了避免出现一个图形被分割到多个子区域,本申请的再一种实施例中,上述装置还包括处理单元,处理单元的功能如下:
处理单元,用于在将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域的过程中,在上述GDS II文件中有图形占据至少两个上述子版图区域的情况下,确定上述图形为目标图形,根据上述目标图形的上述坐标点的上述坐标值,对上述版图区域进行分割,其中,上述目标图形属于分割后的一个上述子版图区域。
具体地,如果目标图形又属于第一子版图区域,又属于第二子版图区域,那么可以将目标图形归属于这两个子版图区域的任意一个,一种方式是确定目标图形在两个子版图区域中所占的面积,可以将目标图形归属于占用面积较大的子版图区域,通过延长子版图区域的坐标范围即可以实现,另一种方式是通过冗余来对版图区域进行分割。
例如上述的实施例中,第一子版图区域,横坐标的范围是0-5,纵坐标的范围是0-5;第二子版图区域,横坐标的范围是0-5,纵坐标的范围是6-10,目标图形同时属于第一子版图区域和第二子版图区域,那么可以重新对第一子版图区域以及第二子版图区域的横纵坐标范围进行划分:
第一子版图区域,横坐标的范围是0-5,纵坐标的范围是0-8;
第二子版图区域,横坐标的范围是0-5,纵坐标的范围是9-10。
上述的处理单元,如果出现目标图形同时属于两个子版图区域,那么可以重新根据目标图像的坐标点的坐标值进行分割,这样可以避免目标图形被截断,保证了目标图形的完整性。
本申请的又一种具体的实施例中,上述装置还包括合并单元,合并单元用于将多个上述子版图区域进行合并,得到合并后的版图区域。该实施例中,通过对GDS II文件的版图区域进行分割,可以降低对GDS II文件的操作的时间成本,分割后还需要将GDS II文件的版图区域传送给请求端,因此可以对多个子版图区域进行合并,得到合并后的版图区域,这样请求端依然可以通过合并后的版图区域进行运算。
上述GDS II的分割装置包括处理器和存储器,上述第一获取单元、第二获取单元、第一确定单元和分割单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来当开发人员对具有大量多边形的GDS II文件进行修改操作时,降低时间成本。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现上述GDS II的分割方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述GDS II的分割方法。
本申请还提供了一种电子设备,包括一个或多个处理器,存储器以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置为由上述一个或多个处理器执行,上述一个或多个程序包括用于执行任意一种上述的方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,获取GDS II文件,上述GDS II文件包括版图区域;
步骤S102,获取运算需求,上述运算需求是指采用上述GDS II文件构建掩膜布局的需求;
步骤S103,根据上述运算需求,确定是否需要对上述GDS II文件中的上述版图区域进行分割;
步骤S104,在需要对上述GDS II文件中的上述版图区域进行分割的情况下,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,获取GDS II文件,上述GDS II文件包括版图区域;
步骤S102,获取运算需求,上述运算需求是指采用上述GDS II文件构建掩膜布局的需求;
步骤S103,根据上述运算需求,确定是否需要对上述GDS II文件中的上述版图区域进行分割;
步骤S104,在需要对上述GDS II文件中的上述版图区域进行分割的情况下,将上述GDS II文件中的上述版图区域平均分割为四份,得到多个子版图区域。
为了本领域技术人员能够更加清楚地了解本申请的技术方案,以下将结合具体的实施例来说明本申请的技术方案和技术效果。
实施例
本实施例涉及一种GDS II的分割方法,GDSII文件有很多层的掩膜构成,每层的掩膜中又有许多各种形状的图形,这些图形可能是规则的四边形,也可能是多边形。在本方案的版图拆分过程中涉及到for循环,当一个版图的某一层有百万个多边形时,将一个GDSII格式的大版图(版图区域)转换为多个GDSII格式的小版图(子版图区域)就需要消耗较多的时间。本方案使用了回溯算法,只对部分的图形进行for循环操作,能大幅减少拆分的时间,此外又将原来的算法从python转移到c++,由于c++的遍历效率远高于python,因此拆分时间又能降低,如图3所示,该方法包括:
读取GDSII文件,得到图形的坐标数据;
将读取的大版图通过for循环遍历,将原来的大版图一分为四,并以vector的形式存储(for循环每个多边形,用来判断多边形是否在目标区域中,如果在则加入到版图中,如果不在则舍弃);
再通过回溯法循环遍历,但此时遍历的对象不是大版图,而是对上一步得到的四个小版图分别进行遍历,得到16个中等大小的版图;
多次重复操作,直至版图的大小满足要求。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本方案的GDS II的分割方法,首先获取GDS II文件,之后获取运算需求,之后根据运算需求,确定是否需要对GDS II文件中的版图区域进行分割,最后在需要对GDS II文件中的版图区域进行分割的情况下,将GDS II文件中的版图区域平均分割为四份,得到多个子版图区域。该方案中,通过将具有大量多边形的GDS II文件的版图区域进行分割,可以得到较小的子版图区域,这样子版图区域中的多边形数量也较少,可以对多个GDS II文件的子版图区域同时进行多线程运算,无需对单个大版图进行单线程运算,进而降低了时间成本,可以有效提升处理GDS II文件的效率。
2)、本方案的GDS II的分割装置,第一获取单元获取GDS II文件,第二获取单元获取运算需求,第一确定单元根据运算需求,确定是否需要对GDS II文件中的版图区域进行分割,分割单元在需要对GDS II文件中的版图区域进行分割的情况下,将GDS II文件中的版图区域平均分割为四份,得到多个子版图区域。该方案中,通过将具有大量多边形的GDSII文件的版图区域进行分割,可以得到较小的子版图区域,这样子版图区域中的多边形数量也较少,可以对多个GDS II文件的子版图区域同时进行多线程运算,无需对单个大版图进行单线程运算,进而降低了时间成本,可以有效提升处理GDS II文件的效率。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种GDS II的分割方法,其特征在于,包括:
获取GDS II文件,所述GDS II文件包括版图区域;
获取运算需求,所述运算需求是指采用所述GDS II文件构建掩膜布局的需求;
根据所述运算需求,确定是否需要对所述GDS II文件中的所述版图区域进行分割;
在需要对所述GDS II文件中的所述版图区域进行分割的情况下,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域。
2.根据权利要求1所述的方法,其特征在于,所述运算需求中还包括需求数量,所述需求数量是指需要参与运算的所述GDS II文件中的多边形的数量,根据所述运算需求,确定是否需要对所述GDS II文件中的所述版图区域进行分割,包括:
在所述需求数量大于或者等于数量阈值的情况下,确定需要对所述GDS II文件中的所述版图区域进行分割;
在所述需求数量小于所述数量阈值的情况下,确定不需要对所述GDS II文件中的所述版图区域进行分割。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取存储所述GDS II文件所占用的存储空间;
在所述存储空间大于或者等于存储容量阈值的情况下,确定需要对所述GDS II文件中的所述版图区域进行分割;
在所述存储空间小于所述存储容量阈值的情况下,确定不需要对所述GDS II文件中的所述版图区域进行分割。
4.根据权利要求1所述的方法,其特征在于,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域,包括:
获取所述版图区域中各坐标点的坐标值;
根据所述坐标点的所述坐标值,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域。
5.根据权利要求4所述的方法,其特征在于,所述坐标值包括横坐标值和纵坐标值,根据所述坐标点的所述坐标值,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域,包括:
在不满足预定条件的情况下,执行目标步骤至少一次,直到满足所述预定条件,所述目标步骤包括:根据所述坐标点的所述横坐标值和所述纵坐标值,将所述GDS II文件中的所述版图区域进行平均分割,得到四个所述子版图区域,其中,所述预定条件至少包括:分割后的多个版图区域的运行总时间小于分割前的运算时间。
6.根据权利要求4所述的方法,其特征在于,在将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域的过程中,所述方法还包括:
在所述GDS II文件中有图形占据至少两个所述子版图区域的情况下,确定所述图形为目标图形,根据所述目标图形的所述坐标点的所述坐标值,对所述版图区域进行分割,其中,所述目标图形属于分割后的一个所述子版图区域。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将多个所述子版图区域进行合并,得到合并后的版图区域。
8.一种GDS II的分割装置,其特征在于,包括:
第一获取单元,用于获取GDS II文件,所述GDS II文件包括版图区域;
第二获取单元,用于获取运算需求,所述运算需求是指采用所述GDS II文件构建掩膜布局的需求;
第一确定单元,用于根据所述运算需求,确定是否需要对所述GDS II文件中的所述版图区域进行分割;
分割单元,用于在需要对所述GDS II文件中的所述版图区域进行分割的情况下,将所述GDS II文件中的所述版图区域平均分割为四份,得到多个子版图区域。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,所述程序执行权利要求1至7中任意一项所述的方法。
10.一种电子设备,其特征在于,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211521347.1A CN115731251A (zh) | 2022-11-30 | 2022-11-30 | Gds ii的分割方法、装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211521347.1A CN115731251A (zh) | 2022-11-30 | 2022-11-30 | Gds ii的分割方法、装置、计算机可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115731251A true CN115731251A (zh) | 2023-03-03 |
Family
ID=85299537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211521347.1A Pending CN115731251A (zh) | 2022-11-30 | 2022-11-30 | Gds ii的分割方法、装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115731251A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342625A (zh) * | 2023-03-30 | 2023-06-27 | 广东思沃激光科技有限公司 | 用于LDI曝光设备的gds图形分割方法 |
CN117576249A (zh) * | 2024-01-19 | 2024-02-20 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
-
2022
- 2022-11-30 CN CN202211521347.1A patent/CN115731251A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116342625A (zh) * | 2023-03-30 | 2023-06-27 | 广东思沃激光科技有限公司 | 用于LDI曝光设备的gds图形分割方法 |
CN116342625B (zh) * | 2023-03-30 | 2023-10-03 | 广东思沃激光科技有限公司 | 用于LDI曝光设备的gds图形分割方法 |
CN117576249A (zh) * | 2024-01-19 | 2024-02-20 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
CN117576249B (zh) * | 2024-01-19 | 2024-04-02 | 弈芯科技(杭州)有限公司 | 一种芯片版图数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115731251A (zh) | Gds ii的分割方法、装置、计算机可读存储介质和电子设备 | |
US9201697B2 (en) | System and method to reduce memory usage by optimally placing VMS in a virtualized data center | |
US10185590B2 (en) | Mobile and remote runtime integration | |
US10089024B2 (en) | Memory deduplication protection for memory pages | |
CN107368353B (zh) | 一种实现虚拟机内存热添加的方法和装置 | |
US11442835B1 (en) | Mobile and remote runtime integration | |
CN110825499B (zh) | 基于统一容器云平台的安全隔离的实现方法及装置 | |
CN113535087B (zh) | 数据迁移过程中的数据处理方法、服务器及存储系统 | |
CN113923472B (zh) | 视频内容分析方法、装置、电子设备及存储介质 | |
US10705865B2 (en) | Disk resize of a virtual machine | |
CN109621404B (zh) | 跨平台交互系统、方法、装置、计算机设备及存储介质 | |
EP3155523B1 (en) | Mobile and remote runtime integration | |
CN110955380B (zh) | 访存数据生成方法、存储介质、计算机设备和装置 | |
CN109614242B (zh) | 一种计算能力共享方法、装置、设备及介质 | |
CN113220368B (zh) | 一种存储客户端资源隔离方法、系统、终端及存储介质 | |
CN107577518B (zh) | 一种虚拟机部署方法及装置 | |
CN114237916B (zh) | 一种数据处理方法及相关设备 | |
CN113535215B (zh) | 一种虚拟机热升级方法、装置、设备以及存储介质 | |
CN115454343A (zh) | 一种基于raid芯片的数据处理方法、装置及介质 | |
CN111459634B (zh) | 任务调度方法、装置、终端及存储介质 | |
CN110347471B (zh) | 层级式显示组件系统、显示组件调用方法和装置 | |
CN114448909A (zh) | 基于ovs的网卡队列轮询方法、装置、计算机设备及介质 | |
Su et al. | Parallel BFS graph traversal on images using structured grid | |
CN112783823A (zh) | 共享代码的系统与代码共享方法 | |
CN115392175B (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 |