CN104715098A - 一种集成电路设计规则文件的优化方法 - Google Patents

一种集成电路设计规则文件的优化方法 Download PDF

Info

Publication number
CN104715098A
CN104715098A CN201310691715.1A CN201310691715A CN104715098A CN 104715098 A CN104715098 A CN 104715098A CN 201310691715 A CN201310691715 A CN 201310691715A CN 104715098 A CN104715098 A CN 104715098A
Authority
CN
China
Prior art keywords
subgraph
topological structure
layer
node
isomorphism
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
Application number
CN201310691715.1A
Other languages
English (en)
Other versions
CN104715098B (zh
Inventor
戴文华
李桢荣
张晋民
陈光前
王小波
白丽双
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Empyrean Technology Co Ltd
Original Assignee
Beijing CEC Huada Electronic Design Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing CEC Huada Electronic Design Co Ltd filed Critical Beijing CEC Huada Electronic Design Co Ltd
Priority to CN201310691715.1A priority Critical patent/CN104715098B/zh
Publication of CN104715098A publication Critical patent/CN104715098A/zh
Application granted granted Critical
Publication of CN104715098B publication Critical patent/CN104715098B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种集成电路设计规则文件的优化方法,属于半导体集成电路设计自动化领域,主要用于优化集成电路设计中验证模块的规则文件。本发明针对集成电路版图设计规则文件开发中,宏的使用不充分、过于依赖开发人员经验的弊端,提供了一种自动分析和生成宏的方法。它首先解析设计规则文件,按照各图层之间的依赖关系生成所有图层组成的拓扑结构有向图,然后查找所有同构的拓扑结构子图,再对每组同构的拓扑结构子图生成宏结构并用宏结构替换原有设计规则的相应内容,从而能够帮助设计规则开发人员优化规则内容,理清规则逻辑,并使开发效率显著提高,后期的维护和修改更加方便。

Description

一种集成电路设计规则文件的优化方法
技术领域
本发明属于半导体集成电路自动化设计领域,主要涉及后端版图设计和验证,尤其是集成电路版图的设计规则检查(DRC)和版图与原理图的一致性检查(LVS)领域。 
背景技术
版图的设计和验证是集成电路设计流程中重要的一环,高效准确的验证能够有效地提高集成电路设计的效率,极大降低设计失败的风险。集成电路版图的设计规则用来控制版图的验证内容,它一般会先定义版图中的图层,然后通过一些规则命令来检查这些图层间或图层内的参数值(比如间距)是否在工艺制造允许的范围内,从而达到版图验证的目的。设计规则的内容一般保存在设计规则文件中,其内容与集成电路设计的工艺相关,对于不同的工艺(比如90nm,65nm,40nm),设计规则文件的内容也是不相同的。 
设计规则文件一般由相关的设计人员开发,他们会根据版图的工艺来逐步添加验证命令,以验证相关的图层。由于工艺在不断地改进和优化,这会使得设计规则文件也需要不断地开发和维护。开发人员在开发和维护设计规则文件的时候,经常需要重复地修改或调整某些命令,以修改错误或提高验证的效率。原先的做法是开发人员自己找到所有使用过这些命令的地方去修改,这种做法很费时,还容易出错。为了解决这种维护的困难,一般的设计规则文件语法都提供了一种宏定义和调用的方法,它可以将一些命令语句的组合内容定义成一个宏,然后其它使用这些组合内容的地方都改成宏的调用。在使用这种宏的方法下,开发人员可以只修改宏定义中内容就完成其它所有调用处的修改,大大地提高了开发和维护效率。不仅如此,宏的使用还有利于优化设计规则文件的内容,并使其逻辑结构更清晰,这就更方便维护和修改了。但是开发人员对于宏的使用,一般是根据经验定义若干个可能会用到的宏,供后续开发使用。这种做法有一些缺陷:1)完全依赖于开发人员的经验;2)不能充分地找出设计规则中所有的可提取宏。 
 基本概念 
(1)  图层:在验证的设计规则文件中,图层包括原始图层和派生图层(如无特殊指定,本文中所描述的图层均指派生图层)。原始图层与版图中的基本图层一致。派生图层是对一个或多个原始图层或派生图层通过命令生成的新图层,该命令即为派生图层的生成命令。
(2)  命令:在验证的设计规则文件中,命令指对一个或多个图层通过几何运算(如与、或运算)派生出新的图层,新的图层即为命令的输出图层。 
(3)  图层深度:在验证的设计规则文件中,任一派生图层,都是由某一个或多个原始图层通过若干条命令的几何运算得出的,其中,若某个原始图层通过的命令条数最多,则该原始图层通过的命令条数即为该派生图层的图层深度。 
发明内容
本发明针对集成电路版图设计规则文件开发中,宏的使用不充分、过于依赖开发人员经验的弊端,提供了一种自动分析和生成宏的方法,能够帮助设计规则开发人员优化设计规则文件的内容,并使其逻辑结构清晰简洁,从而能大大地提高开发效率,减少维护代价。 
    本发明首先解析设计规则文件,按照各图层之间的依赖关系生成所有图层组成的拓扑结构有向图G,然后查找所有同构的拓扑结构子图,再对每组同构的拓扑结构子图生成宏结构并用宏结构替换原有设计规则的相应内容。本发明的特征步骤如下: 
1    解析设计规则文件,按照各图层之间的依赖关系生成所有图层组成的拓扑结构有向图G,并建立命令到其所有输出图层的索引Map
2    遍历拓扑结构有向图G中所有图层的生成命令,按使用频率从高到低排序,图层深度的范围从拓扑结构有向图G的最大图层深度值到2,然后命令与图层深度两两组合,生成条件表C{C1, C2 …}(其中每个条件Ci包括命令和图层深度);遍历条件表C,根据每一个条件Ci查找同构的拓扑结构子图,即特征步骤3-5;
3    根据条件Ci中的命令,从索引Map中找到拓扑结构有向图G中该命令的所有输出图层集合A;遍历集合A,以当前图层An为起始节点,按照条件Ci中的图层深度在拓扑结构有向图G中提取出拓扑结构子图Tn;最后由图层集合A生成一个拓扑结构子图集合T{T1, T2 …}
4    对拓扑结构子图集合T中的所有子图Tn进行哈希和归类,得到多个拓扑结构子图集合T`n{T`n1, T`n2 …}(n=a,b…)
4.1   哈希方法:从拓扑结构子图Tn的起始节点图层R开始,遍历子图,哈希每一个节点中图层的生成命令,并将哈希值做移位相加;
4.2   归类:将拓扑结构子图集合T按哈希值分解成多个拓扑结构子图集合T`n{T`n1, T`n2 …}(n=a,b…),其中哈希值相同的子图放入同一个集合,哈希值不同的子图不放入同一个集合;
5    遍历所有的拓扑结构子图集合T`n(n=a,b …),对子图集合T`n中的所有子图进行同构比较,并最终得到同构子图集合ST(STn1, STn2 …)(n=a,b…)。其中同构比较指多节点同步遍历子图集合T`n,并在遍历中每一步对子图集合T`n做一次等价类拆分:
5.1   多节点同步遍历:定义一节点数组VnVn的节点数目等于集合T`n中的子图数量),分别存储T`n中对应子图的起始节点;取T`n中某一子图T`n1为参照,Vn中对应节点Vn1遍历子图T`n1,同时其它节点Vni做同步遍历操作,存储对应子图T`ni的对应节点;针对遍历中Vn的每一组节点,做等价类拆分步骤;
5.2   等价类拆分:处理节点数组Vn,按各节点内图层的生成命令内容是否相同将子图集合T`n拆分成多个子图集合,其中集合内的子图所对应节点命令内容相同,集合间的子图所对应节点命令内容不相同,这样,最终集合T`n将被拆分成同构子图集合STn
6    遍历所有的同构子图集合ST(STn1, STn2 …)(n=a,b…),对每一个同构子图集合STn,生成宏结构,并进行内容替换:
6.1   输出宏结构的定义:自动生成宏名AutoMACROn,选择某一同构子图STn1,遍历子图,输出每一个图层及其生成命令;
6.2   内容替换:遍历STn中所有子图,将其在规则文件中的原始内容替换为宏调用。
  
附图说明
图1自动宏提取流程图 
图2设计规则文件的拓扑结构有向图
图3设计规则文件的拓扑结构子图
具体实施方式
规则文件范例F: 
X1 = AND LA1 LB1 [OPTION1]
OUT1 = NOT X1 L0
X2 = AND LA2 LB2 [OPTION1]
OUT2 = NOT X2 L0
X3 = AND LA3 LB3 [OPTION2]
OUT3 = NOT X3 L0
X4 = AND LA4 LB4 [OPTION2]
OUT4 = NOT X4 L0
X5 = OR LA5 LB5
OUT5 = NOT X5 L0
X6 = OR LA6 LB6
OUT6 = NOT X6 L0
以上面所列的一段简易的设计规则文件F为例,本方法的具体实施步骤如下:
1)   拓扑结构有向图生成:解析设计规则文件F,按照图层(L0, LA1, LB1, LA2, LB2, LA3, LB3, LA4, LB4, LA5, LB5, LA6, LB6, X1, X2, X3, X4, X5, X6, OUT1, OUT2, OUT3, OUT4, OUT5, OUT6)之间的依赖关系生成所有图层组成的拓扑结构有向图G如图2(图中虚线表示两端为同一图层);建立命令到其所有输出图层的索引关系Map(NOT:{OUT1, OUT2, OUT3, OUT4, OUT5, OUT6},OR:{X5,X6},AND:{X1,X2,X3,X4})
2)   条件表生成:遍历拓扑结构有向图G中的所有图层的生成命令,按使用频率从高到低排序,结果为{NOT,AND,OR},图层深度的范围从G中的最大图层深度值到2,结果为,命令与图层深度两两组合,生成条件表C{<NOT,2>,<AND,2>,<OR,2>}。遍历条件表C中的条件,作为输入开始循环实施步骤3)-5)。下面以条件<NOT,2>为例,描述步骤3)-5)实施过程。 
3)   建立拓扑结构子图集合:以条件<NOT,2>中的命令NOT为关键字查找Map对应的图层列表A{OUT1,OUT2,OUT3,OUT4,OUT5,OUT6};遍历图层列表A,对每一个图层,按照条件中的图层深度2在拓扑结构有向图G中提取出以该图层为起始节点图层的拓扑结构子图集合T{T1,T2,T3,T4,T5,T6}(T1:<OUT1,X1>,T2:<OUT2,X2>,T3:<OUT3,X3>,T4:<OUT4,X4>,T5:<OUT5,X5>,T6:<OUT6,X6>)(图3为拓扑结构子图T1)。 
4)   对所有的拓扑结构子图进行哈希和归类:对集合T中的所有子图,从子图的起始节点图层开始(如T1,从OUT1开始),遍历子图(顺序为OUT1->X1->LA1->LB1->L0),逐步哈希每一个节点中图层的生成命令,同一种命令的哈希值相同;对所有子图哈希完成后,按哈希值对子图进行归类,得到两个拓扑结构子图集合:T`1{T1,T2,T3,T4}和 T`2{T5,T6}。 
5)   对子图集合T`1T`2中的各子图做同构比较:对T`1,定义节点数组V<V1,V2,V3,V4>,初始值<OUT1,OUT2,OUT3,OUT4>,以子图T1为参照,节点数组V做多节点同步遍历操作(顺序为<OUT1,OUT2,OUT3,OUT4>-><X1,X2,X3,X4>-><LA1,LA2,LA3,LA4>-> <LB1,LB2,LB3,LB4>-><L0,L0,L0,L0>),逐步对T`1做等价类拆分,由于只有{X1,X2}{X3,X4}中的AND命令内容不同(一为OPTION1,另一为OPTION2),所以第二步的等价类拆分集合{T1,T2,T3,T4}最拆分成{T1,T2}{T3,T4},并保持到最后;对T`2,处理步骤与T`1相同,最后得到的等价类集合为{T5,T6};最终得到同构子图集合ST1{T1,T2}ST2{T3,T4}ST3{T5,T6}。 
6)   生成宏结构,进行内容替换:处理完条件表C后,最终的同构子图集合为ST1ST2ST3,根据各集合中的内容,生成对应宏结构,并根据其可替换的拓扑结构子图,优化设计规则文件。 
最后,设计规则文件内容转换如下: 
MACRO AutoMACRO1 LA1 LB1 L0
{ X1 = AND LA1 LB1 [OPTION1]
NOT X1 L0 }
MACRO AutoMACRO2 LA3 LB3 L0
{ X3 = AND LA3 LB3 [OPTION2]
NOT X3 L0 }
MACRO AutoMACRO3 LA5 LB5 L0
{ X5 = OR LA5 LB5
NOT X5 L0 }
OUT1 = MACRO AutoMACRO1 LA1 LB1 L0
OUT2 = MACRO AutoMACRO1 LA2 LB2 L0
OUT3 = MACRO AutoMACRO2 LA3 LB3 L0
OUT4 = MACRO AutoMACRO2 LA4 LB4 L0
OUT5 = MACRO AutoMACRO3 LA5 LB5 L0
OUT6 = MACRO AutoMACRO3 LA6 LB6 L0。

Claims (6)

1.本发明提供一种集成电路设计规则文件的优化方法,其特征在于:首先分析设计规则文件内容中图层之间的关系,得到所有图层组成的拓扑结构有向图,然后查找所有同构的拓扑结构子图,再对每组同构的拓扑结构子图生成宏结构并用宏结构替换原有设计规则的相应内容。
2.根据权利要求1所述的分析设计规则文件内容中图层之间的关系,得到所有图层组成的拓扑结构有向图,其特征在于:解析设计规则文件,按照各图层之间的依赖关系生成所有图层组成的拓扑结构有向图G,并建立命令到其所有输出图层的索引Map;遍历拓扑结构有向图G中所有图层的生成命令,按使用频率从高到低排序,图层深度的范围从拓扑结构有向图G的最大图层深度值到2,然后命令与图层深度两两组合,生成条件表C{C1, C2 …}(其中每个条件Ci包括命令和图层深度);遍历条件表C,根据每一个条件Ci查找同构的拓扑结构子图。
3.根据权利要求1所述的在整个规则内容的拓扑结构有向图中,查找所有同构的拓扑结构子图,其特征在于:
第一步,根据条件Ci中的命令,从索引Map中找到拓扑结构有向图G中该命令的所有输出图层集合A;遍历集合A,以当前图层An为起始节点,按照条件Ci中的图层深度在拓扑结构有向图G中提取出拓扑结构子图Tn;最后由图层集合A生成一个拓扑结构子图集合T{T1, T2 …}
第二步,对拓扑结构子图集合T中的所有子图Tn进行哈希和归类,得到多个拓扑结构子图集合T`n{T`n1, T`n2 …}(n=a,b…)
第三步,遍历所有的拓扑结构子图集合T`n(n=a,b …),对子图集合T`n中的所有子图进行同构比较,并最终得到同构子图集合ST(STn1, STn2 …)(n=a,b…)
4.根据权利要求1所述的对每组同构的拓扑结构子图生成宏结构并用宏结构替换原有设计规则的相应内容,其特征在于:遍历所有的同构子图集合ST(STn1, STn2 …)(n=a,b…),对每一个同构子图集合STn,生成宏结构,并进行内容替换。
5.根据权利要求3所述的对拓扑结构子图集合T中的所有子图Tn进行哈希和归类,得到多个拓扑结构子图集合T`n{T`n1, T`n2 …}(n=a,b…),其特征在于:
    第一步,哈希方法:从拓扑结构子图Tn的起始节点图层R开始,遍历子图,哈希每一个节点中图层的生成命令,并将哈希值做移位相加;
    第二步,归类:将拓扑结构子图集合T按哈希值分解成多个拓扑结构子图集合T`n{T`n1, T`n2 …}(n=a,b…),其中哈希值相同的子图放入同一个集合,哈希值不同的子图不放入同一个集合。
6.根据权利要求3所述的遍历所有的拓扑结构子图集合T`n(n=a,b …),对子图集合T`n中的所有子图进行同构比较,并最终得到同构子图集合ST(STn1, STn2 …)(n=a,b…),其特征在于:多节点同步遍历子图集合T`n,并在遍历中每一步对子图集合T`n做一次等价类拆分;
    6.1 多节点同步遍历:定义一节点数组VnVn的节点数目等于集合T`n中的子图数量),分别存储T`n中对应子图的起始节点;取T`n中某一子图T`n1为参照,Vn中对应节点Vn1遍历子图T`n1,同时其它节点Vni做同步遍历操作,存储对应子图T`ni的对应节点;针对遍历中Vn的每一组节点,做等价类拆分步骤;
    6.2 等价类拆分:处理节点数组Vn,按各节点内图层的生成命令内容是否相同将子图集合T`n拆分成多个子图集合,其中集合内的子图所对应节点命令内容相同,集合间的子图所对应节点命令内容不相同,这样,最终集合T`n将被拆分成同构子图集合STn
CN201310691715.1A 2013-12-17 2013-12-17 一种集成电路设计规则文件的优化方法 Active CN104715098B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310691715.1A CN104715098B (zh) 2013-12-17 2013-12-17 一种集成电路设计规则文件的优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310691715.1A CN104715098B (zh) 2013-12-17 2013-12-17 一种集成电路设计规则文件的优化方法

Publications (2)

Publication Number Publication Date
CN104715098A true CN104715098A (zh) 2015-06-17
CN104715098B CN104715098B (zh) 2017-08-11

Family

ID=53414424

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310691715.1A Active CN104715098B (zh) 2013-12-17 2013-12-17 一种集成电路设计规则文件的优化方法

Country Status (1)

Country Link
CN (1) CN104715098B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004042622A1 (ja) * 2002-11-08 2004-05-21 Renesas Technology Corp. 半導体集積回路の開発方法及び半導体集積回路の開発支援プログラム
CN101127056A (zh) * 2006-08-16 2008-02-20 东部高科股份有限公司 使用虚拟层改变物理版图数据的方法
CN102314531A (zh) * 2010-07-02 2012-01-11 北京华大九天软件有限公司 集成电路版图自动构造层次方法
CN102402631A (zh) * 2010-09-10 2012-04-04 北京华大九天软件有限公司 一种集成电路层次网表比较方法
CN102411642A (zh) * 2010-09-26 2012-04-11 北京华大九天软件有限公司 一种集成电路门电路识别方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004042622A1 (ja) * 2002-11-08 2004-05-21 Renesas Technology Corp. 半導体集積回路の開発方法及び半導体集積回路の開発支援プログラム
CN101127056A (zh) * 2006-08-16 2008-02-20 东部高科股份有限公司 使用虚拟层改变物理版图数据的方法
CN102314531A (zh) * 2010-07-02 2012-01-11 北京华大九天软件有限公司 集成电路版图自动构造层次方法
CN102402631A (zh) * 2010-09-10 2012-04-04 北京华大九天软件有限公司 一种集成电路层次网表比较方法
CN102411642A (zh) * 2010-09-26 2012-04-11 北京华大九天软件有限公司 一种集成电路门电路识别方法

Also Published As

Publication number Publication date
CN104715098B (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
CN105389402A (zh) 一种面向大数据的etl方法和装置
CN102665231B (zh) 一种lte系统自动生成参数配置文件的方法
JP2000148808A (ja) スケジュ―リングされた動作記述に対するストラクチュラルrtlの正当性検証方法
CN103942108B (zh) Hadoop同构集群下的资源参数优化方法
CN101246516A (zh) 可执行于计算机系统的电路设计修改方法
CN103123607B (zh) 一种基于形式概念分析的软件回归测试方法
US11630983B2 (en) Graph conversion method
CN102402631B (zh) 一种集成电路层次网表比较方法
CN105320589A (zh) 云测试环境中测试脚本自动解析系统及其实现方法
CN105468797A (zh) 一种信息处理方法及装置
US9874810B2 (en) Layout decomposition methods and systems
CN104461548B (zh) 代码片段的添加方法和装置
Sanchez et al. Bigraphical modelling of architectural patterns
CN106445913A (zh) 基于MapReduce的语义推理方法及系统
US20200175122A1 (en) Hierarchy-driven logical and physical synthesis co-optimization
CN106326005A (zh) 一种迭代型MapReduce作业的参数自动调优方法
CN104253830B (zh) 一种基于位置的服务选择方法
CN102855278B (zh) 一种仿真方法和系统
CN104715098A (zh) 一种集成电路设计规则文件的优化方法
CN105989276B (zh) Rbac权限体系中的角色优化方法和装置
CN107315863B (zh) 布局优化方法及装置、终端及存储介质
Liroz-Gistau et al. FP-Hadoop: efficient execution of parallel jobs over skewed data
CN102436525B (zh) 一种集成电路设计过程中多节点并行自动修复保持时间违例的方法
US10620968B2 (en) Parameter determination device, parameter determination method, and medium
CN105260405B (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
GR01 Patent grant
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 Beijing city two Chaoyang District Lize Road No. 2 A block two layer

Patentee after: Beijing Huada Jiutian Technology Co.,Ltd.

Address before: 100102 Beijing city two Chaoyang District Lize Road No. 2 A block two layer

Patentee before: HUADA EMPYREAN SOFTWARE Co.,Ltd.