版图设计规则文件中图层关系的可视化分析方法

文档序号:9667505阅读:1135来源:国知局
版图设计规则文件中图层关系的可视化分析方法
【技术领域】
[0001]本发明属于半导体集成电路自动化设计领域,主要涉及后端版图设计和验证,尤其是集成电路版图检查中,规则文件设计、开发与分析领域。
【背景技术】
[0002]版图的设计和验证是集成电路设计流程中重要的一环,版图验证可以提高集成电路设计效率,降低设计失败的风险。集成电路版图设计规则控制版图的验证内容,它一般会先定义版图中的图层,然后通过一些规则命令来检查图层间或图层内的参数值(如间距)是否在工艺制造允许的范围内。
[0003]设计规则的内容一般保存在设计规则文件中,其内容与集成电路设计工艺相关,对于不同的工艺(如90nm, 65nm, 40nm),设计规则文件的内容是不相同的。设计规则文件一般由相关的设计人员开发,他们会根据版图的工艺来逐步添加验证命令,以验证相关的图层。
[0004]由于工艺在不断地改进和优化、同一规则文件在不同平台上的移植应用,使得设计规则文件需要不断地开发和维护。用户在开发和维护设计规则文件的时候,需要修改或调整某些图层的生成关系,以修改错误或提高验证的效率。
[0005]修改图层生成关系之前,用户需要分析现有图层关系:明确该图层的生成过程、图层的引用关系;以确保修改后整个规则文件的正确性。
[0006]传统做法是用户逐一找到使用该图层的命令,分析图层之间关系;根据图层的生成命令,找出其和原始图层之间的关系。该方法工作量大,易出错,为此,本发明提出一种集成电路版图设计规则文件中图层关系的可视化分析方法。
[0007]基本概念:
(1)图层:在验证的设计规则文件中,图层包括原始图层和派生图层(如无特殊指定,本文中所描述的图层均指派生图层)。原始图层与版图中的基本图层一致。派生图层是对一个或多个原始图层或派生图层通过命令生成的新图层,该命令即为派生图层的生成命令。
[0008](2)命令:在验证的设计规则文件中,命令指对一个或多个图层通过几何运算(如与、或运算)、关系运算(如角度范围、间距范围)派生出新的图层,新的图层即命令的输出图层。
[0009](3)图层的输入路径:指该图层通过若干条命令从一个或多个原始图层派生出来的过程中,所有使用过的图层集合。
[0010](4)图层的输出路径:设图层V的输入路径包括图层u,则所有满足该条件的图层V所组成的图层集合称为图层U的输出路径。
[0011](5)有向图:若图中的每条边都是有方向的,则称为有向图。有向图中的边是由两个顶点组成的有序对,有序对通常用尖括号表示,如e〈v,u>表示一条有向边,其中V是边的起始节点,u是边的终止节点。e〈v, u>和e〈u, v>代表两条不同的有向边。
[0012](6)无输出节点:如果节点V相连的边中,不存在以V为起始节点的边,则称节点V是无输出的,或称V为无输出节点。
[0013](7)节点输出边:是指以该节点为起始节点的边。
[0014](8)输出节点:节点V输出边的终止节点称为该节点的输出节点,记为Eout(v)。
[0015](9)节点输入边:是指以该节点为终止节点的边。
[0016](10)输入节点:节点V输入边的起始节点称为该节点的输入节点,记为Ein (v)。
[0017](11)节点分层:将所有节点分为层L1,L2,…LN,有向边e〈v,u>表示从节点v到节点u的边;对任意有向边e〈v, u>, V属于Li, u属于Lj,皆有j < i。
[0018](12)边的跨度:节点分层后,对任意有向边e〈v, u>, u属于Li, v属于Lj,边e的跨度记为B(e)=j_i。
[0019](13)虚拟节点:指在图中并不存在的节点,只是为了处理方便而假设存在的,具有真实节点相同的性质。
[0020](14)可视化关系图:指运用计算机图形学和图像处理技术,将数据结构关系换为图形或图像在屏幕上显示出来,并进行交互处理。

【发明内容】

[0021]本发明针对集成电路版图设计规则文件开发、维护中,各个图层之间关系分析困难,修改和维护文件过于依赖用户经验的弊端,提出一种可视化的图层关系分析方法,可同时分析单个或多个规则检查的图层关系。能够帮助用户分析、优化规则文件的逻辑结构,使其逻辑结构清晰简洁,从而提高开发效率,减少维护代价。
[0022]本发明首先解析设计规则文件,得到所有图层之间依赖关系,然后针对用户选择的一个或多个图层,获取与用户选择图层具有依赖关系的图层集合,最后以依赖关系集合中的图层为节点,以图层间的引用关系为边,进行布局布线处理,生成并画出可视化关系图。本发明的特征步骤如下:
1.解析设计规则文件,得到所有图层之间的依赖关系;
2.针对用户选择的一个或多个图层,获取与用户选择图层具有依赖关系的图层集合,该集合由用户所选的图层,以及该图层的输入路径和输出路径组成;
3.以依赖关系集合中的图层为节点,以图层间的引用关系为边,进行布局布线处理,生成可视化关系图。步骤如下:
3.1对节点进行分层,计算边的跨度:将所有节点分为层Ll,L2,…LN,有向边e〈v,u>表示从节点V到节点u的边;对任意有向边e〈v, u>, v属于Li, u属于Lj,皆有j〈 i。
[0023]3.2对分层结果添加虚拟节点,使得所有边的跨度都变成1,包括添加初始虚拟节点和去除冗余虚拟节点两步:
(a)添加初始虚拟节点:从上往下逐层遍历层内节点的节点输入边,若层Li中节点u的某条节点输入边e〈v, u>的跨度η大于1,则在Li+Ι中添加一个虚拟节点v0,原边e〈v, u>分裂成e〈v,v0>和e〈v0,u>,边的跨度变为n_l和1,遍历结束后,所有边的跨度变成1 ;
(b)去除冗余虚拟节点:从上往下逐层遍历层内节点,若层Li中节点u的节点输入边中存在着两条或多条边的输入节点为虚拟节点,则这些虚拟节点为冗余虚拟节点,合并成一个虚拟节点。
[0024]3.3优化交叉边,做有限轮次双向交替遍历层,对相邻两层做层内节点相对位置预调整,每次双向交替遍历一轮之后,分析调整前后的交叉点数,若减少则调整并继续遍历,否则就放弃该轮调整并停止优化。
[0025](a)层内节点相对位置预调整的方法为:根据层遍历的方向,相邻两层,其中一层为固定层,另一层为调整层;然后遍历调整层内的每一个节点,分析相邻两个节点位置交换前后的交叉点数是否减少,若减少则调整,否则不调整;重复遍历节点直到没有新的位置调整发生。
[0026]3.4计算节点中心点坐标,中心点坐标分为X值计算和Y值计算;
根据节点高度、层间间距及层间边的数量,计算出每一层的Y坐标值,在同一层内的节点具有相同的Y坐标。
[0027]X值计算先是求得基准层,基准层按照层内节点的相对位置给节点布X值,然后从基准层开始,分别向上和向下,做相邻两层的层参照布X值:
(a)求得基准层:遍历所有层,计算层内各节点宽度和最小节点间间距的总和,所有层中,这个总和值最大的层即为基准层;
(b)层参照布X值:以已布局层Li为参照层,当前层Li_l(向上)或Li+1(向下)按照一定的优先级遍历层内所有节点并计算X值;对于当前节点m,首先根据本层内已布局节点位置,预估当前层内节点m的布局范围,然后根据参照层Li层内节点的布局,计算当前层内节点m的理想布局点,最后以布局范围内距离理想布局点最近的点,作为节点X坐标。
[0028]3.5画出图形:根据布局后结果,在相应位置画出节点,连接相应节点。
[0029]
【附图说明】
[0030]图1可视化分析处理流程图图2节点分层处理流程图
图3节点分层结果图图4添加虚拟节点处理流程图图5交叉点优化处理流程图图6节点布局处理流程图图7节点布局连线结果图
【具体实施方式】
[0031]规则文件范例F:
X1=AND LAI LB10UT1 = NOT XI L0X2 = AND LA2 XI0UT2 = NOT X2 L0X3 = AND LA3 X20UT3 = NOT X3 L0X4 = AND XI X20UT4 = NOT X4 L00UT5 = NOT OUT2 OUT3OUT6 = NOT 0UT4 OUT1OUT7 = OR OUT5 OUT6
以上面列出的一段简易设计规则文件F为例,本方法的具体实施步骤如下:
1.解析文件,得到依赖关系如下:
输出图层XI由输入图层LA1、LB1通过命令AND生成。
[0032]输出图层X2由输入图层X1、LA2通过命令AND生成。
[0033]输出图层X3由输入图层X2、LA3通过命令AND生成。
[0034]输出图层X4由输入图层X2、XI通过命令AND生成。
[0035]输出图层0UT1由输入图层X1、L0通过命令NOT生成。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1