CN102411643B - 集成电路版图验证自适应扫描线计算方法 - Google Patents
集成电路版图验证自适应扫描线计算方法 Download PDFInfo
- Publication number
- CN102411643B CN102411643B CN201010291055.4A CN201010291055A CN102411643B CN 102411643 B CN102411643 B CN 102411643B CN 201010291055 A CN201010291055 A CN 201010291055A CN 102411643 B CN102411643 B CN 102411643B
- Authority
- CN
- China
- Prior art keywords
- limit
- scanning line
- index
- line method
- merging
- 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
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
本发明公布了一种集成电路版图验证自适应扫描线解决方案(以下简称自适应方案),所属的技术领域是集成电路计算机辅助设计领域,尤其是涉及集成电路版图的设计规则检查(DRC)和版图与原理图的一致性检查(LVS)领域。本发明创造性地提出了归并扫描线方法和索引扫描线方法,并将这两种方法相结合生成自适应扫描线解决方案,用于解决甚大规模集成电路版图验证过程中所面临的运行时间过长,验证效率低,进而导致版图无法验证的问题。自适应方案有效地利用了版图数据局部特征,极好地发挥了归并扫描线方法与索引扫描线方法的特征优势,极大地提高了版图验证效率。
Description
技术领域
本发明是一种使用于集成电路版图验证工具中的扫描线计算方法,所属的技术领域是集成电路计算机辅助设计领域,尤其是涉及集成电路版图的设计规则检查(DRC)和版图与原理图的一致性检查(LVS)领域。
背景技术
近30年来,集成电路技术一直按照“摩尔定律”向前发展。芯片的特征尺寸越来越小,单个芯片的集成度也越来越高。随着芯片规模的扩大,在集成电路设计的各个阶段所需验证的设计规则也在不断增多。其中集成电路版图的设计规则检查(DRC)以及集成电路版图与原理图的一致性检查(LVS)变得越来越重要,它们对于消除错误、降低设计成本和减少设计失败的风险具有重要作用。在超大规模集成电路设计中,版图规模急剧膨胀,如何在有效时间内完成设计方案的验证工作成为各大EDA厂商急需解决的问题。
扫描线方法最初是为解决线段相交问题而提出的。因为其高效率而在图形运算中得到广泛应用,是目前已知的最有效的版图运算方法。其基本思想为:
(1)扫描线停顿点为线段的左、右端点及线段间的交点。
(2)垂直扫描线从左向右运动,在每一个停顿点处停留。起始于当前扫描线的所有线段进入当前工作表,终止于当前扫描线的所有线段从工作表中删去,跨越当前扫描线的线段仍然保留。
(3)在当前扫描线状态下,工作对象都在当前工作表中。
DRC不同于线段求交和图形的逻辑、拓扑运算,其任务是几何图形的尺寸检查。完成这一任务的关键是找出合适的检查边对,对此,扫描线方法具有独到的优势。扫描线方法是版图验证工具的核心技术,其性能的好坏直接影响集成电路版图验证工具的运行效率。
为了方便介绍,首先定义以下常用技术用语:
·新进边:左端点在当前扫描线上的边。
·离开边:右端点在当前扫描线上的边。
·变动边:新进边和离开边。
·经过边:当前扫描线上,非变动边外的所有边。经过边与当前扫描线在非端点处相交。
·水平边:边斜率k==0的边。
·斜边:边斜率k!=0的边。
一般扫描线方法需要遍历当前扫描线上所有的边,这种方法效率比较低。实际上,在大规模版图数据中,经过边占93.3%,变动边占6.7%;水平边占93.9%,斜边占6.1%。由此可见,非斜边的经过边的比例大概是87.6%(93.3%*93.9%)。而非斜边的经过边是不会对验证命令结果产生影响的。自适应方法的核心内容就是减少对非斜边经过边的无用遍历。
发明内容
本发明针对甚大规模集成电路版图验证过程中所面临的运行速度过慢,运行时间过长,导致版图验证最终不可解的问题,提出了一种自适应的扫描线计算方法。此方法能够正确的发挥归并扫描线方法和索引扫描线方法的特征优势,极大加速版图验证工具的运行速度,提高可验证版图规模。
本发明的主要技术方法包括以下六个方面:
第一,读新进边,更新离开边链表。附图1中的第1,2步。离开边链表是一个二维链表,第一维存放扫描线坐标值,第二维存放该扫描线下的离开边。每条新进边都需要加入离开边链表。离开边会对验证命令的输出结果产生影响,需要在当前扫描线上重新计算结果。
第二,分析当前扫描线状态,决定调用方式。附图1中的第3步。这一步是自适应概念的集中体现。归并扫描线方法在经过边数量少,变动边数量多的情况下效率高;而索引扫描线方法在经过边数量多,变动边数量少的情况下高效。本发明在以下两种情况下调用归并扫描线:
(1)经过边数量大于变动边数量10倍。
(2)索引扫描线连续执行次数超出了某一数值(步长)。
其他情况下调用索引扫描线方法。
第三,归并扫描线方法。附图1中的第4步。在归并扫描线方法中,离开边和经过边存放在历史边链表中;新进边在新进边链表中。这两个链表都是有序的,不同验证命令,排序方式可能不同。在当前扫描线上遍历边计算结果与二路归并排序是同时进行的。最终,新进边链表中的边会作为下一条扫描线中的历史边加入历史边链表。
索引扫描线需要依赖于归并扫描线。归并扫描线的另外两项任务是为索引扫描线建立索引和清除不在当前扫描线上的历史边。
(1)为索引扫描线建立索引。归并扫描线不使用索引,索引是专为索引扫描线准备的。在归并遍历过程中,每间隔一定数量S,取一条边加入索引链表中。索引边不能是斜边,因为斜边会调整排序位置。查找索引采用折半查找,遍历两条索引之间的边采用顺序查找。S的取值要适中。否则,如果S值过大,那查找就近似成为了顺序遍历,S取值过小,查找又近似成为折半查找。
(2)清除不在当前扫描线上的历史边。因为索引扫描线是不删除历史边的,归并扫描线必须完成这项任务,否则,当前内存中的边就会越积越多,内存越来越大,扫描线方法的效率也会越来越低。
参考图2,归并扫描线方法的实现包括以下8个步骤:
1)初始化。初始化需要清除索引、清除斜边列表和删除无用离开边列表。
2)判断是否读历史边。历史边和新进边链表都已排好序。当前读指针上的两条边,哪条排序结果小,就先读哪个链表。
3)读入一条历史边。移动历史边读指针到下一条边。
4)读入一条新进边。移动新进边读指针到下一条边。
5)插入历史边链表。对于新进边,要将新进边插入到历史边链表中。由于采用的是归并遍历,因此只需要将新进边插入到历史边链表的读指针之前即可。
6)计算结果并输出。这一步处理方法跟具体验证命令有关系,如果有需要,还需要匹配生成垂直边。可以设置一个缓冲区保存未匹配的变动边。
7)更新索引。归并扫描线需要为索引扫描线生成索引,索引的生成方式是采用间隔一定步长(本方法选取16)选取一个标兵边的方式。这里有一点需要指出,那就是斜边不能作为标兵边,因为斜边需要调整位置,这将导致相邻标兵边的位置调整,进而涉及索引更新的问题,索引更新的代价比较高昂,应该尽量避免。
8)判断边是否结束。判断两个链表的读指针是否已到结尾。
第四,索引扫描线方法。附图1中的第5步。扫描线的核心任务是找出需要处理的边对。当一条新进边加入时,索引扫描线通过索引表来查找该边应该插入的位置,然后在这个插入位置附近(向上或者向下)来寻找匹配边对,计算输出结果。索引扫描线对边的遍历是局部的,它无法建立索引。
索引扫描线不能删除历史边,因为一旦删除历史边,就要更新索引。但不删除无用历史边,为了保证正确性,这些边就需要在计算过程中过滤掉。一旦这些无用历史边积累过多,那过滤操作就对速度产生影响。为了解决这一问题,每隔一定步长,自适应方法强制调用一次归并扫描线方法,清理无用历史边并重建索引。参考附图3,索引扫描线方法的实现包括以下8个步骤:
1)初始化。排序当前离开边链表和删除无用离开边列表。
2)计算最小KEY值。KEY值是边在当前扫描线上的Y坐标值。新进边和离开边读指针所指向的边,那条边KEY值小,那个KEY值就是当前最小KEY值。
3)读入等于当前KEY值的所有边到边匹配器中。
4)判断匹配器是否为空。即匹配器中是否存在边。
5)生成“匹配边对”。匹配器中的边都是变动边,具有相同的KEY值。匹配器中的边按照逆时针排好序。也就是说排序方法是:先离开边,后新进边,离开边按照斜率递减、新进边按照斜率递增排序。从匹配器的第一条变动边开始,向后找到第一条相同图形号,并且方向匹配的边(同侧逆向,异侧同向)既是匹配边。生成的“匹配边对”在第8步计算结果,该“匹配边对”从匹配器中移除掉。
6)判断变动边是否结束。新进边和离开边是两个链表,判断这两个链表是否为空。
7)插入历史边链表。首先通过折半查找索引来确定索引查找区间(即相邻两条标兵边),区间内部采用顺序遍历的方式确定插入位置。
8)计算结果并输出。这一步处理方法跟具体验证命令有关。如果生成边对中有两条边,那么说明匹配边对具有相同的KEY值。否则,一条边需要跟不同KEY值的边进行匹配,匹配成功后会生成一条垂直边,垂直边会影响命令输出结果。对变动边的遍历是根据KEY值由底向上的,因此可以设置一个缓冲区来保存未匹配的变动边。
第五,计算下一条扫描线位置。附图1中的第6步。下一条扫描线位置需要从新进边和离开边链表中选取,获取两个链表头,值小的那一个是下一条扫描线位置。
第六,调整斜边位置。附图1中的第8步。在当前扫描线上,对输出结果产生影响的有两类边,一类是变动边,另一类就是斜边。水平边不需要重新排序,而斜边的顺序可能会发生改变。顺序一旦改变,也就会对输出结果产生影响。斜边调整是顺序进行的,如果斜率k>0,那该斜边需要向上调整位置,反之向下。在标准版图文件中,斜边的比例大概是6.1%。因此对斜边的处理不会成为扫描线方法的瓶颈。
附图说明
图1自适应扫描线方法流程图;
图2归并扫描线方法流程图;
图3索引扫描线方法流程图。
图4版图文件示例
具体实施方式
自适应方法能够分析版图局部数据(当前扫描线)特征,根据分析结果来决定扫描线执行方法。如果当前扫描线上的经过边数量大于变动边数量10倍,索引扫描线将会被调用;否则,归并扫描线会被调用。下面以附图4所示的版图文件为例,详细介绍自适应计算方法的执行过程。
附图4选取了,a,b,c,d,e,f,g,h共8个图形作为示例图形。在扫描线方法中,垂直边一般是不用存储的,扫描线可以根据匹配边对恢复垂直边。垂直边不存储可以降低内存并减小处理边规模。在附图4中,实线代表图形(边框除外),虚线表示扫描线。为了方便说明问题,“……”表示大量省略的图形和边。
1.在当前扫描线上,读新进边。第一条扫描线上的新进边有1、2、3、4、5、6、…。
2.将第1步中读入的新进边加入离开边链表。
3.判断扫描线调用类型。第一条扫描线上的经过边数量为0,不符合大于变动边10倍的条件,调用归并扫描线方法。转第4步。
4.执行归并扫描线方法。执行步骤如下:
1)初始化。第1条扫描线,索引、斜边链表和离开边链表都空。不需要调整。
2)判断读哪个链表。历史边链表为空,应该读新进边链表。转第3)步。
3)读入一条新进边6。
4)将6加入历史边链表。6号边同时需要加入离开边链表。6号边不是斜边,不需要加入斜边列表。
5)计算输出结果。
6)更新索引。6号边是第一条边,它将作为第一条索引信息加入索引链表。
7)当前边链表并没有结束,转第2)步,余下的新进边依次执行3)-7)步。
5.计算下一条扫描线位置。下一条扫描线在2号扫描线处。
6.第二次读新进边。新进边有来自b图形的7、8号边,d图形的9、10号边和f图形的11、12号边。
7.将第6步的新进边加入离开边链表。
8.判断扫描线调用类型。第二条扫描线处的经过边数量大于变动边数量10倍。调用索引扫描线方法。转第9步。
9.执行索引扫描线。执行步骤如下:
1)初始化。遍历斜边链表调整斜边位置,从离开边链表中删除无用离开边。
2)计算最小KEY值。最小KEY值为12号边的左端点Y坐标。
3)读入变动边到匹配器。匹配器读入12号边。
4)判断匹配器是否为空。不空转第5)步。
5)生成匹配边对。匹配边对中只有12号一条边。
6)插入历史边链表。12号边插入历史边链表。
7)计算并输出结果。当前匹配对仅有12号一条边,在计算结果完成后,12号边还要放入边匹配缓冲区中(12号边的匹配边11在下一个KEY值中)。转第8)步。
8)当前匹配器为空,计算下一KEY值。循环执行3)-7)步,直到每一条变动边都被处理。
10.第3到第17条扫描线全部调用索引扫描线。因此索引扫描线共执行了16次。
11.在第18条扫描线中,尽管边数量符合索引扫描线调用条件,但由于索引扫描线连续执行次数超过了16次,因此强制调用归并扫描线,更新索引,删除无用历史边。
12.自适应方法按照以上所述方式继续运行,直到结束。
Claims (3)
1.一种甚大规模集成电路版图验证扫描线计算方法,其技术特征在于包含以下几个步骤:①统计当前扫描线上的经过边和变动边数量;②分析当前扫描线状态,决定调用归并扫描线方法还是索引扫描线方法;③如果调用归并扫描线方法,则遍历所有边,清理无用离开边并且重建索引;④如果调用索引扫描线方法,则根据索引进行局部遍历,找出需要处理的边对;⑤以上步骤重复若干次,直到所有边都被处理则停止;其中,变动边指新进边和离开边;经过边指当前扫描线上,非变动边外的所有边;新进边指左端点在当前扫描线上的边;离开边指右端点在当前扫描线上的边;历史边指离开边和经过边;其中,归并扫描线方法在经过边数量少,变动边数量多的情况下高效;索引扫描线方法在经过边数量多,变动边数量少的情况下高效。
2.根据权利要求1所述的方法,其技术特征在于:①归并扫描线方法把当前扫描线上的边分别放在历史边链表和新进边链表中;②归并扫描线方法为索引扫描线方法建立索引和清除不在当前扫描线上的历史边。
3.根据权利要求1所述的方法,其技术特征在于:①索引扫描线方法通过索引表来查找新进边应该插入的位置,并在插入位置附近找出需要处理的边对;②索引扫描线方法需要依赖归并扫描线方法建立的索引。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010291055.4A CN102411643B (zh) | 2010-09-26 | 2010-09-26 | 集成电路版图验证自适应扫描线计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010291055.4A CN102411643B (zh) | 2010-09-26 | 2010-09-26 | 集成电路版图验证自适应扫描线计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102411643A CN102411643A (zh) | 2012-04-11 |
CN102411643B true CN102411643B (zh) | 2014-06-25 |
Family
ID=45913714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010291055.4A Active CN102411643B (zh) | 2010-09-26 | 2010-09-26 | 集成电路版图验证自适应扫描线计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102411643B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104715092B (zh) * | 2013-12-17 | 2017-10-10 | 北京华大九天软件有限公司 | 一种层次版图验证中快速建立Label与图形连接关系的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604089A (zh) * | 2003-09-29 | 2005-04-06 | 北京中电华大电子设计有限责任公司 | 基于边的倒序树扫描线算法优化层次版图验证技术 |
CN101464916A (zh) * | 2007-12-21 | 2009-06-24 | 北京中电华大电子设计有限责任公司 | 集成电路版图的器件属性计算方法 |
CN101593222A (zh) * | 2008-05-28 | 2009-12-02 | 北京华大九天软件有限公司 | 一种实现版图验证中密度检查的方法 |
-
2010
- 2010-09-26 CN CN201010291055.4A patent/CN102411643B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604089A (zh) * | 2003-09-29 | 2005-04-06 | 北京中电华大电子设计有限责任公司 | 基于边的倒序树扫描线算法优化层次版图验证技术 |
CN101464916A (zh) * | 2007-12-21 | 2009-06-24 | 北京中电华大电子设计有限责任公司 | 集成电路版图的器件属性计算方法 |
CN101593222A (zh) * | 2008-05-28 | 2009-12-02 | 北京华大九天软件有限公司 | 一种实现版图验证中密度检查的方法 |
Non-Patent Citations (2)
Title |
---|
VLSI版图DRC验证算法的优化;郭雅琳等;《微电子学与计算机》;20071231;第24卷(第11期);186-188 * |
郭雅琳等.VLSI版图DRC验证算法的优化.《微电子学与计算机》.2007,第24卷(第11期),186-188. |
Also Published As
Publication number | Publication date |
---|---|
CN102411643A (zh) | 2012-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6875365B2 (ja) | 電子地図における交差点を認識するための方法及び装置 | |
CN110490507B (zh) | 一种物流网络的新增线路检测方法、装置及设备 | |
US20110246955A1 (en) | Method, program, and apparatus for aiding wiring design | |
CN109993700B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN103076761A (zh) | 基于数控系统的刀具半径补偿的矢量计算方法 | |
CN101388079B (zh) | 一种图签识别方法 | |
CN109684190A (zh) | 软件测试装置和方法 | |
CN106156245B (zh) | 一种电子地图中的线要素合并方法及装置 | |
US8719746B1 (en) | Reduction of metal fill insertion time in integrated circuit design process | |
CN104142962A (zh) | 一种对电子地图的线要素进行处理的方法 | |
CN104331928A (zh) | 一种基于三角网的等高线高程自动赋值方法 | |
CN110704560A (zh) | 一种基于道路级拓扑的车道线组结构化的方法及装置 | |
Stanojevic et al. | FedEx-a fast bridging fault extractor | |
CN106650127B (zh) | 一种自动将多段线转换成封闭图形的方法 | |
CN117423000B (zh) | 一种基于mars的道路纵断面线形智能重构的方法 | |
CN102411643B (zh) | 集成电路版图验证自适应扫描线计算方法 | |
CN112232018B (zh) | 一种基于有向图的连接线表示方法 | |
CN109308402A (zh) | 曲面钢箱桥梁设计数据的提取方法 | |
CN107818131A (zh) | 一种使用二进制字符串来比较行程路径的方法 | |
US8966428B2 (en) | Fixed-outline floorplanning approach for mixed-size modules | |
CN114485681B (zh) | 一种利用dr轨迹评价中精度地图数据一致率的方法 | |
CN116300946A (zh) | 一种自动装载机的路径规划方法、装置、设备及介质 | |
CN107644422A (zh) | 基于双重空间数据组织的海量点云Delaunay三角网构建方法 | |
CN109718550B (zh) | 一种游戏地图中多物块拼接体的绘制方法及终端 | |
Wu et al. | Hetero Layer Fusion Based Architecture Design and Implementation for of Deep Learning Accelerator |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee after: Beijing Huada Jiutian Technology Co.,Ltd. Address before: 100102 floor 2, block a, No.2, lizezhong 2nd Road, Chaoyang District, Beijing Patentee before: HUADA EMPYREAN SOFTWARE Co.,Ltd. |