一种层次化的集成电路版图短路查找方法与流程

文档序号:11155643
一种层次化的集成电路版图短路查找方法与制造工艺

一种层次化的集成电路版图短路查找方法,所属的技术领域是EDA(电子设计自动化),尤其是版图验证中的ERC(电气规则检查)和LVS(版图与原理图的一致性检查)。



背景技术:

近年来,集成电路技术一直按照“摩尔定律”向前发展。随着工艺不断向纳米级迈进,集成电路版图的规模急剧膨胀。版图数据库通常包含多个单元,且单元间存在调用关系,这种版图结构称为“层次结构”。在层次结构中,各单元可被多级、多次重复调用,从而可以用相对较少的数据量表示数量巨大的版图图形。传统的扁平化的验证方法把层次结构全部展开以后再进行计算,其计算时间和内存占用都远远超过了用户能接受的程度。而层次验证方法对每个单元只处理一次,能最大限度的避免重复计算和重复存储。

设计人员在集成电路版图设计中可能引入各种错误,短路就是常见的一种。短路是指本应属于两个线网的导体被错误的连接在了一起。检查短路的方法有多种,其中一种方法是,设计人员在一些特定的位置上放置文本,用于指定线网的名称;当两个线网短路时,这两个线网被合并为一个线网,从而一个线网上有两个不同名的文本,工具可根据这一条件发现短路,并找出连接这两个文本的短路路径。

ERC或LVS工具进行短路查找的工作过程是:(1)先进行线网提取,即根据工艺确定的图层间连接规则(例如metal1和metal2通过via1进行连接)把版图中的导体划分成若干个连通集,每个连通集是一个线网,同时要记录图形间的直接连接关系,这就形成了一个连接图G(V,E),其中,V是图形的集合,E是图形间直接连接关系的集合,每个线网是一个连通分图,不同线网互不连通;(2)然后利用文本标记对线网命名,只要一个文本标记的坐标位于指定图层的图形内部,则该图形所在的线网获得文本的名字,并记录文本与图形的直接连接关系;(3)对于有命名冲突的线网,采用某种最短路径算法(例如A*算法)找出连接不同文本的最短路径。



技术实现要素:

本发明的主要创新点是,利用甚大规模集成电路版图的层次化结构特点,使用层次连接图代替扁平连接图,自底向上形成每个单元的连接图,在顶层单元的连接图中查找短路,并把顶层单元的短路路径逐层展开,形成直观的扁平化短路路径。对于单元被大量重复调用的层次版图,这种短路查找方法能最大限度的减少重复存储和重复计算。

层次化的集成电路版图与扁平的版图结构不同,层次结构有多个单元,其中单元间有调用关系。当一个单元调用另一单元时,称前者为父单元,后者为子单元。调用关系可以有多级,同一单元可调用多个单元,也可被多个单元调用。对于给定的一对父子单元,父单元可以调用子单元多次,每次调用称为一个实例(instance)。一个单元不能调用本身,也不能调用对它有直接或间接调用关系的单元,即调用关系不能成环。这样形成的一个具有多级、重复调用的复杂的层次结构可以用很小的版图数据库表示规模极大的集成电路版图。在层次版图中,有一个唯一的不被其它单元调用的单元称为顶层单元。本发明主要涉及发生在顶层单元的短路,但对发生在非顶层单元的短路同样适用,只要将非顶层单元及其直接或间接调用的单元视为一个部分版图,将非顶层单元视为该部分版图的顶层单元,处理是类似的。

本发明的主要技术方案包括:使用层次连接图代替扁平连接图,并按三个步骤查找短路。

扁平连接图和层次连接图

与扁平版图对应的连接图为扁平连接图,把层次版图扁平化也可形成扁平连接图。扁平连接图把整个集成电路版图的图形连接关系用一个很大的图表示,当同一单元被重复调用时,相应的连接关系也要重复存储。这种扁平连接图的规模与层次深度(从顶层单元到叶子单元可能经历的最长路径)呈指数关系。例如TOP单元调用A单元3次,A单元调用B单元4次,则B单元的所有连接关系经过扁平化之后数据量放大为原来的12倍。实际版图的层次深度可达数十级,扁平连接图的空间消耗是不可接受的。

