CN103425829A - 一种快速读取版图的方法 - Google Patents
一种快速读取版图的方法 Download PDFInfo
- Publication number
- CN103425829A CN103425829A CN2013103399023A CN201310339902A CN103425829A CN 103425829 A CN103425829 A CN 103425829A CN 2013103399023 A CN2013103399023 A CN 2013103399023A CN 201310339902 A CN201310339902 A CN 201310339902A CN 103425829 A CN103425829 A CN 103425829A
- Authority
- CN
- China
- Prior art keywords
- unit
- subelement
- container
- read
- layout
- 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
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种快速读取版图的方法,该方法包括以下步骤:读入GDSII文件;读取单元头信息,建立单元的容器;建立单元之间的索引关系,找出顶级单元;读取每个单元的图素信息。相应的,本发明还提供一种存储版图整体信息的装置,包括单元的基础数据结构、存储单元基础结构的容器、子单元的链表以及完整的单元索引。提高了应用程序的运行效率;减少了应用程序的内存占用;提高了程序的灵活性,使程序的逻辑操作更加清晰,索引关系更加简单。
Description
技术领域
本发明涉及集成电路设计领域,特别涉及一种快速读取版图的方法。
背景技术
随着主流IC代工厂的制造工艺逐步向90nm节点以下转移,工艺偏差的量级已由原来的可以忽略不计变为可与特征尺寸相提并论。这导致工艺偏差对器件和电路的性能影响已上升到不得不加以考虑的程度,因此问题表现为如何对造成影响器件电路性能的工艺偏差进行估计从而预先改善或消除不利的设计因素。依据这方面的需求,出现了模仿各个工艺节点的仿真软件。例如,光刻仿真软件,化学机械仿真软件等。它的核心思路仿真软件都是依据版图文件的特征值来进行真实工艺过程的模拟,用得到的模拟数据来将版图的设计缺陷表现出来,以此进行热点分析并反馈于设计人员以实现设计优化。仿真模拟软件的输入皆来自版图文件,所以如何快速的,灵活的解析版图文件就显的尤为重要。而且为了适应多种模拟仿真的软件不同的输入要求,还要求版图文件的解析尽可能具有通用性,便于以后将仿真软件进行扩展。
在集成电路设计中,最常用的数据文件传输格式有两种,CIF格式和GDS格式。CIF格式是美国加州理工学院中介格式,是一种低层次描述集成电路几何图形的图形语言,语法结构简单明了,可采用任何文本编辑器编辑,阅读,修改,组合及跟踪,可读性强。而工业界的VLSI设计环境中最流行的集成电路版图描述语言通用标准格式是GDSII,也就是Calma Stream Format。GDSII是通用电气公司的一个下属子公司Calma的注册商标,随着Calma的CAD系统的发展,GDSII一直在更新,但它都保持着向下的兼容,所以任何GDSII文件都不会过时,但由于GDSII文件是二进制格式,无法用文件编辑器查看,可读性差。
在GDSII文件中数据主要是以模块结构(STRUCTURE,对应于版图中的单元)的形式组合而成的。每个模块除包含若干称之为图素(ELEMENT)的几何图形外,还可以在该模块中插入多层次的模块参数。具体地说一个GDSII文件的所有数据都是由一连串的数据块链接组成的(为方便以16进制形式显示)。这些数据块分别定义了文件头,库文件头,文件库名,数据单位,模块结构头,模块结构名,图素头,层名,数据类型,图素参数,图素坐标,图素尾……模块结构尾,第二个模块结构头,第二模块结构名,插入模块结构名(也是图素的一种),插入模块变换模式,图素尾……第二个模块结构尾……等,最后以文件末尾结束整个文件。
版图文件中的各种图素以及结构体间的索引特别繁琐,传统的读取文件的方法是将各种实用图素(多边形,直线,折线等)和各种结构体都分别存储在不同的数组中,并另建几个数组来标注它们的索引关系。在后续的版图划分与特征提取过程中都将频繁的访问这些数据结构以及它们的索引关系,这不仅影响了程序的运行效率,而且建立较多的数据结构体无疑增加了程序的内存消耗,随着版图文件的容量越来越大,这种方式将不再适用,对于模拟仿真软件的扩展性将是相当不利的。
发明内容
版图各个模块之间以及模块内部本身都具有一定的复杂性,但建立一个好的装置将会使其降低模块之间以及模块内部的复杂性。本发明所要解决的技术问题是建立一套快速解析版图的方法。该方法侧重点将首要考虑时间效率,之后是建立一套清晰通用的索引关系,之后考虑解析版图中计算机的内存利用率等。
本发明提供一种快速读取版图的方法,该方法包括以下步骤:
a)读入GDSII文件;
b)读取单元头信息,建立单元的容器;
c)建立单元之间的索引关系,找出顶级单元;
d)读取每个单元的图素信息。
与现有技术相比,采用本发明提供的技术方案具有以下优点:提高了应用程序的运行效率;减少了应用程序的内存占用;提高了程序的灵活性,使程序的逻辑操作更加清晰,索引关系更加简单。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为根据本发明解析GDSII文件的流程图;
图2为根据本发明建立的GDSII文件的单元信息的基础结构图;
图3为根据本发明建立的GDSII文件的整体信息存储装置示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。本发明省略了对公知组件和处理技术的描述以避免不必要地限制本发明。
下面结合图2、图3和具体实施方式,对图1中快速读取版图的方法进行具体的描述。
执行步骤S101,选取GDSII版图作为输入,用二进制方式打开GDSII文件。
执行步骤S102,建立单元的基础数据结构,依次在版图中读取每个单元,将需要的单元信息存入到单元的基础数据结构中,并将数据结构放入到单元容器中。如图2所示,单元的基础数据结构包括:单元名称、单元层数、单元等级、子单元数量、子单元链表指针、单元的图素信息容器以及单元的标识。在本发明的一个实施例中,找到单元基础结构(如图2所示)的入口,记录单元的地址、名称等信息,并将此单元加入唯一标识存入到单元容器中。
执行步骤S103,建立子单元的链表,将其挂载到父单元的数据结构上,并在最后根据单元的层次关系确定顶级单元的位置。如图3所示,单元的基础结构包括一个指向子单元的链表的指针。所述链表包括一系列子单元的结构。所述子单元的结构包括子单元的名称、该子单元的数量、指向子单元地址的指针和指向链表中下一个结构的指针。在本发明的一个实施例中,建立一个如图3中的子单元的链表,并将子单元的名称与地址存到子单元链表中,并将该子单元的数量自加1(包含相同的子单元的数量有可能大于1),如果有多个不同的子单元,那么应该将继续将不同的子单元的名称与地址存到子单元链表中。接下来,读取到的每个单元将会反复执行上一个阶段的过程,直到文件末尾。
执行步骤S104,根据步骤S102和S103中已经得到的单元的地址、名称等简略信息,对每个单元的详细信息进行展平,详细读取每个单元中所有的图素信息,将其放入到多边形的容器中,并在最后将所述容器挂载到所述单元上。图素信息包括多边形和带有线宽的直线。处理直线的时候应用程序将会根据直线的特性将其换算成多边形,所以在展平的过程中以及最后,单元的图素信息将被默认成多边形。在本发明的一个实施例中,图素信息为多边形。多边形的信息一旦被解析出来,将会被存储到所述单元的多边形容器中,如图2所示的单元的图素信息容器。在本发明的一个实施例中,应用程序将会遍历容器中每个单元的基础结构,并深入读取单元的完整信息,包括各种图素信息。遍历结束,GDSII整体信息中所有的信息将会被存储到本发明所构建的装置,如图3中所示。
根据上述方法构建的存储版图单元信息的装置,包括单元的基础数据结构、存储单元基础结构的容器、子单元的链表以及完整的单元索引。
上述装置中,单元基础结构包括:单元名称、单元层数、单元等级、子单元数量、子单元链表指针、单元的图素信息容器以及单元的标识。
上述装置中,子单元的链表包括一系列子单元的结构。所述子单元的结构包括子单元的名称、该子单元的数量、指向子单元地址的指针和指向链表中下一个结构的指针。
虽然关于示例实施例及其优点已经详细说明,应当理解在不脱离本发明的精神和所附权利要求限定的保护范围的情况下,可以对这些实施例进行各种变化、替换和修改。对于其他例子,本领域的普通技术人员应当容易理解在保持本发明保护范围内的同时,步骤的次序可以变化。
此外,本发明的应用范围不局限于说明书中描述的特定实施例的工艺、机构、制造、物质组成、手段、方法及步骤。从本发明的公开内容,作为本领域的普通技术人员将容易地理解,对于目前已存在或者以后即将开发出的工艺、机构、制造、物质组成、手段、方法或步骤,其中它们执行与本发明描述的对应实施例大体相同的功能或者获得大体相同的结果,依照本发明可以对它们进行应用。因此,本发明所附权利要求旨在将这些工艺、机构、制造、物质组成、手段、方法或步骤包含在其保护范围内。
Claims (7)
1.一种快速读取版图的方法,该方法包括以下步骤:
a)读入GDSII文件;
b)读取单元头信息,建立单元的容器;
c)建立单元之间的索引关系,找出顶级单元;
d)读取每个单元的图素信息。
2.根据权利要求1所述的方法,其中所述步骤b)包括:
建立单元的基础数据结构,建立用于存储单元基础结构的单元容器。
3.根据权利要求2所述的方法,其中,单元的基础数据结构包括:
单元名称、单元层数、单元等级、子单元数量、子单元链表指针、单元的图素信息容器以及单元的标识。
4.根据权利要求1所述的方法,其中所述步骤c)包括:
建立子单元的链表,并挂载到父单元的基础结构上。
5.根据权利要求4所述的方法,其中,子单元的链表包括一系列子单元的结构。
6.根据权利要求5所述的方法,其中,子单元的结构包括子单元的名称、该子单元的数量、指向子单元地址的指针和指向链表中下一个结构的指针。
7.根据权利要求1所述的方法,其中所述步骤d)包括:
将单元的图素信息存入到多边形的容器中,并将所述容器挂载到所述单元上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310339902.3A CN103425829B (zh) | 2013-08-06 | 2013-08-06 | 一种快速读取版图的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310339902.3A CN103425829B (zh) | 2013-08-06 | 2013-08-06 | 一种快速读取版图的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103425829A true CN103425829A (zh) | 2013-12-04 |
CN103425829B CN103425829B (zh) | 2016-08-10 |
Family
ID=49650561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310339902.3A Active CN103425829B (zh) | 2013-08-06 | 2013-08-06 | 一种快速读取版图的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103425829B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633524A (zh) * | 2016-07-18 | 2018-01-26 | 中国科学院微电子研究所 | 一种版图边界提取方法及装置 |
CN108509725A (zh) * | 2018-04-02 | 2018-09-07 | 中国科学院电子学研究所 | 可定制逻辑器件版图和网表的自动生成方法 |
CN110543456A (zh) * | 2019-09-06 | 2019-12-06 | 北京华大九天软件有限公司 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
CN110866373A (zh) * | 2019-11-19 | 2020-03-06 | 北京华大九天软件有限公司 | 一种版图单元快速匹配的方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009152249A2 (en) * | 2008-06-10 | 2009-12-17 | Oasis Tooling, Inc. | Methods and devices for independent evaluation of cell integrity, changes and origin in chip design for production workflow |
CN102446230A (zh) * | 2010-10-11 | 2012-05-09 | 上海华虹Nec电子有限公司 | 一种gdsii版图数据合并的方法 |
-
2013
- 2013-08-06 CN CN201310339902.3A patent/CN103425829B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009152249A2 (en) * | 2008-06-10 | 2009-12-17 | Oasis Tooling, Inc. | Methods and devices for independent evaluation of cell integrity, changes and origin in chip design for production workflow |
CN102446230A (zh) * | 2010-10-11 | 2012-05-09 | 上海华虹Nec电子有限公司 | 一种gdsii版图数据合并的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633524A (zh) * | 2016-07-18 | 2018-01-26 | 中国科学院微电子研究所 | 一种版图边界提取方法及装置 |
CN108509725A (zh) * | 2018-04-02 | 2018-09-07 | 中国科学院电子学研究所 | 可定制逻辑器件版图和网表的自动生成方法 |
CN108509725B (zh) * | 2018-04-02 | 2021-06-29 | 中国科学院电子学研究所 | 可定制逻辑器件版图和网表的自动生成方法 |
CN110543456A (zh) * | 2019-09-06 | 2019-12-06 | 北京华大九天软件有限公司 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
CN110543456B (zh) * | 2019-09-06 | 2022-02-22 | 北京华大九天科技股份有限公司 | 一种oasis文件快速读取方法、装置及计算机可读存储介质 |
CN110866373A (zh) * | 2019-11-19 | 2020-03-06 | 北京华大九天软件有限公司 | 一种版图单元快速匹配的方法及装置 |
CN110866373B (zh) * | 2019-11-19 | 2022-05-24 | 北京华大九天科技股份有限公司 | 一种版图单元快速匹配的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103425829B (zh) | 2016-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678705B (zh) | 一种VCT文件到shapefile文件的矢量数据并行转换方法 | |
CN109284145A (zh) | 多语言配置文件的生成和展示方法及装置、设备和介质 | |
CN107291476A (zh) | Canvas代码生成方法、装置、电子设备及存储介质 | |
CN106843842B (zh) | 一种应用程序配置文件的更新方法及装置 | |
CN105224370A (zh) | 一种加载elf文件的方法和装置 | |
CN103425829A (zh) | 一种快速读取版图的方法 | |
CN103034544A (zh) | 一种用户态与内核态共享内存的管理方法和装置 | |
CN105511843A (zh) | 一种生成应用程序界面的方法和装置 | |
US9449139B2 (en) | System and method for tracing a net | |
CN102043762A (zh) | 一种版面比对的方法及装置 | |
CN103425632A (zh) | 一种序列化的方法、装置及处理器 | |
CN102841950A (zh) | 一种逻辑存储单元自动验证的方法及装置 | |
CN104391991B (zh) | 一种从AutoCAD数据到GIS空间数据的转换方法 | |
CN104985939A (zh) | 一种激光打标机控制方法和激光打标机 | |
US9171119B2 (en) | Unit fill for integrated circuit design for manufacturing | |
CN104049947A (zh) | 基于动态重命名的矢量寄存器堆的寄存器重新配置 | |
CN104268179A (zh) | 非结构化三维模型数据解析算法 | |
CN104834759A (zh) | 电子设计的实现方法和装置 | |
CN102541923A (zh) | 一种数据库读写分离的方法和装置 | |
CN102880690A (zh) | 一种精简电子书字库的方法及电子书处理装置 | |
CN105408893B (zh) | 一种数据处理和写入方法及相关装置 | |
CN102375889A (zh) | 一种通过网页构建数据库构建网页的方法 | |
CN109683962A (zh) | 一种指令集模拟器流水线建模的方法及装置 | |
US20140324918A1 (en) | Database Generation System, Method For Generating A Database, Product Line Management System And Non-Transitory Data Carrier | |
CN108804631A (zh) | 表情符号存储方法、装置、计算机可读存储介质和终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |