熊猫九天全写作版图编辑工具stretch功能原理与实现

更新时间:2024-03-12 作者:用户投稿原创标记本站原创 点赞:6770 浏览:20115

摘 要:对熊猫九天全写作物理版图编辑工具stretch功能原理和实现予以论述.针对不同的物理版图数据path、wire、ellipse、polygon、rectangle、donut等介绍了相应的stretch原理,并给出了编辑环境对该功能实现的结果,提出了产品化过程中注意的一些问题.市场实践表明,该功能能够正确方便地帮助IC物理版图设计工程师完成设计.

关 键 词:熊猫九天,EDA,物理版图编辑,Stretch,

中图分类号:TP301.6文献标识码:A

1引言

全写作物理版图设计过程中,经常需要对版图数据进行“拖拽”编辑操作,如改变器件的物理尺寸大小,调整信号线之间、信号线与器件之间的连线位置等,这就要求编辑工具提供相应的功能.北京华大九天软件有限公司,在自主研发的熊猫九天系统Zeni工具中提供了“stretch”功能,该功能支持path、wire、ellipse、polygon、rectangle、donut等类型的物理版图数据,使得版图设计工程师能够拖拽物体的一个或者一组点和边来改变其属性,从而快速灵活地达到设计目标.

2Stretch功能原理

2.1Path和polygon

Path和Polygon都是由点链所组成,它们的区别是polygon的点链是“封闭的”,而path的点链是“开的”,所以这里只针对path介绍stretch的原理,polygon与之相似.

检测设path有n(n≥2)个点,依次编号为0,1..n-1,针对其中m个连续点进行stretch,起始的编号分别为i,j(0≤i≤j≤n-1,m等于j-i+1),stretch操作的偏移为(Δx,Δy),第k号点在进行操作之前坐标为(xk,yk),操作之后结果坐标为(x'k,y'k),需要解决的问题是已知(Δx,Δy)和(xk,yk),如何计算(x'k,y'k).通常版图工程师在使用该功能时要保持所有的夹角大小不变.

(1)只选中一个点,且该点为编号0或者n-1时,即m等于1,i等于j等于0或者i等于j等于n-1.如下图1所示,B点被选中,A点为stretch的偏移点,那么A等于B+(Δx,Δy)等于(xi+Δx,yi+Δy),D为StretchB之后的结果即为所求点,通过计算直线BC与A点的垂足可得.

(2)一般情况:选中第一个点i不为0号点,最后一个点j不为号n-1点,如下图2所示:

对于位于i和j之间的点k(i

(3)如果被选择点个数大于等于2,其包含第0号点或者第n-1号点,那么该点进行平移操作,其余各点的计算同(2)中的方法.

(4)只选一个点,且该点编号不为0或者n-1时,即选中的点不是“头”或者“尾”点,此时是对path的一个角进行stretch,等价于选中相邻两点及该点在内的三个点的stretch,即如果i(i≠0,i≠n-1)被选中,等价于选中了i-1,i,i+1三个点,计算方法参考(2)、(3)相同.

2.2Wire

Wire通常用于物理版图设计过程中的布局布线,与path很相似,但它只由两个点所组成,并且由该两点所组成的直线只能是正交的或者对角线的.在未固定角度的情况下,如果按照path的规律去做stretch,结果可能不保证wire的直线段是正交的或者对角线的.此时,我们将坐标系划分为多个区域,以第一象限为例,按照过(0,0)点射线与轴夹角为0~,~,~等分为三个区域,如果stretch结果落在第一个区域,则修正wire为水平形状的,如果落在第二个区域则修正为对角线形状的,如果落在了第三个区域,则修正为垂直的.由于三个区域的“大小”相同,这样保证了落在三个区域的概率是相同的,从而最后wire形状是水平的、垂直的或者对角线的概率也是相同的.

2.3Ellipse和Rectangle

方程为+等于1的ellipse和中心在(x0,y0)长、宽分别为a,b的rectangle是一一对应的,即每个ellipse唯一确定一个其外接rectangle,而每一个rectangle唯一确定一个其内切ellipse.所以,对于ellipse的stretch可以转化为对其外接rectangle的stretch,而rectangle又是一种特殊的polygon,对rectangle的stretch又可以看成是对polygon的stretch,所以对ellipse和对rectangle的stretch都可以转化为对polygon的stretch.具体方法同上所述,这里不在赘述.


2.3Donut

Donut由两个circle组成,对donut的stretch可以转化为对单个circle的stretch.方程为(x-x0)2+(y-y0)2等于r2的circle是方程为+等于1的椭圆在a等于b等于r时的特殊情况,所以可以等价于stretchellipse的情况.具体方法同上所述,这里不在赘述.

3Stretch功能实现

能猫九天系统在P43G,2GRAM的SUN工作站redhat3系统上,使用C++语言和基于OpenAccess(以下简称OA)数据库开发实现.OA由世界上最大EDA供应商Cadence公司发起,现在已经被世界其它主要EDA供应商大力支持.使用OA的API接口能够安全、高效地开发出工具,大幅降低了开发成本.

对于上述6种物体,OA均提供了“get”、“set”有关属性的API接口,首先通过“get”API接口获得要编辑的属性值,然后按照上述原理计算stretch之后的新值,最后再用“set”API接口将新的属性值赋给物体.

4结果演示与分析

下面两图为九天系统stretch功能示意图,图1是stretchpath,wire,rectangle的效果图,图2是stretchellipse,path,polygon、donut的效果图.从实现结果可知,达到了通过拖拽点或者边来编辑物体属性的功能.但在产品化过程中仍要注意一些问题:

1.用户在使用该功能时,如果整个的物体也能够进行平移操作,会带来很大的使用方便,所以,在该功能里我们也支持了“move”的部分相关功能.

2.要注意“退化”情况的处理,如stretch的结果要满足donut的内外半径要大于等于最小尺寸,polygon的点数要大于等于3个,wire的两个点不能重合等.如果出现这样的情况,要给出相应的出错信息.

3.对于path和polygon,stretch的结果有可能出现“自交叉”的现象,这在版图设计过程中是非法的.这需要特别考虑,比如可以移除“自交叉”点或者给出提示信息拒绝用户进行编辑等.

5结语

文章介绍了全写作IC物理版图设计stretch功能的原理,经过华大集团EDA团队多年技术积累,在其熊猫系统-九天系列版图编辑工具中实现了该功能,多年的市场实践表明,该功能能够正确快速地帮助IC设计人员编辑物理版图数据(如path、wire、polygon等)的属性,缩短设计周期,取得了较好效果,达到了与世界主流EDA供应商相当的水平.但该功能在产品化过程中对使用的易用性、方便性、界面效果美观性等方面仍有很多工作要做.