层次连接图包括一系列有调用关系的单元连接图,其中单元连接图与集成电路单元一一对应,单元连接图之间的调用关系与单元间的调用关系一一对应。在一个调用关系中,父单元和子单元的连接图分别称为父图和子图。一个连接图可分为多个连通分图,每个连通分图对应所在单元的一个线网。每个连通分图包括若干结点,每个结点对应该单元的一个图形或一个文本标记。

在一个单元中,有些图形与父单元或兄弟单元等非本单元的图形相连接,这样的图形在单元连接图中对应的结点称为该单元连接图的外部结点(Port),其余结点为内部结点。为了表示父图对子图的一次调用,子图的每个Port拷贝一个副本(Pin)放入父图中;子图的每个连通分图的所有内部结点抽象成一个虚拟结点,放入父图中,并将该虚拟结点与上述Pin一一连接。子图通常有大量内部结点,子图的一个实例只需要一个虚拟结点来代替大量内部结点,不需要把子图的每个内部结点都拷贝到父图中。在上面的示例中,需要把B单元的所有Port结点拷贝4份形成Pin,并产生4个虚拟结点,不需要拷贝12份。

基于层次连接图查找短路的三个步骤

一、自底向上形成每个单元的连接图

形成连接图采用自底向上的拓扑顺序,即处理一个单元之前,要把它的所有子单元都处理完毕。在并行计算中,没有直接或间接调用关系的两个单元可以同时处理。无论串行还是并行算法,顶层单元都是最后处理的。采用适当的算法(例如扫描线算法)对整个单元进行处理,得到所有图形间的直接连接关系,形成连接图G(V,E)。对于顶层单元,还要处理文本与图形间的连接关系,把文本也加入连接图中。

为了处理单元间的调用关系,在每个单元中生成连接图又分三步:

(1)建立与子单元的连接

若当前单元有子单元,需要把子单元的所有Port拷贝一个副本,称为Pin。子单元的每个连通分图对该子单元的每个实例生成一个虚拟结点放入当前单元的连接图,该虚拟结点与同一连通分图与同一实例对应的所有Pin连接。此外,子单元的Port对应的图形也要拷贝一个副本,以便在当前单元中处理跨层次的图形连接。上述拷贝Port或图形的操作称为“提升”。

(2)在当前单元建立图形间连接

当前单元的图形包括当前单元原有的图形和从子单元提升上来的图形。采用扫描线算法或其它方法建立图形间的连接关系,放入连接图。

(3)准备与父单元建立连接

在这一步,将可能与父单元的结点连接的结点标记为外部结点(Port)。除虚拟结点以外,每个结点对应一个图形。为了确定哪些图形可能与父单元连接,需要事先把父单元和兄弟单元等其它单元的图形投影下来,形成一个“影子”。这种投影过程在层次处理算法中是必不可少的,本发明不讨论这一问题。当前单元的结点有可能是从子单元提升而来,即Pin,Pin结点也可成为与更高层单元连接的Port,这样就把具有祖孙关系或其它间接调用关系的单元连接起来了。这一步骤不涉及虚拟结点。

如图1所示的版图结构,A单元有5个图形,分别编号为1-5,TOP单元调用A单元一次,并有两个文本标记VDD和GND,从TOP单元看(即把A单元的图形变换到TOP单元的坐标系),VDD和GND分别位于单元A的图形1和图形5的内部。这样建立的层次连接图如图2所示,其中图2(下)为A单元的连接图,5个图形用5个结点表示,它们的连接关系用线段表示。图形1和5为外部结点(Port)。图2(上)为TOP单元的连接图。A单元的两个Port 1和5拷贝成两个Pin 11和15放入TOP单元的连接图,Port和Pin的对应关系如虚线所示。由于A单元只有一个连通分图且A单元只被调用一次,在TOP单元生成一个虚拟结点V,并把V与两个Pin结点连接。虚拟结点V实际上代表了A单元的3个内部结点。另外,TOP单元的11和15分别与代表文本标记的两个结点连接起来。

二、在顶层单元的连接图中查找短路

