一种集成电路层次网表比较方法

文档序号:6331907阅读:260来源:国知局
专利名称:一种集成电路层次网表比较方法
技术领域
本发明属于半导体集成电路自动化设计领域,主要涉及后端版图设计和验证,尤其是版图(Layout)与原理图(Schematic) —致性检查(LVS-Layout Versus Schematic)。
背景技术
版图设计和验证是集成电路设计流程中重要的一环,高效准确的验证能够有效的提高集成电路设计的效率,极大降低设计失败的风险。然而随着工艺不断的向着纳米级进展,在超大规模乃至甚大规模集成电路设计中,版图规模急剧膨胀,传统的版图验证方法在计算速度和内存使用方面都远远落后于用户的需求。因而层次版图验证方法受到了重视, 它的优点是利用版图在设计过程中所具有的层次的特点,对多次重复出现的版图只需验证一次,减少冗余的操作和运算,从而有效提高计算效率。层次LVS验证,首先从版图中提取出层次网表,然后与原理图的层次网表进行同构比较,同构比较是基于层次结构进行比较。相对于传统的基于打散网表的LVS,层次化 LVS的思想就是利用原理图和版图网表本身具有层次性的特点,减少重复比较,避免了在打散情况下,若一个单元被引用了 η次,则打散LVS要对这个单元的内容作η次比较。若单元内有一个错,则打散LVS对同一个错会报η次等情况,该单元只需比较一次,报错也只有一次。由此可见,层次LVS比打散LVS充分利用了版图数据的层次化关系,在处理电路的规模、 减少数据处理时间、减少内存占用、和减少错误结果数量等诸方面有着极大的优越性。对规模达到或超过百万晶体管的芯片设计优势更加明显。层次的LVS验证,在理想情况下所有单元按照顺利只比较一次就能够完成LVS比较,但是在实际中,对称电路引起单元PORT(端口)的可交换性以及引用单元时PIN(引脚) 未匹配时造成的循环等待等问题会导致无法匹配、进入死循环或错误匹配从而报告大量重复错误。层次的LVS验证则着重于解决如何保证层次单元还未完全匹配时即可进行其他单元的比较,以及如何利用和处理好层次关系从而保证层次单元内部匹配的问题。

发明内容
本发明提供一种集成电路版图的层次网表比较方法,能够充分利用版图和原理图中原有的层次,在保证比较结果的准确性的同时减少层次比较迭代次数,加快LVS验证速度并且减少重复报错和错误匹配。本发明的主要思路对版图和原理图网表进行适当的层次预处理之后,按照逆拓扑顺利依次比较层次单元,层次单元可以通过PORT向外传递分组匹配信息或者引用PIN引脚向内传递分组匹配信息;将未完成匹配的层次单元挂起并追加到挂起队列尾部,并采用归纳、层次任意匹配和广播方法处理挂起队列中的层次单元直到所有挂起的层次单元全部完成匹配比较,而已经完成匹配比较的层次单元可以通过PORT和PIN引脚传递匹配分组信息给其他层次单元,从而完成所有层次单元的比较。层次单元可以由版图设计者输入指定,或者通过程序自动按照名字识别。


