交互版图工具中的最短路径实时查找算法的制作方法

文档序号:6560980阅读:201来源:国知局
专利名称:交互版图工具中的最短路径实时查找算法的制作方法
技术领域
本发明属于集成电路版图设计自动化技术领域,具体涉及一种交互式版图自动布线算 法,能够实时的査找出版图上指定点或单元间最短的路径。
背景技术
自动布线是集成电路版图设计自动化领域的一项重要技术。随着电路设计规模的不断 增大和制造工艺精度的提高,版图布线工作变得越来越繁重,在模拟电路设计中尤为突出。 自动布线技术能够在很大程度上减轻版图设计者的工作量和提高工作效率,同时还能保证 布线结果的正确性和合理性。
自动布线模型经历了由最初的基于网格模型(gridbased)向无网格模型(gridlessbased) 的转化,而无网格模型又分为连接图模型(connect graph)和基于图形的模型(shapebased)。 基于网格模型通过将版图划分为由若干相同大小格点组成的阵列,进而利用迷宫算法(maze routing)求得最短路径。但是这种模型的主要问题就是难以找到一个通用的格点来适应不 同线宽的线网和不同大小的通孔等设计要求,即使找到也会因为格点的数目巨大而无法实 用。
针对基于网格模型的问题,研究中出现了连接图模型。这种模型不再具有抽象的网格, 而是以版图上障碍的位置为标准,通过预先考虑设计规则对障碍进行扩展,然后由障碍的 边相交产生一系列相交的点,将这些点连接起来经过化简构成了一张连接图(connect graph)。基于这张图即可找出最短路径。这个模型的问题是连接图的提取和化简十分耗时, 并且会引入相当数量不必要的转弯。
基于图形的模型则是根据整个版图中障碍的实际位置和形状,提取出可用的布线空间, 并将这些布线空间以comer-stitch的形式储存,然后利用tile-expansion进行搜索,从而找出 路径。但是对于交互式布线,这种模型存在较大的问题,因为交互式布线时版图数据变化 非常频繁,每次都要对整个版图进行转换,需要耗费大量的时间,无法满足操作实时的要 求,尤其是对于以quad tree等按图形形状和位置划分版图的索引系统,无法支持直接的相 邻查找,这种全版图的频繁转化更是不现实的
发明内容
针对上面的问题,本发明提出一种能够实现在大规模集成电路版图中进行实时最短路 径查找的方法,并保证布线结果的正确性和合理性。发明的总体思路如下-
1. 并不对所要布线的电路版图进行预先的几何图形提取,而是将版图划分为若干较小 的区域,每个区域所含布线障碍数量固定;
2. 只有当布线路径进入某个区域的时候,才对该区域进行版图的几何数据提取;
3. 将所有非正交的图形近似为最为接近的正交多边形,并将其切割为若干矩形,使得 该区域内所有布线的障碍均为简单的矩形组成;
4. 对提取后的子区域进行合并,加快搜索的过程;
5. 如果布线路径再次进入某个已经进行过数据提取并且版图没有发生变化的区域时, 则可以再次利用己有的数据结构快速找到答案;
6. 对区域内的障碍矩形进行零线宽预处理,扩展障碍矩形,将布线线宽以及线间距预 先考虑到障碍区域中去;
7. 在寻找最短路径的布线过程中,以布线块队列(tilequeue)的形式将可能的最短路 径全部保存起来,保留每一种连接的可能性,去掉不能继续搜索的分支;
8. 最后通过路径优化器(pathrefiner)从区域队列中寻找出转弯最少最优化的布线路 径。
以下分版图数据提取和最短路径査找两个部分进行分别说明-一、版图数据分区域提取 1.版图区域的划分方法
由于版图需要在较短的时间内布线,布线模型的快速转换和存取是影响布线 速度的关键。为了应付大规模的版图,我们的策略是把版图分块处理,每次提 取/转换其中的一块,以满足査找到一个路径所需的最小要求;那些没有被搜索到的区域的部分将不会被提取,从而最大限度的减少布线模型构建的代价。
如图1 ,我们的分块管理采用类似四叉树区域划分的方法把整个布线区域分 成层次的小块,每个区域的大小由这个区域中所包含的物体数目来决定(物体的 数目大致决定了每一次区域提取所需要的代价)。每个区域中的物体将会被处理 (将在下一部分叙述),然后整个区域会根据所有障碍物的位置、形状被划分成—个个的小块,每个小块可以使可以布线的空区(space subtile),也可以是不 可布线的障碍(solid subtile)。每个这样的subtile作为路径搜索时的基本单 位,并在搜索过程中会根据周围的情况进行合并:相邻的space subtiles会根据 水平/垂直方向最长的原则合并成Tile。 Tile不光表示了一个可布线的区域,还记录了和周围的可布线区域的相邻情况,以便下次査找到相同区域时加快搜索的 速度。
分块管理的情况如图l所示四叉树的划分线将区域划分成了两个部分;右 边部分的黑线是物体的拐角所在的位置来决定的;相交的黑线将区域划分成一个 个的subtile,每个subtile可以是solid也可以是space,相邻的space subtile 可以合并成一个个的space tile (图中是以水平方向最长为目标的合并情况)。
2. 非正交不规则图形的近似和切分
电路版图数据中常包含一些非矩形的图形,比如多边形、连线路径、圆等等, 这些图形必须先经过转化为矩形才能适应布线算法对数据的要求。如果对这些不 规则图形以其外接矩形进行近似,必然会造成不必要的,有时甚至时致命的布线 空间资源浪费。所以我们提出一种办法,先利用层次化叠代的方法找出不规则图 形的一个较为接近的外接正交多边形,然后对正交多边形进行划分,取得一系列 矩形,以这些矩形替代原始图形在版图中的位置,从而达到了规则化图形的目的, (如图2所示),步骤如下
a. 取得某个不规则图形,先求得其外接矩形;将外接矩形划分为四等份, 检査是否与不规则图形的边界相交;如相交则保留继续,否则停止处理 该部分(包括完全在多边形外部和内部两种情况);
b. 对步骤b中保留的的部分,分别继续、划分为四等份,执行与步骤b同样 的检査;以此类推,直到每部分尺寸小于设计规则中最小线宽、或叠代 次数达到设定值、或已不存在与不规则图形相交的部分,则停止处理。
c. 收集与原始图形边界相交以及完全在其内部的部分,即组成可代表原始 不规则图形的正交多边形;最后将其划分为一组互不相交的矩形即可。
3. 障碍的零线宽预处理
设计规则的满足是通过扩展障碍物以半线宽(WW/2)和线间距(WS)来完成 的,这样在图3中,扩展以后的障碍区域以外的部分就是可布线区域,在这些区 域上进行布线一定满足设计要求(这是一个中心线布线),也因此将问题转换成 了0线宽的布线。同样办法可以把扩展中的WW/2换成半个通孔的大小W/2,就 得到了可放置通孔的区域。
二、路径的査找
1.路径查找过程中所用到的术语说明
路径的査找使用的迷宫布线的模式,搜索策略采用A*。迷宫算法每一步中只
需知道当前搜索单位(tile)周围的情况,因此分块提取得策略可以满足扩展 (expand)的要求。A'策略会减少搜索一条路径所需要的区域,使得我们可以在搜 索的过程中决定那些区域时需要提取的,并根据对区域的划分控制每次提取的粒 度。
搜索是以Tile为基本搜索单位的,两个Tile通过一个公用的线段连接,称 为TilePath。如图4所示,11/12是TilePath, 11->12-〉13-〉14->15的路径构成 了一条从s-〉t的路径。搜索过程中通过记录生成的TilePath来记录路径。
TilePath在生成按照当前搜索的代价(通过代价函数得到)以后被插入到 一个优先队列中(A'策略的特征)。由于这里每次搜索的是一个区域并不像网格 情况下的格点, 一个Tile可能会在搜索的过程中被多次搜索到,不同的入点和 出点会有不同的代价估计,所以记下多个搜索序列可以为最终结果保留尽可能 多的选择性。在单层和多层时,TilePath内容会有所不同单层时,所有Tile 都是没有重叠的部分,因此TilePath表示的是一条线;多层时一个跨层的 TilePath会包含一个合法的通孔摆放区域,如下图5所示(a和b分别是单层 和多层时的情况)
代价估计函数包含3部分
1. 从起始点到当前TilePath的距离。根据情况的不同,会纪录计算 得到当前TilePath的最小代价,以及计算这个代价时所用的进入 点和进入的等价范围(由于从图形开始扩展图形上每一个边都是等 价出发点,所以会引入等价范围,并在搜索过程中可能会传播)。
2. 通过Tile内的代价耗费在水平/垂直/通孔上的代价的和,每 项都有根据用户的输入的权重。这部分的计算如上面图示,可以在 两个方向上的投影上计算出最小的长度,然后分别乘以各自的权重 即可。
3. 趋向目标点的代价计算当前TilePath到目标的可能代价。用曼 哈顿距离估计,并乘以权重,引导搜索优先向目标点进行,加快速 度/减小代价。目标点在从图形的情况下是图形的外接矩形(点时 是矩形退化后的特例)。
在扩展过程中由于每一次扩展都需要估计本次扩展所增加的代价和趋向目 标点的代价,因此需要记录上一个TilePath到当前TilePath的最近进入点或 仍旧有效的等价范围。
图6中tpl tp4是四个TilePath; Source obj是路径搜索的起始图形 Target point是搜索的目标点;红线是各个TilePath上传递的等效范围,图 上红线范围内y方向上是等价的,因此从tpl到tp2计算代价时只考虑 distancel,同时也会在搜索中随着TilePath传递;a是从tp3到tp4的最近 进入点,所以从tp3到tp4的距离就是y方向上的distance2, x方向上为0 是因为tp4的范围涵盖了 tp3在x方向上的投影,并且tp4开始也失去了等效 范围,只有一个进入点,用以计算从它开始到下一个TilePath的距离。蓝线是 最终生成的path。
2.布线块队列的査找
路径搜索的过程如图7所示,下面以单层上的路径査找为例说明路径搜索 的过程-
单层布线时路径的生成
1) 如果起始点在布线区里,那么将起始点直接插入要生成的路径链表,
2) 如果起始点在图形上,那么将起始TilePath的等价范围记录下来,直到可
以确定等价范围的具体点的位置的时候才会将这个点生成。
3) 检査上一个TilePath是否有等价范围,以及等价范围跟目前的TilePath 相比是否还有效,如果有效则继续下一个TilePath,无效则根据当前 TilePath的信息确定上一个未决定点的位置和产生的当前TilePath上的点 的位置,
4) 如果两点在一条直线上则直接插入;如果不在一条直线上,则根据原来的 方向插入中间的转折点。
5) 继续这个过程(跳转到3),直到构成Path的所有TilePath链表为空。
6) 如果目标点是是一个点则将目标点插入到生成的path中,如果是一个图形 则从目标搜索队列里找出相应得TilePath,根据等效范围找到最短的路径 点。
补充说明
* Tile作为一个独立的搜索单位一旦被生成以后就不需要再使用底层的 subtile,可以减少搜索的步数,提高搜索速度。
* 由于每个Tile只会被提取一次,下次被搜索到时可以直接返回expand的
结果,从而使搜索过程变得更加迅速,以空间换取搜索时间的减少。
* 生成的path中的点,按照从source到target尽量不进入下一个TilePath
的范围内的原则产生。
图8是扩展在TilePlane中的实现,TilePlane的基本扩展操作,从一个区 域向外扩展的操作(ExpandFromTile),可以分解为每条边上的扩展操作 (ExpandFromLine)。另外,对于另一种操作从一个点出发向外扩展的操作 (ExpandFromPoint)的目的是査找给定点所在的Tile (在搜索初始化时被调 用),具体操作与ExpandFromLine类似,不再赘述。
3.路径优化器
通过布线块队列,我们实际得到的是一组长度最短的解,虽然在此范围内所 有路径的长度都是最优的,但是它们的转弯数量可能不同,路径优化器的功能就 是在长度最优路径中找出转弯最少的路径集合,并从中选区一条路径作为结果。 图9是路径优化的示例,步骤叙述如下
a. 自第一个布线块出发,由第二个布线块决定走向,记下该方向并开始沿 此方向前进。
b. 如能够继续,就不改变方向,并且记下各布线块在此方向上的公共范围, 否则,记下当前到达的布线块,如果布线块队列中仍不为空,以其作为 初始布线块,返回步骤a,否则进入步骤c。
c. 从步骤a和b中记录下的方向和公共范围中选择一条路径,作为结果。


图1区域划分管理及子区域的合并
图2不规则图形的处理
图3设计规则的处理
图4 TilePath示意图
图5代价计算示意图
图6多余路径的剪除(path prune)
图7路径搜索
图8从一个Tile向周围区域出发的扩展操作(ExpandFromTile) 图9路径优化 图10具体实施图
具体实施例方式
整个系统分成两部分:
Expand部分(实际的route部分,在TilePlane上执行搜索与TilePlane直接作用)。 模块关系如图10具体实施图所示。
提供route过程的控制部分,例如,搜索队列控制,cost估算方程;以及从TilePath 链表到path的转换。专注于router的算法实现,不包含对版图数据的实际操作;router 中的每一步骤通过转换为extractor部分的基本expand操作来实现。
Extract部分(实际处理从quad-tree到需要的tile-plane的转换,将版图上的障碍 转换成正较的坐标系,并将障碍blocks所覆盖的部分mark出来,区分出布线区域和blocked 区域)。
负责提取,处理版图中的图形,并实现router的expand在版图数据上的基本操作, 并维护版图信息对router的影响;在处理过程中会调用一些图形处理模块来处理各种shape 障碍对router的影响。
最终的输出
Expand完成(判断条件是找到包含target点的tile)以后,由retrace过程输出的 是一条tiles连接形成的tile-path; tile-path交给后处理过程去得到实际的路径(从一 个tile-list -> path)。
中间的过程就是expand和extract交互的过程 对expand来说,只是执行从subtile的合并,并在这个过程中构建最终的tile (水平方向 上最大)。对于expand来说,extract是一个透明的过程,extract是按照区域的范围来提 取/转换的。当expand到达了一个区的边界,需要进入另一个区时,检査该区是否已经被 提取,如果没有,挂起expand过程,调用extract,提取完毕以后继续执行expand。
权利要求
1.交互版图工具中的最短路径实时查找算法,其特征包括层次式分块管理的非网格布线模型,在需要时才将需要的数据转化成布线模型的区域分块提取管理方式,在搜索时采用提取子区域合并,布线模型中缓存搜索的中间结果,提高后续搜索速度。
2. 根据l所述的布线模型,其特征是共有边为特征的支持等价区域的准确代价估计、 多余搜索路径排除的方法。
全文摘要
本发明提供交互版图工具中的最短路径实时查找算法,属于集成电路版图设计自动化技术领域,具体涉及一种交互式版图自动布线算法,能够实时的查找出版图上指定点或单元间最短的路径。采用了层次分块管理的非网格布线模型,不需要预提取版图,在提高布线灵活性的同时减少了模型转换的开销,并利用缓存的数据提高路径查找的速度满足了版图编辑器中实时布线的需求。
文档编号G06F17/50GK101174278SQ20061011429
公开日2008年5月7日 申请日期2006年11月3日 优先权日2006年11月3日
发明者杜浩斌, 毅 苏 申请人:北京中电华大电子设计有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1