CN103164489A - 集成电路版图数据库的快速比较方法 - Google Patents
集成电路版图数据库的快速比较方法 Download PDFInfo
- Publication number
- CN103164489A CN103164489A CN2011104275476A CN201110427547A CN103164489A CN 103164489 A CN103164489 A CN 103164489A CN 2011104275476 A CN2011104275476 A CN 2011104275476A CN 201110427547 A CN201110427547 A CN 201110427547A CN 103164489 A CN103164489 A CN 103164489A
- Authority
- CN
- China
- Prior art keywords
- integrated circuit
- hash table
- domain data
- data bases
- layout data
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
集成电路版图数据库的快速比较方法,所属的技术领域是集成电路计算机辅助设计领域,尤其是集成电路设计后端工艺流程中版图数据库的比较(LVL)领域。主要应用于超大规模集成电路版图比较工具,对两个集成电路版图数据库进行快速比较并报告其差异。本发明的目的在于:提供一种集成电路版图数据库的快速比较方法,通过自动识别和去除两个版图数据库中重复出现的几何图形,保留差异元素,显著缩短比较时间。其主要实现过程包括:①依次读入两个版图数据库并将几何图形保存在哈希表中;②利用哈希表快速删除两个数据库的公共图形;③输出哈希表中保留的图形。
Description
技术领域
本发明是一种集成电路版图数据库的快速比较方法,所属的技术领域是集成电路计算机辅助设计领域,尤其是集成电路设计后端工艺流程中版图数据库的比较(LVL)领域。
背景技术
随着集成电路集成度和规模的不断提高,特别是随着工艺不断向着纳米级进展,在集成电路设计的各个阶段所需运行的验证也相应增多,包括设计规则检查(DRC)、集成电路版图与原理图的一致性检查(LVS)等。集成电路版图与版图的比较(LVL)作为一种直接验证不同版本间图形差异的手段,在集成电路设计的后端流程有着广泛的应用。主要的应用方向有:
(1)IC设计工程师对版图进行优化或者某种错误,希望详细了解改版前后的差别;
(2)IC设计公司转换版图数据库管理平台(例如从一种软件换成另一种软件或者软件升级),或者进行版图格式的转换,需要了解转换过程有没有错误。
(3)IC设计公司或代工厂对版图进行某种逻辑运算,可能同时采用两种等价的运算方法或者采用两个不同的工具,并利用LVL工具对两个结果进行比较,以检验逻辑运算结果是否正确。
由于集成电路的特征尺寸越来越小,结构和工艺日益复杂,版图数据库的规模也不断增加。目前常见的GDSII格式的版图数据库大小为几十GB,有些大型设计(例如CPU)甚至达到TB量级(1TB=1024GB),这就迫切需要一种高效的版图数据库比较工具。
传统的LVL比较采用扫描线算法或其它几何运算方法对集成电路版图数据库进行比较,获得它们的差异部分。扫描线等传统算法具有很好的通用性,可以进行各种逻辑运算和拓扑运算,但对于LVL而言不是一种很好的方法。这是因为它们的实现过程十分复杂,例如扫描线算法需要将以点列表示的多边形转化为以非垂直边表示的多边形,通过扫描分析边的状态变化来发现两个版图的差异,扫描结束后还要把边表示恢复成易于理解的点列表示再输出,效率不高。本发明主要针对LVL应用提出一种简单高效的比较方法,可以快速消除两个版图数据库的公共图形,输出差异图形。
发明内容
本发明的目的在于:提供一种集成电路版图数据库的快速比较方法,通过自动识别和去除两个版图数据库中同时出现的几何图形,输出差异图形,显著缩短比较时间。
本发明的主要思路就是利用哈希表能够方便、快速查找相同元素的特点,快速去除对两个版图的公共图形,只保留少量非公共图形。具体的实现步骤包括:①依次读入两个版图数据库并将几何图形保存在哈希表中;②利用哈希表快速删除两个数据库的公共图形;③输出哈希表中保留的图形。
(1)读入版图数据库并将图形保存到哈希表中
哈希表是一种常见的数据结构,可以提供快速的***和查找操作,在理想情况下这两种操作都具有O(1)的常数时间复杂度。对于读入的每一个几何图形(包括多边形或可转化为多边形的图形、文本等),计算哈希码(Hash Code),根据哈希码将图形的坐标数据放入哈希表中特定的位置,方便以后的查找操作。也可以不将图形数据本身存入哈希表中,而是将图形坐标数据的索引(内存地址或者能够找到该坐标数据的其它索引结构)存入哈希表,图形坐标在哈希表外存储。这两种方法并无本质区别,以下统称“将图形存入哈希表”。其具体过程如下:
①定义一个哈希函数,将图形的坐标数据变换为一个整数,即哈希码。多边形的顶点数和顶点坐标是确定多边形位置的必要和充分特征。哈希函数hash()以多边形的特征为输入,计算出一个整数即为哈希码。哈希码是多边形特征的一个“摘要”信息,从哈希码往往不能反推出多边形的特征,但是以一个整数作为哈希码对可以大大简化下面的计算。哈希函数的定义具有很大的随意性,不同的哈希函数可以达到相同的效果。
②根据哈希码将组合放入哈希表中。哈希表是分桶存储的,假设有k个桶,则哈希码为S的多边形放入编号为N=S mod k的桶中(mod代表取余运算)。通常k为较大的质数。显然,哈希码相同的多边形必然放入同一个桶中;放入同一个桶中的多边形不一定具有相同的哈希码,但它们的哈希码相差k的整数倍。如果有两个或多个不同的多边形具有相同的哈希码S,或者虽然S不同但具有相同的S mod k值,则这些多边形需要存储在哈希表的同一个桶中,这种情况被称为哈希表“冲突”,冲突的多边形以链表组织在一起。发生冲突时,必须遍历链表中的每一个多边形才能确定需要查找、***或删除的多边形是否已经存在,这会显著降低效率,冲突越多效率就越低。因此哈希表的设计应尽可能减少冲突,这就需要精心设计哈希函数hash()和桶数k等参数。
(2)利用哈希表快速查找并删除两个数据库的公共图形
由于哈希表具有快速查找的优点,特别适合去除重复对象。在读入版图数据库时,可以建立两个哈希表A和B。
当读入第一个版图时,使用第一个哈希表A。每读入一个图形G,首先查找哈希表A中是否已有与G相同的图形。若有,说明已经存在一个与G完全相同的图形,即版图数据库存在重复图形,这时G不必再***哈希表,可以删除。若没有,则将G***哈希表。当整个版图数据库全部读入以后,哈希表A保存了数据库中全部图形,并能保证数据库中重复出现的图形只保留一份。
当读入第二个版图时,同时使用两个哈希表A和B。每读入一个图形G,首先查找哈希表A中是否已有与G相同的图形。若有,说明与图形G重合的图形在第一个版图数据库中曾经出现过,将找到的与G相同的图形标记为“公共图形”,刚刚读入的图形G不必再***哈希表,可以删除。若没有,则将G***哈希表B,***B时同样需要避免存储重复出现的图形。
当两个版图数据库全部读入以后,哈希表A保存了第一个版图数据库的全部图形,这些图形分为两部分:凡是标记为“公共图形”的是两个数据库的公共图形,应当删除;没有标记的图形是只在第一个数据库中出现,而第二个数据库中没有出现的图形,应予保留。哈希表B中保存的是只在第二个数据库中出现的图形。
上述方法可以稍加变化,例如可以只采用一个哈希表A。读入第一个版图数据库的过程不变。在读入第二个版图数据库时,每读入一个图形G,若在哈希表A中不存在与之相同的图形,则将G***哈希表,并标记为“只在第二个版图数据库中出现”。若存在与G重复的图形,则G不必***哈希表,但要检查重复出现的图形是否有标记。若没有标记,说明该图形在第一个版图数据库中出现过,将其标记为“公共图形”;若已经有“公共图形”标记,则不需要修改标记;若有“只在第二个版图数据库中出现”的标记,也不需要修改标记。当两个版图数据库全部读入以后,删除哈希表A中标有“公共图形”标记的图形,剩余的图形根据是否有“只在第二个版图数据库中出现”的标记就可以区分是来自哪一个版图数据库的。
也可以采用三个哈希表A、B、C,分别保存第一、第二个版图数据库的图形和两个数据库的公共图形。读入第一个版图数据库的过程不变。读入第二个版图数据库时,若在A中找到与读入的图形G相同的图形,则将相同的图形移动到哈希表C。若找不到,还要查找C中是否有相同的图形,若找到则删除G,否则将G***哈希表B。
(3)输出哈希表中保留的图形
在步骤(2)中,无论采用一个、两个还是三个哈希表,哈希表中最终保留的图形都可分为两部分,一部分是只来自第一个版图数据库的,另一部分是只来自第二个版图数据库的。根据需要,这两部分图形可以分别输出,也可以合并输出。
附图说明
图1是具体实施方式1中待比较的两个版图数据库
图2是具体实施方式1版图数据库读入过程哈希表的变化情况
图3是具体实施方式2版图数据库读入过程哈希表的变化情况
具体实施方式1
图1给出了两个版图数据库。图1(a)为第一个版图,有三个图形G1、G2和G3;图1(b)为第二个版图,有三个图形G4、G5和G6。比较这两个版图数据库的过程如下:
(1)读入版图数据库并将图形保存到哈希表中
两个版图数据库保存在外部存储设备(例如磁盘)中,需要先读入再进行比较,读入的同时利用哈希表进行去重操作。使用两个哈希表A和B。定义哈希函数hash()为:
S=hash(G)=图形G各坐标值的平方和
哈希表的桶数k=97。如果三角形G3的三个顶点坐标分别为(100,100)、(200,200)、(100,200),
则
S=1002+1002+2002+2002+1002+2002=150000
桶号为:
N=S mod k=150000 mod 97=38
检查第38号桶中是否有与G3相同的图形,若没有则将G3放入桶中。其它图形都采用相同的方法计算桶号N,只是N的值可能不同。
读入过程中哈希表内容变化情况如图2。当读取到图形第二个版图数据库中的图形G4时,在哈希表A中发现有一个图形G1与特征完全相同,因此将G1标记为公共图形,并将G4删除。读取到G5时在哈希表A中未发现相同的图形,因此***哈希表B中。G6与G4情况类似。
(2)删除哈希表中的公共图形
删除哈希表A中标记为公共图形的G1和G2两个图形。
(3)输出哈希表中保留的图形
输出哈希表A中保留的图形G3和哈希表B中保留的图形G5。
具体实施方式2
仍以图1为例,但只使用一个哈希表A。读入过程中哈希表内容变化情况如图3
当读取到G5时,标记为只在第二个版图出现。删除公共图形G1、G2后,将剩余的图形G3和G5输出。
具体实施方式3
仍以图1为例,但使用3个哈希表:哈希表A、B、C分别保存只来自第一个版图的图形,只来自第二个版图的图形和公共图形。当G1、G2、G3读入以后,哈希表A中保存着这三个图形,哈希表B和C为空。读入G4时,将G1从哈希表A中移至哈希表C。G5***哈希表B中。G6与G4情况类似。最后哈希表A中有图形G3,B中有图形G5,C中有图形G1、G2。将哈希表A和B中的图形G3和G5输出。
具体实施方式4
本发明除了比较多边形以外,还可进行矩形、圆形、Path(导线)、文本等其它几何图形的比较。不同类型的几何图形具有不同的特征,但比较过程与多边形比较并无实质差异。例如,集成电路版图中有一种以坐标、字符串以及字体大小、方向等表示的文本图形,对这种文本图形的比较也可以采用上述具体实施方式1-3中的任何一种,与多边形比较的主要区别在于:
(1)计算哈希码所依赖的特征不同
多边形以顶点个数和各顶点的坐标为特征计算哈希码。文本图形则以文本的坐标、字符串及字体属性等为特征计算哈希码。
(2)比较两个图形是否相同所依赖的特征不同
两个多边形相同等价于它们的顶点个数以及各个顶点的坐标都相同。两个文本图形相同等价于它们坐标、字符串、字体等特征相同。
Claims (1)
1.集成电路版图数据库的快速比较方法,其特征在于,将版图数据库中的图形保存在哈希表中,利用哈希表能够进行快速查找和删除操作的特点,快速删除两个数据库的公共图形,输出差异图形。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104275476A CN103164489A (zh) | 2011-12-19 | 2011-12-19 | 集成电路版图数据库的快速比较方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104275476A CN103164489A (zh) | 2011-12-19 | 2011-12-19 | 集成电路版图数据库的快速比较方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103164489A true CN103164489A (zh) | 2013-06-19 |
Family
ID=48587583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104275476A Pending CN103164489A (zh) | 2011-12-19 | 2011-12-19 | 集成电路版图数据库的快速比较方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103164489A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572658A (zh) * | 2013-10-14 | 2015-04-29 | 北京华大九天软件有限公司 | 一种甚大规模集成电路版图层次比较工具的单元切分预处理方法 |
CN104572682A (zh) * | 2013-10-17 | 2015-04-29 | 上海华虹宏力半导体制造有限公司 | 对集成电路版图数据进行区域索引的方法 |
CN105468590A (zh) * | 2014-06-18 | 2016-04-06 | 上海华力微电子有限公司 | 一种提高图形搜索准确率的方法 |
CN107885950A (zh) * | 2017-11-24 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种pcb设计中删除重叠过孔的方法 |
CN108170831A (zh) * | 2018-01-11 | 2018-06-15 | 上海华虹宏力半导体制造有限公司 | 版图差异的量化分析方法 |
CN109165214A (zh) * | 2018-06-29 | 2019-01-08 | 铜陵市世纪朝阳数码科技有限责任公司 | 一种多点信息数据录入方法 |
CN113792525A (zh) * | 2021-11-16 | 2021-12-14 | 北京芯愿景软件技术股份有限公司 | 集成电路版图设计方法、装置及设备 |
CN115107121A (zh) * | 2022-07-25 | 2022-09-27 | 江苏超能新材料科技有限公司 | 一种lvs结构胶合板材的制备方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101630335A (zh) * | 2008-07-18 | 2010-01-20 | 纬衡浩建科技(深圳)有限公司 | 一种比较图纸之间的异同的方法 |
-
2011
- 2011-12-19 CN CN2011104275476A patent/CN103164489A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101162469A (zh) * | 2007-11-09 | 2008-04-16 | 清华大学 | 基于快照的细粒度文件与目录版本管理方法 |
CN101630335A (zh) * | 2008-07-18 | 2010-01-20 | 纬衡浩建科技(深圳)有限公司 | 一种比较图纸之间的异同的方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572658A (zh) * | 2013-10-14 | 2015-04-29 | 北京华大九天软件有限公司 | 一种甚大规模集成电路版图层次比较工具的单元切分预处理方法 |
CN104572658B (zh) * | 2013-10-14 | 2018-06-22 | 北京华大九天软件有限公司 | 一种甚大规模集成电路版图层次比较工具的单元切分预处理方法 |
CN104572682A (zh) * | 2013-10-17 | 2015-04-29 | 上海华虹宏力半导体制造有限公司 | 对集成电路版图数据进行区域索引的方法 |
CN104572682B (zh) * | 2013-10-17 | 2017-12-05 | 上海华虹宏力半导体制造有限公司 | 对集成电路版图数据进行区域索引的方法 |
CN105468590A (zh) * | 2014-06-18 | 2016-04-06 | 上海华力微电子有限公司 | 一种提高图形搜索准确率的方法 |
CN105468590B (zh) * | 2014-06-18 | 2020-06-30 | 上海华力微电子有限公司 | 一种提高图形搜索准确率的方法 |
CN107885950A (zh) * | 2017-11-24 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种pcb设计中删除重叠过孔的方法 |
CN108170831A (zh) * | 2018-01-11 | 2018-06-15 | 上海华虹宏力半导体制造有限公司 | 版图差异的量化分析方法 |
CN109165214A (zh) * | 2018-06-29 | 2019-01-08 | 铜陵市世纪朝阳数码科技有限责任公司 | 一种多点信息数据录入方法 |
CN113792525A (zh) * | 2021-11-16 | 2021-12-14 | 北京芯愿景软件技术股份有限公司 | 集成电路版图设计方法、装置及设备 |
CN113792525B (zh) * | 2021-11-16 | 2023-02-28 | 北京芯愿景软件技术股份有限公司 | 集成电路版图设计方法、装置及设备 |
CN115107121A (zh) * | 2022-07-25 | 2022-09-27 | 江苏超能新材料科技有限公司 | 一种lvs结构胶合板材的制备方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103164489A (zh) | 集成电路版图数据库的快速比较方法 | |
JP6998928B2 (ja) | データを記憶およびクエリするための方法、装置、設備、および媒体 | |
US8453091B1 (en) | Method and mechanism for managing hierarchical data for implementing region query | |
US8812272B2 (en) | Designing a modeled object within a session of a computer-aided design system interacting with a database | |
US10929433B2 (en) | Querying a database with morphology criterion | |
CN102598002B (zh) | 用于产生可编辑的三维模型的***和方法 | |
EP1989685B1 (en) | A method for comparing a first computer-aided 3d model with a second computer-aided 3d model | |
WO2022062610A1 (zh) | 信息展示方法、装置、电子设备以及存储介质 | |
CN104750907A (zh) | 三维建模对象的设计 | |
CN108205464A (zh) | 一种数据库死锁的处理方法、装置和数据库*** | |
CN107526746A (zh) | 管理文档索引的方法和设备 | |
US9304981B1 (en) | System and method for providing an inter-application overlay to communicate information between users and tools in the EDA design flow | |
JP2006277166A (ja) | 3次元形状比較プログラム及び3次元類似形状検索プログラム | |
US10409921B2 (en) | Designing industrial products by using geometries connected by geometrical constraints | |
JP6377743B2 (ja) | 中間文字ライブラリを構築する方法及び装置 | |
JP6603194B2 (ja) | 画面認識装置、画面認識方法、および、画面認識プログラム | |
JP6947503B2 (ja) | 量子化を用いた3dオブジェクトの位置特定 | |
US8407228B1 (en) | Method and mechanism for maintaining existence information for electronic layout data | |
US7761832B2 (en) | Method for incremental, timing-driven, physical-synthesis optimization under a linear delay model | |
CN112527196A (zh) | Cache读写方法、装置、计算机可读存储介质及电子设备 | |
US9632428B2 (en) | Method of determining device type and device properties and system of performing the same | |
CN108319750B (zh) | 基于dwg文件拆分和重组方法的地铁工程协同设计*** | |
US20240070805A1 (en) | Modifying Garment Design Using Style Line | |
CN110543480A (zh) | 一种基于cad***的孔表创建和更新***及***的使用方法 | |
CN115454977A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130619 |