CN110543456B - 一种oasis文件快速读取方法、装置及计算机可读存储介质 - Google Patents
一种oasis文件快速读取方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110543456B CN110543456B CN201910840486.2A CN201910840486A CN110543456B CN 110543456 B CN110543456 B CN 110543456B CN 201910840486 A CN201910840486 A CN 201910840486A CN 110543456 B CN110543456 B CN 110543456B
- Authority
- CN
- China
- Prior art keywords
- character string
- unit name
- record
- oasis file
- string
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种oasis文件快速读取方法,包括以下步骤:1)确认单元名字表和文本字符串表为空;2)读取oasis文件中的记录;3)根据读取oasis文件中的记录类型,分别创建参考数字对应的字符串或单元名字字符串对应的字符串,构建单元名字表和文本字符串表;4)根据构建的单元名字表和文本字符串表,对所述参考数字对应的字符串或所述单元名字字符串对应的字符串进行修改。本发明的oasis文件快速读取方法,通过一遍读取过程完成oasis文件的读取,大大提升了oasis文件的读取速度。
Description
技术领域
本发明涉及半导体集成电路设计自动化技术领域,特别涉及一种oasis文件读取方法。
背景技术
oasis是用来表示光刻版图的一种文件格式,上面记录了光刻图案。作为gdsii文件的替代格式,和gdsii类似是一种流格式的文件。oasis采用变形的BNF语法来描述文件格式,并且有自己的数据类型表示方法。oasis文件比gdsii文件紧凑10到50倍,目前正获得领先DEA工具供应商的广泛支持。
版图的后端设计中,通常需要读取两次oasis文件才能完成oasis文件的读取,但是在面对超大规模版图,如AMD/Intel/NVIDIA的芯片,其版图规模会达到几十甚至上百Goasis,此时采用两遍读取过程会使读取速度很慢,降低了工作效率。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种oasis文件快速读取方法,旨在实现通过一遍读取过程完成oasis文件的读取,相比于通过两遍读取过程完成oasis文件读取方法,达到提高oasis文件读取速度的目的。
为实现上述目的,本发明提供的oasis文件快速读取方法,包括以下步骤:
1)确认单元名字表和文本字符串表为空;
2)读取oasis文件中的记录;
3)根据读取oasis文件中的记录类型,分别创建参考数字对应的字符串或单元名字字符串对应的字符串,构建单元名字表和文本字符串表;
4)根据构建的单元名字表和文本字符串表,对所述参考数字对应的字符串或所述单元名字字符串对应的字符串进行修改。
进一步地,所述步骤3)进一步包括,
当读取到记录类型为参考数字时,创建与参考数字对应的字符串;
当读取到记录类型为单元名字字符串时,创建与单元名字字符串对应的字符串。
进一步地,所述步骤3)进一步包括,
当读取到记录类型为单元名字字符串时,根据记录的单元名字字符串,创建和完善单元名字表;
当读取到记录类型为单元名字字符串和参考数字时,根据记录的单元名字字符串和参考数字,创建和完善单元名字表。
更进一步地,所述步骤3)进一步包括,
当读取到记录类型为文本字符串时,根据记录的文本字符串,创建和完善文本字符串表;
当读取到记录类型为文本字符串和参考数字时,根据记录的文本字符串和参考数字,创建和完善文本字符串表。
为实现上述目的,本发明至少一个实施例提供一种oasis文件快速读取装置,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时,实现上述oasis文件快速读取方法的步骤。
为实现上述目的,本发明至少一个实施例提供一种计算机可读存储介质,其上存储有程序,所述程序可被处理器执行,实现上述oasis文件快速读取方法的步骤。
相对比于需要两遍读取过程才能完成oasis文件读取方法,其第一遍读取过程解析<name>记录,构建单元名字表和文本字符串表;第二遍读取过程借助第一遍构建的单元名字表和文本字符串表,解析除<name>记录之外的所有的记录。本发明提供的方法将两遍读取过程优化为一遍读取过程,在单元名字表和文本字符串表为空的情况下,文件解析函数依次读取oasis文件中的记录,并对不同的记录进行对应的处理。
本方法实现通过一遍读取过程完成oasis文件的读取,相比于通过两遍读取过程完成oasis文件读取方法,在面对超大规模版图,如AMD/Intel/NVIDIA的芯片,其版图规模会达到几十G,甚至上百G的情况下,本方法显然读取速度更快。
本发明采用的方法实现通过一遍读取过程完成oasis文件的读取,比背景技术中通过两遍读取过程完成oasis文件读取方法,要少一遍读取过程,这将大大提升oasis文件的读取速度。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的oasis文件快速读取方法的流程图;
图2为根据本发明的读取到的记录类型为‘13’或‘14’时的工作流程图;
图3为根据本发明的读取到的记录类型为‘3’或‘4’时的工作流程图;
图4为根据本发明的读取到的记录类型为‘5’或‘6’时的工作流程图;
图5为根据本发明的oasis文件快速读取装置框图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
本发明的一个实施例中,在单元名字表和文本字符串表为空的情况下,文件解析函数依次读取oasis文件中的记录,并对不同的记录进行对应的处理,关键处理过程如下:如果读取到的记录类型为‘13’,表示该记录的格式为:‘13’参考数字(reference-number),函数会创建一个与参考数字对应的字符串;如果读取到的记录类型为‘14’,表示该记录的格式为:‘14’单元名字字符串(cellname-string),函数会创建一个与单元名字字符串对应的字符串;如果读取到的记录类型为‘3’或者‘4’,记录类型为‘3’,表示该记录的格式为:‘3’单元名字字符串(cellname-string),记录类型为‘4’,表示该记录的类型为:‘4’单元名字字符串(cellname-string)参考数字(reference-number),函数对该记录进行解析处理,构建单元名字表;如果读取到的记录类型为‘5’或者‘6’,记录类型为‘5’,表示该记录的格式为:
‘5’文本字符串(text-string),记录类型为‘6’,表示该记录的类型为:
‘6’文本字符串(text-string)参考数字(reference-number),函数对该记录进行解析处理,构建文本字符串表;然后重命名函数会根据构建的单元名字表和文本字符串表对前面创建的字符串进行修改,这样就实现了只需要一遍读取过程就能读取oasis文件。
图1为根据本发明的oasis文件快速读取方法的流程图,下面将参考图1,对本发明的oasis文件快速读取方法进行详细描述。
首先,在步骤101,检查单元名字表和文本字符串表,确认单元名字表和文本字符串表为空;
在步骤102,文件解析函数依次读取oasis文件中的记录。
oasis文件中的记录类型,包括,开始记录(标识oasis文件的开始)、结束记录(标识oasis文件的结束)、区块记录(该记录为oasis文件提供一种嵌入压缩数据的途径)、填补记录(该记录提供一种在oasis文件中预定空间的方法)、属性记录(该记录提供关于oasis文件的描述性信息)、单元记录(该记录介绍了单元的定义)和名字记录(该记录提供了名字的定义)。
在步骤103,根据读取的记录类型,分别创建参考数字对应的字符串、单元名字字符串对应的字符串(所创建的字符串为随机字符串)、构建单元名字表或构建文本字符串表;
在步骤104,根据构建的单元名字表和文本字符串表,重命名函数对创建的参考数字对应的字符串、单元名字字符串对应的字符串进行修改。详细过程为:对读取并存储到内存空间的oasis文件中的数据,重命名函数查找到记录类型为‘13’和‘14’的记录,然后根据查找到的记录的参考数字和单元名字字符串在单元名字表和文本字符串表进行查找,根据在表中查找到的参考数字和单元名字字符串对应的字符串对存储在内存空间中该参考数字和单元名字字符串对应的字符串进行修改,这样就完成了字符串的修改过程。
图2为根据本发明的读取到的记录类型为‘13’或‘14’时的工作流程图,下面将参考图2对读取到的记录类型为‘13’或‘14’时的工作流程进行详细描述。
在步骤201,文件解析函数依次读取oasis文件中的记录,当读取到记录类型为‘13’或‘14’时,进行下一步骤。
在步骤202,判断读取的记录类型是否为‘13’,若是,进入下一步骤,若否,转步骤204。
在步骤203,创建一个与参考数字对应的字符串(所创建的字符串为随机字符串),转步骤205。
在步骤204,创建一个与单元名字字符串对应的字符串(所创建的字符串为随机字符串)。
步骤205,在上述步骤进行完后,继续读取分析oasis文件中的记录。
图3为根据本发明的读取到的记录类型为‘3’或者‘4’时的工作流程图,下面将参考图3对读取到的记录类型为‘3’或者‘4’时的工作流程进行详细描述。
步骤301,文件解析函数依次读取oasis文件中的记录,当读取到记录类型为‘3’或者‘4’时,进行下一步骤。
在步骤302,判断读取的记录类型是否为‘3’,若是,进入下一步骤,若否,转步骤304。
在步骤303,根据记录的单元名字字符串,创建和完善单元名字字符串对应的单元名字表。其中单元名字表是一个哈希表,关键码值是默认的参考数字(由0开始,每遇到一个记录类型为3的记录,参考数字加1),存储的是参考数字对应的单元名字字符串。首先需要对单元名字表进行创建(即哈希表的声明),然后后续存储关键码值对应的单元名字字符串对单元名字表进行完善。
在步骤304,根据记录的单元名字字符串和参考数字,创建和完善单元名字表。同上,单元名字表是一个哈希表,关键码值是读取的该记录中的参考数字,存储的是参考数字对应的单元名字字符串。首先仍需要对单元名字表进行创建(即哈希表的声明),然后后续存储关键码值对应的单元名字字符串对单元名字表进行完善。
图4为根据本发明的读取到的记录类型为‘5’或者‘6’时的工作流程图,下面将参考图4对读取到的记录类型为‘5’或者‘6’时的工作流程进行详细描述。
在步骤401,文件解析函数依次读取oasis文件中的记录,当读取到记录类型为‘5’或者‘6’时,进行下一步骤。
在步骤402,判断读取的记录类型是否为‘5’,若是,进入下一步骤,若否,转步骤404。
在步骤403,根据记录的文本字符串,创建和完善文本字符串表。其中文本字符串表是一个哈希表,关键码值是默认的参考数字(由0开始,每遇到一个记录类型为5的记录,参考数字加1),存储的是参考数字对应的文本字符串。首先需要对文本字符串表进行创建(即哈希表的声明),然后后续存储关键码值对应的文本字符串对文本字符串表进行完善。
在步骤404,根据记录的文本字符串和参考数字,创建和完善文本字符串表。同上,文本字符串表是一个哈希表,关键码值是读取的该记录中的参考数字,存储的是参考数字对应的文本字符串。首先仍需要对文本字符串表进行创建(即哈希表的声明),然后后续存储关键码值对应的文本字符串对文本字符串表进行完善。
图5为根据本发明的oasis文件快速读取装置框图,如图5所示,本发明的oasis文件快速读取装置50,包括处理器501和存储器502,所述存储器502存储有程序,所述程序在被所述处理器501读取执行时,执行以下操作:
检查单元名字表和文本字符串表,确认单元名字表和文本字符串表为空;
依次读取oasis文件中的记录;
根据读取的记录类型,分别创建参考数字对应的字符串、单元名字字符串对应的字符串、构建单元名字表或构建文本字符串表;
根据构建的单元名字表和文本字符串表,根据构建的单元名字表和文本字符串表,对创建的参考数字对应的字符串、单元名字字符串对应的字符串进行修改。
本发明一实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,所述程序可被处理器执行,以实现上述任一实施例所述的oasis文件快速读取方法的步骤。
通过实验证明,采用背景技术中的两遍读取过程完成oasis文件读取方法,读取两个4.1G的oasis文件需要472秒;而采用本发明的通过一遍读取过程完成oasis文件读取方法,读取同样的两个4.1G的oasis文件需要375秒,读取时间缩短将近100秒,大大缩短了oasis文件的读取时间。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种oasis文件快速读取方法,包括以下步骤:
1)确认单元名字表和文本字符串表为空;
2)读取oasis文件中的记录;
3)根据读取oasis文件中的记录类型,分别创建参考数字对应的字符串或单元名字字符串对应的字符串,构建单元名字表和文本字符串表;
4)根据构建的单元名字表和文本字符串表,对所述参考数字对应的字符串或所述单元名字字符串对应的字符串进行修改;
所述步骤4)还包括,对读取并存储到内存空间的oasis文件中的数据,重命名函数查找到记录类型为参考数字和单元名字字符串的记录,根据查找到的记录的参考数字和单元名字字符串在单元名字表和文本字符串表进行查找,根据在表中查找到的参考数字和单元名字字符串对应的字符串对存储在内存空间中该参考数字和单元名字字符串对应的字符串进行修改。
2.根据权利要求1所述的oasis文件快速读取方法,其特征在于,所述步骤3)进一步包括,
当读取到记录类型为参考数字时,创建与参考数字对应的字符串;
当读取到记录类型为单元名字字符串时,创建与单元名字字符串对应的字符串。
3.根据权利要求1所述的oasis文件快速读取方法,其特征在于,所述步骤3)进一步包括,
当读取到记录类型为单元名字字符串时,根据记录的单元名字字符串,创建和完善单元名字表;
当读取到记录类型为单元名字字符串和参考数字时,根据记录的单元名字字符串和参考数字,创建和完善单元名字表。
4.根据权利要求1所述的oasis文件快速读取方法,其特征在于,所述步骤3)进一步包括,
当读取到记录类型为文本字符串时,根据记录的文本字符串,创建和完善文本字符串表;
当读取到记录类型为文本字符串和参考数字时,根据记录的文本字符串和参考数字,创建和完善文本字符串表。
5.一种oasis文件快速读取装置,其特征在于,包括存储器和处理器,所述存储器上储存有在所述处理器上运行的程序,所述处理器运行所述程序时执行权利要求1-4任一项所述的oasis文件快速读取方法的步骤。
6.一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序可被处理器执行权利要求1-4任一项所述的oasis文件快速读取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910840486.2A CN110543456B (zh) | 2019-09-06 | 2019-09-06 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910840486.2A CN110543456B (zh) | 2019-09-06 | 2019-09-06 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110543456A CN110543456A (zh) | 2019-12-06 |
CN110543456B true CN110543456B (zh) | 2022-02-22 |
Family
ID=68712804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910840486.2A Active CN110543456B (zh) | 2019-09-06 | 2019-09-06 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110543456B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112671900A (zh) * | 2020-12-23 | 2021-04-16 | 南京华大九天科技有限公司 | 一种版图数据传输方法、系统及计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN103425829A (zh) * | 2013-08-06 | 2013-12-04 | 中国科学院微电子研究所 | 一种快速读取版图的方法 |
CN103871085A (zh) * | 2012-12-14 | 2014-06-18 | 北京华大九天软件有限公司 | 一种版图数据压缩的方法 |
CN104657627A (zh) * | 2013-11-18 | 2015-05-27 | 广州中国科学院软件应用技术研究所 | Fastq格式读段开头的寻找和判断方法以及系统 |
CN107045531A (zh) * | 2017-01-20 | 2017-08-15 | 郑州云海信息技术有限公司 | 一种优化hdfs小文件存取的系统及方法 |
CN109409002A (zh) * | 2018-11-12 | 2019-03-01 | 北京华大九天软件有限公司 | 一种版图实例化的完整性检测方法 |
CN109669917A (zh) * | 2018-12-24 | 2019-04-23 | 北京华大九天软件有限公司 | 一种基于优先级分组的波形存储方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006075667A1 (ja) * | 2005-01-12 | 2006-07-20 | Masatsugu Noda | 情報処理装置ならびにファイルデータマージ方法およびファイル名称付与方法およびファイルデータ出力方法 |
US20100023914A1 (en) * | 2008-02-20 | 2010-01-28 | Sahouria Emile Y | Use Of Graphs To Decompose Layout Design Data |
JP4942800B2 (ja) * | 2009-08-18 | 2012-05-30 | 株式会社ニューフレアテクノロジー | 検査装置 |
-
2019
- 2019-09-06 CN CN201910840486.2A patent/CN110543456B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193873A (zh) * | 2010-03-04 | 2011-09-21 | 中国科学院微电子研究所 | 快速读写海量数据文件的方法 |
CN103871085A (zh) * | 2012-12-14 | 2014-06-18 | 北京华大九天软件有限公司 | 一种版图数据压缩的方法 |
CN103425829A (zh) * | 2013-08-06 | 2013-12-04 | 中国科学院微电子研究所 | 一种快速读取版图的方法 |
CN104657627A (zh) * | 2013-11-18 | 2015-05-27 | 广州中国科学院软件应用技术研究所 | Fastq格式读段开头的寻找和判断方法以及系统 |
CN107045531A (zh) * | 2017-01-20 | 2017-08-15 | 郑州云海信息技术有限公司 | 一种优化hdfs小文件存取的系统及方法 |
CN109409002A (zh) * | 2018-11-12 | 2019-03-01 | 北京华大九天软件有限公司 | 一种版图实例化的完整性检测方法 |
CN109669917A (zh) * | 2018-12-24 | 2019-04-23 | 北京华大九天软件有限公司 | 一种基于优先级分组的波形存储方法 |
Non-Patent Citations (3)
Title |
---|
Evaluation of the new OASIS format for layout fill compression;Yu Chen et al.;《Proceedings of the 2004 11th IEEE International Conference on Electronics, Circuits and Systems》;20050314;第377-382页 * |
oasis文件中的数据类型;内核中的洋葱;《https://blog.csdn.net/uestc_huan/article/details/4074902》;20090415;第1-8页 * |
一种新颖的光罩可制造性规则检查方法与系统;李峥 等;《半导体技术》;20070331;第238-240页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110543456A (zh) | 2019-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9710243B2 (en) | Parser that uses a reflection technique to build a program semantic tree | |
CN107368593B (zh) | 数据导入方法、装置及服务器 | |
CN107506219A (zh) | 一种基于Android系统的通用版本升级方法 | |
CN106445476B (zh) | 一种代码变更信息确定方法、装置及电子设备 | |
US8331694B2 (en) | Program pattern analyzing apparatus, pattern appearance status information production method, pattern information generating apparatus, and program | |
CN107330014B (zh) | 一种数据表的创建方法与设备 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN106547782A (zh) | 日志信息的获取方法及装置 | |
CN110019038A (zh) | 文件引用分析方法、装置、设备及计算机可读存储介质 | |
CN104598231A (zh) | Python源代码文件相似性检测方法 | |
CN110543456B (zh) | 一种oasis文件快速读取方法、装置及计算机可读存储介质 | |
CN106547573A (zh) | 一种程序文件对比方法及装置 | |
CN116610568A (zh) | 一种识别代码的依赖关系的方法、装置、设备及介质 | |
CN111984666A (zh) | 数据库访问方法、装置、计算机可读存储介质和计算机设备 | |
CN111708542A (zh) | 测试用例生成方法、系统、设备及存储介质 | |
CN113792026B (zh) | 数据库脚本的部署方法、装置及计算机可读存储介质 | |
CN113672491B (zh) | 检测sql语句合法性的方法、存储介质及终端设备 | |
JP2011204069A (ja) | テスト方法およびテスト仕様書テストデータ自動生成装置 | |
JP6502044B2 (ja) | データ解析装置、データ解析方法、および、プログラム。 | |
CN112733199A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
CN107515769B (zh) | 一种变量信息提取方法及装置 | |
JP4311327B2 (ja) | ソースコード自動生成装置、ソースコード自動生成方法、プログラムおよび記録媒体 | |
CN110795297B (zh) | 一种电子设备的测试方法及装置 | |
CN117331963B (zh) | 数据访问处理方法、装置、电子设备及存储介质 | |
CN116627390B (zh) | 航空软件开发中icd文件的替代方法及装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Applicant after: Beijing Huada Jiutian Technology Co.,Ltd. Address before: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Applicant before: HUADA EMPYREAN SOFTWARE Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |