一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法

文档序号:9564707阅读:401来源:国知局
一种集成电路设计工具中基于二维svg矢量图形的三维矢量对象表达方法
【技术领域】
[0001]一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法属于半导体集成电路设计自动化领域,主要涉及集成电路物理版图的三维描述与显示,以及版图器件电器特征的三维函数图像的描述与显示。
【背景技术】
[0002]随着半导体集成电路工业的发展,业界对半导体集成电路设计自动化(EDA)工具软件也提出了更高要求,希望在版图设计工具中观察到集成电路版图直观的三维视图,而不局限于所有材料层叠放在一起的二维视图。另外,很多器件的电器特征函数也不局限于只包含一个变量,存在两个或两个以上变量时,采用三维函数图像描述将更加直观。因此,三维对象的建模与显示成为现代EDA工具软件不可或缺的一部分。
[0003]计算机上的三维表达有很多成熟的引擎支持,例如Windows操作系统下的DirectX,和Linux操作系统下的OpenGL等。不过这些引擎通常需要独立显卡等显示硬件支持,才能正确工作。事实上,在半导体行业,工具软件的运行环境受到很大限制,用户通常采用一台图形终端,远程登陆到Linux服务器上进行操作,没有独立显卡可用。工具软件可调用的只有通用的二维窗口绘图接口,三维绘图几乎完全失效。
[0004]本发明正是在这样受限的环境下,探索出来一种只调用二维窗口绘图接口,进行三维对象(物理版图、函数图像)表达(包括三维建模、坐标变换、透视投影等)的方法,其中借用了成熟的可缩放矢量图形(Scalable Vector Graphics, SVG)标准。
[0005]SVG标准是基于可扩展标记语言(extensible Markup Language, XML),用于描述二维矢量图形的一种图形格式,由万维网联盟(World Wide Web Consortium,W3C)制定,是一个开放标准,1999年发布,2003年1月14日成为W3C推荐标准。与其他图形格式相比,使用SVG的优势在于:
1 SVG可被非常多的工具读取和修改(比如记事本);
1 SVG与JPEG和GIF图像比起来,尺寸更小,且可压缩性更强;
1 SVG是可伸缩的;
1 SVG图像可在任何的分辨率下被高质量的打印;
1 SVG可在图像质量不下降的情况下被放大;
1 SVG图像中的文本是可选的,同时也是可搜索的(很适合制作地图);
1 SVG可以与Java技术一起运行;
1 SVG是开放的标准;
1 SVG文件是纯粹的XML。
[0006]不过,SVG作为一种单纯的二维图形标准,没有任何三维特征。本发明的主要创新点就是借用SVG丰富的二维元素(二维面元、二维曲线段),对三维对象建模,然后每个元素独立进行坐标变换,独立进行三维到二维的透视投影,最终使所有元素归纳到同一二维平面上,形成标准的SVG图形文件,由此将SVG的应用范围由二维扩展到三维。
[0007]SVG的二维元素丰富,包括直线、多边形、贝塞尔曲线等,还可以由此任意组合成开放或闭合的曲线路径。采用SVG元素给集成电路设计工具中三维对象建模,无论表达物理版图还是三维函数图像,都可以比较精确的描述原始对象,能够满足业界用户需求。
[0008]SVG的后续处理支持广泛。图形可以任意缩放,除了在工具软件窗口绘图,甚至可以直接显示在网页浏览器里。还可以离线共享,采用任意矢量绘图工具编辑修改,按需截取图层。这都是DirectX、OpenGL等只显示叠加后的位图结果的像素三维引擎不可比拟的。
[0009]因此,符合通用标准的矢量三维表达方法必然成为业界发展的趋势。

【发明内容】

[0010]本发明针对半导体集成电路设计自动化领域,三维表达需求日益增加,提出了一种集成电路设计工具中基于二维SVG矢量图形的三维矢量对象表达方法。此方法特别针对工具软件在业界用户的运行环境受限,三维引擎难以支持的实际情况,提出了全新的解决方案,有效解决了处理过程中所面临的问题。
[0011]本发明的主要技术方案包括以下三个方面:
第一,三维对象建模方法。通过三维空间中的若干SVG元素(二维面元、二维曲线段)共同描述某个三维矢量对象(三维物理版图、三维函数图像),但同一 SVG元素的所有特征点(顶点、曲线控制点)一定位于某个空间平面上。
[0012]第二,三维坐标变换方法。通过逐个SVG元素逐个特征点独立进行三维变换实现三维对象的坐标变换。
[0013]第三,三维到二维透视投影方法。通过逐个SVG元素逐个特征点独立进行三维到二维的透视投影,并根据每个SVG元素中心点坐标计算底层到顶层叠放顺序,所有结果SVG元素归纳到同一平面上,形成标准SVG矢量图形,作为三维对象的透视投影。
[0014]由此三步产生的SVG图像,可以在Windows、Linux、MacOS等操作系统下,不依赖任何显示硬件,直接进行二维绘图显示,完全满足集成电路设计工具的用户界面需求。
[0015]
【附图说明】
[0016]图1基于二维SVG矢量图形的三维矢量对象表达方法流程图;
图2采用二维SVG多边形元素表示三维多面体原理图;
图3集成电路版图由二维视图过渡到三维视图示意图;
图4某空间直角坐标系函数图像示意图;
图5某空间极坐标系函数图像示意图。
[0017]
【具体实施方式】
[0018]本部分详细说明实现发明的优选方式。图1清晰描述了基于二维SVG矢量图形表达三维矢量对象的主流程,除了最后一步将结果用于“显示或再编辑”,前三步正好与主要技术方案相对应,包括以下三方面内容: 第一,三维对象建模方法的实现。由于SVG的基本元素(直线、多边形、贝塞尔曲线等)都是二维的,那么用于描述三维对象时:
1)遇到平面或二维曲线可以直接用单一SVG元素描述;
2)遇到三维空间曲面或曲线时,就要将曲面或曲线分割成若干小单元,每个小单元近似表示为二维面元、二维曲线段,进而采用SVG元素进行描述。
[0019]描述时,将SVG元素的特征点(顶点、曲线控制点)由二维坐标扩展为三维坐标,以便适应三维对象的空间位置,不过由于SVG元素本身都是二维的,所以同一元素的全部特征点一定位于某个空间平面上。
[0020]图3为集成电路版图由二维视图过渡到三维视图示意图,很明显三维视图(32)比二维视图(31)更容易观察,用户接受程度更高,这也是最近半导体行业对集成电路设计工具的新需求。其中三维视图(32)满足三维对象建模的第一种条件,每一个材料层都是平面,每层可以用单一的SVG多边形元素描述,不用分割。
[0021]图4和图5分别为某空间直角坐标系函数和某空间极坐标系函数的函数图像,很明显原始精确的函数图像应该是由空间曲面围成的,不过将开放曲面(41)和封闭曲面
(52)分割成若干二维面元表示出来,用户仍然可以接受。这就满足了三维对象建模的第二种条件,每一个小面元采用一个SVG多边形元素进行描述。此处坐标轴(42)不必分割,采用单一的SVG直线描述即可。
[0022]第二,三维坐标变换方法的实现。三维坐标变换(平移、旋转、缩放等)比较简单,逐个SVG元素逐个特征点独立进行三维变换即可,所有特征点独立操作,互不影响。
[0023]值得注意的是,通过三维坐标变换,可以将几个简单的SVG元素重新组合成复杂的三维对象。因此,本步骤与前一步三维对象建模可以反复迭代,形成很复杂的三维对象模型,适应复杂情况需求。
[0024]图2为采用二维SVG多边形元素表示三维多面体原理图,从(21)到(28)每次增加一个平面,最终围成一个正八面体。在此正八面体的建模过程中,就可以借助三维坐标变换辅助完成。最初将正八面体的中心置于空间坐标原点(0,0,0),那么第一卦限的三角形坐标就可以表示为(1,0,0)- (0
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1