图1层次比较流程2层次比较实例图3实例的拓扑结构图
具体实施例方式
具体实施方式
包括两大步骤1)层次预处理,包括自动识别层次单元、打散Layout和原理图中无法一一对应的单元、处理短路问题、器件约简和无用浮空器件的过滤、门电路的识别等子步骤;2)层次比较,如附图1所示,比较流程如下①按照层次逆拓扑顺序遍历层次单元,依次比较各个单元,单元内部比较采用签名方法比较内部的器件、单元引用和线网,如果存在与PORT直接和间接相连接的器件、单元引用或线网不能确定匹配关系时,就将本单元加入挂起队列;②若挂起队列非空,则按照拓扑顺序遍历挂起队列中的层次单元并进行归纳,将父单元的匹配信息或分组信息通过引用PIN引脚传递给被引用单元对应的PORT, 获得匹配或分组信息的PORT再帮助单元内部进行比较,如果匹配成功则将该挂起单元从挂起队列中删除,如果所有挂起单元都没有从父单元获取到有效PORT匹配或分组信息,则进入③,否则执行④;③按照逆拓扑顺序遍历挂起单元队列并执行任意匹配;④按照逆拓扑顺序遍历挂起单元队列并进行广播,将子单元的PORT匹配或分组信息广播给所有父单元,遍历过程中父单元利用广播的匹配分组信息进行单元内部比较,完成比较则从队列中删除;⑤若挂起单元队列为空,则全部比较结束,否则转入②。其中归纳和广播方法步骤分别如下归纳方法(1)在按拓扑顺序比较挂起单元时,从匹配的单元引用的匹配的PIN出发向被子单元传回PORT的匹配或分组信息;(2)按拓扑次序逐个检查挂起单元,若某个子单元从父单元归纳回来的信息非空, 则从PORT出发做线网的归纳,若得到线网匹配对或分组信息,则启动该层次单元的单元内比较流程。广播方法子单元向所有父单元传递PORT匹配或分组信息,帮助父单元进程单元内部比较, 广播方法具体的步骤如下(1)按逆拓扑次序遍历挂起的层次单元;(2)对当前单元,向所有父单元传递PORT的匹配或分组信息,父单元中的子单元引用的对应PIN引脚获得PORT匹配或分组信息,并对子单元引用的周围线网和自身更新签名值,从而帮助单元内部比较。任意匹配方法(1)对层次单元内部所有未完成匹配的分组关系,按照组内节点数目排序,数目相等的以出现顺序排序;(2)取出排序后的第一组,选择组中Layout部分第一个节点与khematic部分的任一个节点组成匹配对,并从组内删除匹配点。下面以图2中的实例为例,描述具体实施过程,这里为了描述的方便,省略了器件属性值并且Layout和khematic的网表完全一致。术语和简写说明层次单元(XXX,YYY)表示由Layout单元XXX和khematic单元YYY所组成的层次单元;层次单元XXX 层次单元(XXX,XXX)的简写;匹配对(Nodel,Node2)表示 Layout 中 Nodel 与 Schematic 中 Node2 完全匹配, Nodel和Node2可以同时是线网或者器件或者单元实例;分组关系{(Nodel,Node2,..,Noden),(_Nodel, _Node2,…,_Noden)}表示 Layout 中节点 Nodel, Node2, . . , Noden 与 Schematic 中 _Nodel, _Node2, ·.., _Noden 不能确定具体的一一对应的匹配关系,但属于同一组,即Layout中第i个节点Nodei有可能与 Schematic (_Nodel, _Node2, ···, _Noden)Schematic ψ (_ Nodel, _Node2, ...,_Noden)以外的其他节点匹配。下面是附图2中实例的具体网表,其中Layout Netlist是从版图抽取出来的网表Layout Netlist . subckt TOPX3 elk en elk en 11 22 CellB. ends. subckt CellB 1 2 3 4 9 10Xl 5 6 569 CellARl 1 5 RESR2 2 6 RESCl 569 9X2 7 8 7810 CellAR3 3 7 RESR4 4 8 RESC2 7810 10 CAP. ends.subckt CellA 1 2 Out. endsSchematic Netlist . subckt TOPX3 elk en elk en 11 22 CellB. ends.subckt CellB 1 2 3 4 9 10Xl 5 6 569 CellARl 1 5 RES
R2 2 6 RESCl 569 9X2 7 8 7810 CellAR3 3 7 RESR4 4 8 RESC2 7810 10 CAP. ends.subckt CellA 1 2 Out. ends图2即为上述网表的逻辑图,其中每个灰色框内的电路结构图为层次单元;图3是实例的拓扑结构图,即=TOP引用CellB, CellB引用CellA ;层次单元中左边代表 Layout Netlist,右边代表 Schematic Netlist0首先,通过层次预处理,识别出层次单元(TOP, TOP), (CellB, CellB), (CellA, CellA),其中层次单元CellA中内部正好识别成一个二输入的与非门,线网1和2是输入, 线网out是输出,这样CellA中只留下一个与非门的引用,不再保留原先的四个MOS器件, 其他层次预处理步骤在本例中没有体现;然后进行层次比较,步骤①先按照层次逆拓扑顺序遍历层次单元,如图3所示,即依次比较层次单元CellA,CellB, TOP ;层次单元CellA内部通过签名方法可以很容易匹配与非门的引用以及线网out,即Layout的线网out与khematic的线网out匹配,而作为与非门输入的线网1和2则由于存在可交换性,签名值暂时不能确定最终的匹配关系,得到分组{(1,2),(1, },因此层次单元CellA挂起,加入挂起层次单元队列的尾部;层次单元 CelIB在内部签名方法后发现Layout的线网1、2、3、4与khematic的线网1、2、3、4签名值相同无法确定匹配关系,成为一组{(1,2,3,4), (1,2,3,4)},同样有分组{(5,6,7,8), (5, 6,7,8)}, {(9,10),(9,10)},以及单元实例分组{(XI、X2),(XI、X2)},因此层次单元 CellB 挂起并追加到挂起层次单元队列的尾部;层次单元TOP则比较容易得到Layout单元实例 X3与khematic单元实例X3匹配,Layout线网elk与khematic线网elk匹配,Layout 线网甜与义!^!!!站化线网en匹配,而线网分组{(11,12),(11,12)}则同样无法匹配,层次单元TOP也挂起并追加到挂起层次单元队列尾部;步骤②因为挂起队列中存在CellA,CellB, TOP,需要启动hdude方法,按照拓扑顺序遍历,即TOP->CellB->CellA,对于层次单元Τ0Ρ,其父单元不存在,因此继续挂起;对于层次单元CellB,从父单元TOP中获取PORT匹配关系会发现PORT中分组情况由{(1,2,3, 4),(1,2,3,4)}变成为{(1,3), (1,3)} 一组,{(2,4), (2,4}} 一组,其他仍然不能匹配;对层次单元CellA,从父单元CellB中获取到PORT的分组关系由{(1,2), (1,2)}变成{⑴, (I)M (2),(2)},即得到匹配对(1,1),(2,2),则层次单元CellA完全匹配,从队列中删除;由于从父单元获取到有效分组匹配信息,因此接下来进入步骤④,即按照逆拓扑顺序遍历挂起队列中的层次单元,也就是CellB-XTOP,对于层次单元CellB,子单元CellA 虽然已经匹配,但是{(1,3), (1,3)}, {(2,4), (2,4}}和{(9,10), (9,10)}这些 PORT 相关的线网分组并不能进一步划分,即CellB仍然挂起,对于TOP也是如此;步骤⑤由于队列非空,因此回到步骤②;
步骤②,按照拓扑顺序遍历T0P->CellB并从各自的父单元获取分组匹配信息,无法获取有效分组匹配信息,则继续挂起;步骤③开始执行,按照逆拓扑顺序先遍历到层次单元CellB,其分组有{(1,3), (1,3)}, {(2,4), (2,4}}和{(9,10),(9,10)},按照组内元素个数排序,个数相同的按照出现顺序排序,排序后选取第一组,对选择出来的组进行任意匹配,这里选择出的是{(1,3), (1,3)},任意匹配可能得到匹配(1,1),(3,3)或者(1,3),(3,1),假设得到前者,则自身继续分析匹配可以由分组{(2,4),(2,4}}进一步得到新的匹配点0,2),0,4),以及内部其他节点 Rl, R2,R3,R4,5,6,7,8,XI,X2,Cl,C2,9,10 的匹配关系(R1,Rl),(R2,R2),(R3, R3),(R4,R4),(5,5,), (6,6), (7,7), (8,8), (XI,XI),(X2,X2),(Cl,Cl),(C2,C2),(9,9), (10,10),于是CellB完全匹配,从挂起队列中删除并转入步骤④;步骤④则按照逆拓扑顺序遍历挂起队列,即TOP,从子单元匹配后PORT的对应关系传递过来可以很容易得到(11,11),(12,12)匹配关系,至此TOP也完全匹配从挂起队列中删除,进入步骤⑤结束。
权利要求
1.一种集成电路层次网表比较方法,用于比较版图抽取出来的层次网表和原理图导出的层次网表,以验证版图设计与原理图的一致性,该方法首先对版图网表和原理图网表进行层次预处理,然后进行所有层次单元的比较,特征在于先按照逆拓扑序依次比较各个层次单元,不能完全匹配的层次单元暂时挂起加入挂起队列尾部,然后按照拓扑序遍历挂起队列并采用归纳方法将父单元内匹配信息通过引脚传递给子单元,子单元根据归纳信息进行单元内部比较,如果归纳方法对所有挂起单元均失败则按照逆拓扑序遍历挂起队列并采用层次任意匹配方法获得匹配点,再按照逆拓扑序遍历挂起队列并采用广播方法将子单元内部匹配信息通过端口传递给父单元,父单元根据广播信息进行单元内部比较,循环执行归纳、广播以及层次任意匹配方法直到挂起队列为空。
2.根据权利要求1所述的一种集成电路层次网表比较方法,其特征在于所述归纳方法为按照拓扑序遍历挂起队列中的层次单元,将父单元中的匹配关系通过引脚传递给引用子单元的端口,子单元根据获得的匹配关系进行层次单元内部的比较。
3.根据权利要求1所述的一种集成电路层次网表比较方法,其特征在于所述广播方法为按照逆拓扑序遍历挂起队列中的层次单元,将子单元端口的匹配关系通过引脚传递给所有父单元,父单元根据获得的匹配关系进行单元内部的比较。
4.根据权利要求1所述的一种集成电路层次网表比较方法,其特征在于所述任意匹配方法为对层次单元内部所有未完成匹配的分组关系,按照组内节点数目排序,数目相等的以出现顺序排序,取出排序后的第一组,选择组中版图部分第一个节点与原理图部分的任一个节点组成匹配对,并从组内删除匹配点,其中节点是器件、线网或子单元引用。
全文摘要
本发明公开了一种集成电路层次网表比较方法,属于半导体集成电路设计自动化领域,主要用于后端版图设计时的版图与原理图一致性检查(Layout versus Schematic)。本发明通过传递端口(PORT)和引脚(PIN)的匹配信息来完成各个层次单元的比较,减少后端版图设计的迭代周期。其实现过程为对层次网表经过层次预处理后,先按照逆拓扑序依次比较各个层次单元,比较过程中不能完全匹配的层次单元则追加到挂起队列尾部;然后循环采用拓扑序进行归纳和逆拓扑序进行广播方法处理挂起队列中的层次单元,并且当归纳方法对所有挂起单元都失败时采用层次任意匹配法,如此反复直到挂起队列为空。
文档编号G06F17/50GK102402631SQ20101027939
公开日2012年4月4日 申请日期2010年9月10日 优先权日2010年9月10日
发明者戴文华, 李志梁, 李桢荣 申请人:北京华大九天软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1