从连接关系来看,顶层单元的连接图与普通的扁平连接图并无实质区别。在此连接图中,采用A*或其它算法进行最短路径查找,形成一条或多条连接不同名文本标记的短路路径。最短路径查找要求定义每两个直接连接结点之间的距离。距离如何定义没有固定的模式,一种可能的定义方式是:把每个图形的中心点作为其对应结点的位置,虚拟结点以其代表的内部结点的中心点作为结点位置,相邻结点的距离定义为这两个结点之间的欧氏距离或曼哈顿距离。具有相关背景知识的技术人员,完全可以采取其它合理的距离定义方式,不应以距离定义与本发明不同作为与本发明不同的依据。在实践中,两个文本标记之间可能存在多条短路路径,所有短路路径都是错误,都是必须修改的,因此并不要求找出的短路路径是直观看起来“最短”的,只要能找到一条相对较短的路径即可。版图设计人员在修改短路错误后,通常需要再次进行短路查找,确保无遗漏。

在图2中,基于TOP单元的连接图可以找到一条短路路径:

VDD―11―V―15―GND

三、最短路径展开,形成直观的扁平化的短路路径

上面形成的短路路径可能包含虚拟结点。虚拟结点并不对应图形,而是对应子单元中一个连通分图的所有内部结点在本单元的一个实例。必须去除虚拟结点才能获得真实的与扁平方法相似的最短路径,该最短路径可能由来自不同单元的图形构成。根据本发明中虚拟结点的连接方式,虚拟结点只与Pin结点连接,如果短路路径中存在虚拟结点的话,则虚拟结点的两端必然是两个Pin结点,并且来自这两个Pin结点来自同一子单元连通分图的同一实例。将这两个Pin结点用子单元中对应的两个Port代替,再到子单元中查找这两个Port之间的最短路径,用该最短路径替换虚拟结点,这样就完成了一次展开过程。展开过程可能要执行多次,直到顶层短路路径中没有虚拟结点。这就形成了一条直观的、可能跨越多个单元的最短路径。

上述示例形成的短路路径包含一个虚拟结点V。首先用1和5分别替换11和15,然后在A单元中找到一条最短路径1―2―4―5,用1和5之间的路径替换V。最后得到扁平化的直观的短路路径:

VDD―1―2―4―5―GND

本发明以层次方式生成连接图,子单元每个实例的每个连通分图无论有多少个内部结点,在父单元中只用一个虚拟结点表示,并且只记录虚拟结点与Pin之间的连接,忽略子单元的内部结点,并忽略与内部结点有关的所有连接。与扁平的短路查找方法相比,特别是对于有大量重复调用、层次结构很深的版图,这种方法能够最大限度的避免重复计算和重复存储,显著提高效率。

附图说明

图1 具体实施方式一的层次版图

图2 具体实施方式一的层次连接图

图3 具体实施方式二的层次版图

图4 具体实施方式二的层次连接图

图5 具体实施方式三的层次版图

图6 具体实施方式三的层次连接图

具体实施方式

具体实施方式一

以图1的层次版图为例说明短路查找方法。该版图包含两个单元。A单元有5个图形,分别编号为1-5。TOP单元调用A单元一次。TOP单元有两个文本标记VDD和GND,从TOP单元看(即把A单元的图形变换到TOP单元的坐标系),VDD和GND分别位于单元A的图形1和图形5的内部。

查找短路的具体步骤如下:

一、自底向上形成每个单元的连接图

首先处理A单元:

(1)建立与子单元的连接

A单元没有子单元,无需执行此步骤。

(2)在当前单元建立图形间连接

利用扫描线算法或其它方法,找到所有直接相连的图形,把它们的连接关系记录在连接图中,如图2(下)。

(3)准备与父单元建立连接

由于图形1和5有可能与父单元图形连接(这需要事先把TOP单元的文本投影到A单元中来,本实施方案不讨论这一问题),把图形1和图形5对应的结点标记为Port。

然后处理TOP单元:

(4)建立与子单元的连接

把A单元中的两个Port 1和5拷贝成两个Pin 11和15,并记录Port和Pin的对应关系(如虚线所示)。记录Port和Pin的对应关系的数据结构可以是指针,例如Pin对象指向对应的Port对象,也可以是表格(数组)等。另外,两个Port对应的图形也要拷贝到TOP单元,分别对应两个Pin。生成一个虚拟结点V,分别与两个Pin直接连接,如图2(上)。

(5)在当前单元建立图形间连接

TOP单元没有图形,只有两个文本标记和从A单元提升上来的两个Pin图形。利用扫描线算法或其它方法,可以发现每个文本标记分别与一个Pin图形相连。这一步骤完成后,TOP单元的连接图如图2(上)。

(6)准备与父单元建立连接

TOP单元是顶层单元,没有父单元,无需执行此步骤。

二、在顶层单元的连接图中查找短路

在图2 所示TOP单元的连接图中,采用A*或其它算法进行最短路径查找,结点坐标取其代表的图形或子单元内部结点的中心点,结点间的距离采用欧式距离,找到一条短路路径:

VDD―11―V―15―GND

三、最短路径展开,形成直观的扁平化的短路路径

上述短路路径包含一个虚拟结点V。首先用A单元的Port 1和5分别替换TOP单元的Pin 11和15,然后在A单元进行一次最短路径查找,找到一条最短路径1―2―4―5,用1和5之间的路径替换V。最后得到扁平化的最短路径:

VDD―1―2―4―5―GND

具体实施方式二

如图3所示的版图,A单元有5个图形1-5,TOP单元有两个图形6、7和两个文本标记VDD、GND。TOP单元调用A单元的两个实例,图中分别以A1和A2表示,其中A2是经过旋转的。从TOP单元看,A1的图形5和A2的图形5相互连接。

一、自底向上形成每个单元的连接图

采用与具体实施方式一相似的方法,先后在A单元和TOP单元生成连接图,如图4。A单元的连接图与具体实施方式一基本相同,但有三个Port,即1、3、5。在表示层次连接关系时,需要把A单元的3个Port对每个实例分别拷贝一份Pin(A1和A2两个实例共6个Pin),并创建与实例对应的两个虚拟结点,分别与对应的Pin连接(A1对应的虚拟结点与A1对应的3个Pin连接,A2对应的虚拟结点与A2对应的3个Pin连接)。Port和Pin之间的对应关系未画出。由于A单元的图形会拷贝到TOP单元,在TOP单元利用扫描线或其它方法可以发现两个Pin 15和25之间的连接。

二、在顶层单元的连接图中查找短路

可以找到一条短路路径:

VDD―6―11―V1―15―25 ―V2―23―7―GND

三、最短路径展开,形成直观的扁平化的短路路径

采用与具体实施方式一相似的方法,把11―V1―15用A单元中对应的一条短路路径替代,例如1―2―4―5。把25 ―V2―23 用A单元中对应的一条短路路径替代,例如5―3。最后得到的短路路径为

VDD―6―1(A1)―2(A1)―4(A1)―5(A1)―5(A2)―3(A2)―7―GND

在这个短路路径中,形如1(A1)的记号代表A单元的图形1对应于A1实例的图形。层次的短路结果中,每个图形除了要标明它属于哪个单元以外,还要标明其对应于所属单元的哪个实例。

具体实施方式三

如图5所示的版图,B单元有1个图形1;A单元调用B单元两次,记为B1和B2;TOP单元调用A单元两次,记为A1和A2,并有5个图形2-6,有两个文本标记VDD和GND分别位于图形3和5的内部。

图6为基于该版图生成的层次连接图。B单元只有一个结点(Port)。A单元需要对B1和B2分别生成一个Pin结点和虚拟结点,并把对应的Pin和虚拟结点连接起来,这两个Pin结点同时又成为A单元的Port。A单元的连接图由两个连通分图构成。在TOP单元,因A单元有两个含Port的连通分图,并且被调用两次,因此要生成四个虚拟结点V3-V6和4个Pin(31、41、51、61),并对应连接起来。

基于TOP单元的连接图,可以找到一条短路路径:

VDD―3―31―4―61―2―51―5―GND

该路径没有虚拟结点,但可以把对应于子单元Pin的图形用对应的Port图形替换,结果如下:

VDD―3―1(A1/B1)―4―1(A2/B2)―2―1(A2/B1)―5―GND

1(A1/B1)是指位于B单元的图形1,经过B1和A1两次调用(坐标变换)映射到TOP单元,A1/B1称为层次调用路径。

也可以不进行替换,直接作为结果输出。

具体实施方式四

可对具体实施方式三进行如下优化:把子单元一个连通分图的Port结点拷贝成Pin结点时,如果该连通分图没有内部结点,可以不生成虚拟结点。A单元的V1、V2两个虚拟结点可以省略。TOP单元的四个虚拟结点也可省略。短路结果不变。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1