专用集成电路设计实践(西电版)第5章 版图设计_第1页
专用集成电路设计实践(西电版)第5章 版图设计_第2页
专用集成电路设计实践(西电版)第5章 版图设计_第3页
专用集成电路设计实践(西电版)第5章 版图设计_第4页
专用集成电路设计实践(西电版)第5章 版图设计_第5页
已阅读5页,还剩238页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章幅员设计5.1幅员设计软件使用简介5.2幅员设计5.3幅员验证5.4幅员寄生参数的提取与后仿真 5.1幅员设计软件使用简介

L-Edit幅员设计软件

L-Edit是Tanner公司出品的一款针对幅员设计的应用软件,它允许生成和修改集成电路掩膜版上的几何图形。鼠标接口允许用户执行一般图形操作,既可使用鼠标访问下拉菜单,也可以使用键盘来调用L-Edit命令。1.简单介绍

1)鼠标的使用L-Edit推荐使用三键鼠标,如果使用两键鼠标,那么中键的功能由按下Alt键的同时按下左键来实现。

2)屏幕显示

空格键用于屏幕刷新,而其他键和鼠标任一键可中断屏幕刷新;↑、↓、←、→用于显示窗口的上、下、左、右移动;“+〞用于放大屏幕中的内容,而“-〞用于缩小屏幕中的内容。

3)调整网格点

可通过Setup→Design→Grid来调节网格宽度,通常设一个网格为1μm。2.根本命令

1)文件操作命令(File)

(1)New:翻开一个新的设计文件,单键命令为Ctrl+N。

(2)Open:翻开一个已存在的磁盘文件,此文件的格式必须为TDB、CIF或GDSⅡ,单键命令为Ctrl+O。

(3)Save:将当前设计保存,单键命令为Ctrl+S。

(4)Close:关闭当前翻开着的L-Edit设计,单键命令为Ctrl+W。

(5)Quit:退出L-Edit,单键命令为Ctrl+Q。2)编辑命令(Edit)

(1)Undo:取消以前的编辑命令,单键命令为Ctrl+Z。

(2)Cut:将当前选中的目标剪切下来,放入缓冲区paste中,单键命令为Ctrl+X。

(3)Copy:将当前选中的目标复制到缓冲区paste中,单键命令为Ctrl+C。

(4)Paste:将缓冲区paste中的内容恢复到屏幕中,单键命令为Ctrl+V。

(5)Clear:删除当前所选中的目标,与Cut的区别是目标并不拷入缓冲区paste中,单键命令为Ctrl+B。

(6)Duplicate:为当前的所选目标产生一个副本,单键命令为Ctrl+D。

(7)SelectAll:在有效空间中选中所有目标,单键命令为Ctrl+A。3.设计规那么检查DRC

1)DRC的设置

设计规那么检查可用Tools的下拉菜单中的DRCSetup命令项进行设置(或点击界面左上方第三个小图标。可以根据不同的设计规那么进行调节。

2)运行DRC

完成布线后,应对幅员作设计规那么检查,其方法是点击Tools的下拉菜单中的运行DRC...命令项(或点击界面左上方第一个小图标,这时就会出现一个确定是否要将错误信息存入一个文件的对话框,点确定按钮后即可得到相关信息。4.举例

1)模拟电路

如图5-1所示为一根本差动对电路,输入为UINA和UINB,单端输出为UOUT,Ub1为PMOS管提供电流偏置信号,从而为差动对提供电流源负载。Ub2为最下方的NMOS管提供电流偏置信号,从而为差动对提供恒定的尾电流源。图5-1以PMOS电流源为负载的差动对如果采用CMOS工艺,那么幅员层次依次为:N阱——确定有源区——多晶(MOS管的栅)——P+扩散——N+扩散——引线孔刻蚀——金属连线。

其详细步骤如下(工艺设计选择λ规那么):

(1)在File下拉菜单中点击New,出现如图5-2所示的对话框,在File中选择Layout,在CopyTDBsetupfrom中选择已存在的幅员文件,点击OK按钮后就会出现一个与选择的幅员文件对应的设计界面。图5-2幅员文件的选择(2)在屏幕左侧的幅员层次框中选择Nwell,点击BOX快捷键,在界面的相应位置画出一个矩形代表N阱。

(3)在屏幕左侧的幅员层次框中选择Active,在N阱中画两个矩形有源区,准备作PMOS管,在N阱外大于5λ处画三个有源区,准备作NMOS管,有源区的最小距离为3λ。

(4)在屏幕左侧的幅员层次框中选择Poly,在所有有源区中间画一个细的长方形,准备作MOS管的栅,最小宽度为2λ,栅在有源区的最小伸展为2λ。

(5)在屏幕左侧的幅员层次框中选择P-Select,在N阱中覆盖两个有源区,与有源区的最小间距为2λ,在阱外也画一块P扩散区,作NMOS管的衬底。(6)在屏幕左侧的幅员层次框中选择N-Select,在阱外覆盖所有NMOS的有源区,并且在阱外相应位置画一块N扩散区,作PMOS管的衬底。

(7)在屏幕左侧的幅员层次框中选择PolyContact,在栅上打接触孔,孔的边长为2λ;在屏幕左侧的幅员层次框中选择ActiveContact,在有源区上打接触孔,孔的边长也为2λ,孔间距为2λ;在屏幕左侧的幅员层次框中选择OriginLayer,在衬底上打接触孔,孔的边长都是2λ;

(8)在屏幕左侧的幅员层次框中选择Metal1,把相应的接触孔连接起来,点击Port快捷键写出输入/输出信号线名。图5-3基于CMOS的差动对幅员2)数字电路

(1)图5-4所示为一个非门电路。其幅员工艺及详细步骤同模拟电路的设计。

完成后的非门幅员如图5-5所示。图5-4非门电路图5-5非门的幅员(2)一位半加器的输入、输出信号的逻辑关系如下:SUM=A⊕BCARRY=AB图5-6一位半加器的逻辑电路图图5-7一位半加器的幅员设计完成后的幅员如图5-7所示。注意:

①画幅员时,一定要注意幅员层次和工艺几何设计规那么。例如:有源区在画多晶层前画出;引线接触孔边长要小,但要大于工艺所要求的最小边长(在λ规那么中为2λ)。

②移动元件用Alt+鼠标左键来实现。

③各层的默认习惯颜色分别为:

多晶——红色

有源区——草绿色

接触孔——黑色

N阱——土黄色(带网格)

P扩散(P-Select)——棕红色(带网格)

N扩散(N-Select)——墨绿色(带网格)

金属连线——蓝色④常用幅员设计规那么有微米规那么与λ规那么:前者是以微米为尺度表示幅员最小允许值的大小,后者是以λ为根本单位的几何设计规那么,它将幅员规定尺寸均取为λ的整数倍。表5-1λ规那么工艺设计参数工艺设计参数λ规则微米规则/μmA.N阱区A.1N阱最小宽度10λ5A.2N阱最小宽度(相同电位)6λ3A.3N阱最小宽度(不同电位)8λ4B.有源区或薄氧化层区B.1有源区最小宽度3λ1.5B.2有源区之间最小间隔3λ1.5B.3N阱内P扩到阱边的最小间隔5λ2.5B.4N阱内N扩到阱边的最小间隔3λ1.5B.5N阱到阱外N扩的最小间隔5λ2.5B.6N阱到阱外P扩的最小间隔3λ1.5C.多晶硅1(第一层多晶)C.1多晶的最小宽度2λ1C.2多晶硅之间的最小间隔2λ1C.3多晶至有源区的最小间隔1λ0.5C.4多晶硅栅在有源区的最小伸展2λ1D.P扩区(或N扩区)D.1P扩区对有源区的最小覆盖2λ1D.2P扩区的最小宽度7λ3.5D.3在毗邻接触中有源区P扩、N扩注入区的最小交叠1λ0.5E.接触孔E.1接触孔的最小边长2λ1E.2有源区接触孔的最小间距2λ1在使用L-Edit软件的过程中存在几个突出的概念性误区,下面分三个方面来说明:

①幅员和工艺之间的关系。有局部初学者认为幅员设计就是用几个颜色画一些简单图形,其实在绘制平面幅员时,要联系幅员在工艺流程中的物理实现过程。图5-8(a)所示为同一个NPN晶体管幅员和工艺剖面图。直观上看这两种表现形式相差甚远,其实它们是同一个器件的两种不同表现形式,存在一一对应的关系。半导体器件是根据幅员的设计要求和规那么,通过工艺流程分多道工序来到达物理实现的。所以在学习过程中,读者首先要弄明白平面幅员和工艺剖面图之间各物理位置上的对应关系。在L-Edit软件中各图层的颜色没有实际的物理意义,主要用于方便区分半导体材料的幅员层次。建立起这样的根本概念后,才能在集成电路的制造过程中对幅员和工艺之间的关系有一个大体的了解。图5-8一个NPN晶体管的幅员和工艺剖面图

(a)NPN晶体管幅员;(b)NPN工艺剖面图②电路图和幅员与生产线之间的关系。在解决了幅员和工艺之间的关系后,还有一个重要的概念需要建立,那就是电路图和幅员之间的一一对应关系。要学习幅员的设计规那么,在幅员设计规那么允许的范围内,要将幅员与电路单元一一对应。同时,绘制的幅员还要符合工艺生产线的要求,例如0.25μm和0.18μm工艺线对幅员技术的要求是完全不同的概念,用0.18μm工艺线设计的幅员,在0.25μm的工艺线上根本不能使用。这就是要求读者建立的另一个概念,幅员是将电路图这一工程语言“翻译〞成可以具体指导工艺生产线上生产操作的电路图,完成半导体器件生产的幅员工程语言。图5-9所示为NMOS简单非门幅员与其等效电路图。图5-9NMOS简单非门幅员与其等效电路图

(a)NMOS简单非门幅员;(b)NMOS等效电路图③布局、布线。这阶段经常会遇到管脚线无法引出的问题,即使完成布局,走线也极不合理,这就是所谓的幅员设计问题。幅员设计不但涵盖电路知识、工艺知识,还涉及丰富的器件性能知识,所以要实现合理的布局、布线就需要反复练习,多看多实践,扎扎实实地掌握幅员上的每一个层次和剖面图的对应关系,并理解幅员中各层次先后顺序的意义。如果合理布线,可以节省大量的芯片面积。在学习过程中,读者要按照工艺顺序来进行幅员绘制,每画一层都要明白图层的物理含义,这样就可防止漏层、掉层的现象。虽然平面幅员的绘制并无先后顺序的要求,但是在工艺实现过程中层次的先后顺序是有物理意义的。例如通过幅员制作了7张光刻版,那么这7张版在工艺线上使用的先后顺序是绝对不能错的,必须按照隔离、掺杂(屡次)、金属、钝化、封装这样一个工艺流程来进行生产,否那么生产出来的肯定是废品。掌握了工艺流程和工艺要求后,读者应先绘制一些简单的单元图,来加深理解电路图-幅员-工艺流程剖面图。只有掌握了这样一个设计过程和相互的对应关系,才能对集成电路设计有更深的了解。Virtuoso幅员设计软件

VirtuosoLayoutEditor是Cadence公司出品的一款针对幅员设计的应用软件,本节介绍利用VirtuosoLayoutEditor(以下简称Le)创立全定制幅员的过程,以及VirtuosoLe的一些使用说明。这里将以反相器的幅员设计为例来说明如何绘制全定制幅员,该幅员设计过程采用chartered(csm25rf)库-标准CMOS工艺库。具体内容包括:

(1)如何翻开VirtuosoLe及它的一些设置。

(2)使用LSW窗口。

(3)使用Le创立一个幅员。登录以后,首先创立自己的工作目录,比方Work、cdWork。从csm25rf库所在文件夹下拷贝display.drf文件到自己的工作目录下,否那么在LSW窗口无法显示绘制幅员需要的各个图层。从/CDS_ROOT/tools/dfII/cdsuser目录下拷贝.cdsinit文件到自己的目录下,该文件是Cadence自带的软件相关设置的文件,里面有字体的设置、Bindkey设置等。当然也可以单靠鼠标来进行操作,但VirtuosoLe窗口有常用命令的工具栏,熟练运用快捷键比鼠标要快很多。1.开始设计过程

假设现在有如图5-10所示的逻辑电路图,技术库为csm25rf,P管和N管采用相同的尺寸,L=600nm,W=3μm。

1)运行VirtuosoLe

要翻开VirtuosoLe,首先要翻开CIW窗口。在Shell命令行下输入icfb&后进入CIW窗口,字符&使得Cadence在后台工作(即可以在Shell命令行下执行其他命令)。也可以在Shell提示符下输入其他的命令来翻开CIW窗口,如图5-11所示(在这里也可以输入layout&或者layoutPlus&)。图5-10反相器逻辑图图5-11CIW窗口图5-12LibraryManager窗口确保csm25rf、basic和analogLib这三个库都已经存在,如果不存在,需要手动添加它们。

小技巧:如果在LibraryManager中发现Library的字体颜色是红色的,就要把该Library删掉,否那么会出现一些奇怪的问题。2)建立自己的工作库

翻开VirtuosoLe后,在CIW窗口中选择File→New→NewLibrary建立自己的工作库。在弹出的对话框的LibraryName栏中输入库的名字,比方xd008;在TechnologyFile选项框选择Attachtoanexistingtechfile,点击OK按钮,弹出AttachDesignLibrarytoTechnologyFile对话框,如图5-13所示。图5-13AttachDesignLibrarytoTechnologyFile对话框在TechnologyLibrary选项卡中选择csm25rf,按下OK按钮,两个对话框消失。至此,已经建立了自己的工作库xd008,并且它与技术库csm25rf相关联。

在NewLibrary窗口的TechnologyFile选项框中,如果没有现成的技术库,只有相应的技术文件(techfile),那么可以先选择Compileanewtechfile来创立自己的技术库。如果该选项被选上,点击OK按钮后会弹出一个输入ASCII码文件(techfile)的对话框。在该对话框中输入技术文件的完整路径,点击OK按钮,如果没有错误,一个自己的技术库就生成了。3)创立幅员文件

在CIW窗口中选择File→New→NewCellview,翻开创立新Cellview的对话框,如图5-14所示。在LibraryName栏选择xd008,在Tool栏选择Virtuoso,在CellName栏输入inv,然后点击OK按钮。这时会弹出三个窗口,其中一个是Le的窗口,一个是Le的说明窗口,另一个是LSW窗口。图5-14创立新Cellview的对话框2.相关说明和设置

1)Le及LSW窗口相关说明

幅员视窗(VirtuosoLe)翻开后,掩膜幅员(Le)窗口显现。该窗口由三局部组成:IconMenu、MenuBanner及StatusBanner。

IconMenu(图标菜单)缺省时位于幅员图框的左边,列出了一些最常用的命令的图标。要查看图标所代表的指令,只需要将鼠标滑动到想要查看的图标上,图标下方即会显示出相应的指令。

MenuBanner(菜单栏)包含了编辑幅员所需要的各项指令,并按相应的类别分组。几个常用的MenuBanner指令及相应的快捷键如表5-2所示。表5-2MenuBanner常用指令ZoomIn-放大(z)Zoomoutby2-缩小2倍(Z)Save-保存编辑(f2)Delete-删除编辑(Del)Undo-取消编辑(u)Redo-恢复编辑(U)Move-移动(m)Stretch-伸缩(s)Rectangle-编辑矩形图形(r)Polygon-编辑多边形图形(P)Path-编辑布线路径(p)Copy-复制编辑(c)2)LSW视图的功能

(1)可选择所编辑图形所在的层。

(2)可选择哪些层可供编辑。

(3)可选择哪些层可以看到。

只要在刚刚运行icfb的目录中有正确的display.drf文件的拷贝,在LSW窗口就会显示出设计中需要的所有图层。为了简单起见,表5-3仅列出绘制这个幅员所需的最少幅员层次。层次名称说明NwellN阱PdiffP有源区NdiffN有源区

CNT引线孔,连接金属与多晶硅/有源区Metl第一层金属,用于水平布线,如电源和地Vial通孔,连接Metal1和Metal2Met2第二层金属,用于垂直布线,如信号源的I/O口Text标签Poly2多晶硅,做MOS的栅表5-3幅员层次说明3)使用LSW窗口

在LSW窗口的图层栏点击一个图层,比方Metal1,那么Metal1为当前图层,在Le窗口就可以画出该层的图形来。

如果只需要显示Metal1层,那么先选择Metal1,然后在图层资源的上方选择NV,再用鼠标点击Le窗口,在键盘上按F键,那么Le视图窗口就隐藏了其他的图层,这样可以只编辑该图层,而不受其他图层的影响。如果想再多显示另外一层,比方Contact,那么用鼠标在LSW窗口点击Contact,然后用鼠标点击Le窗口,按下F键,那么Contact层也显示出来了。利用同样的方法,可以显示更多的图层或者任意的一层或几层。当编辑完之后,要回到全部显示时,在LSW窗口选择AV,切换到Le窗口,按下F键,将显示全部图层。在建立相应的幅员的图形后,如果需要编辑新建的图形,可能会遇到这样一个问题:由于设计的幅员比较复杂,多个图形叠加到一起,在选择Metal1的一个图形时,不小心选上了P管,而这时如果执行的命令是移动或者拉伸,就有可能造成先前管子的布局和位置的改变,如果是删除那么可能会把管子删除掉,这会给设计带来很大的不便。在这种情况下可以通过LSW窗口来控制器件的可选性。在LSW窗口中比较靠上方处点击ShowObjects,将其切换为ShowLayers,其中有两个选项inst和pin,如图5-15所示,默认都被选上,如果不想让器件为可选,那么取消inst右边Sel选上标志,同样也可以取消pin的可选性。另外也可以控制哪些图层可以被编辑,方法类似于如何控制图层的显示,其中的选项为NS和AS,通过设置可以选择任意的图层来编辑。图5-15inst与pin选项4)一些相关的设置

(1)在画幅员的过程中出现错误是无法防止的。如果还没保存时发现有错误,却撤销不了,可能是因为没有修改UndoLevel值(默认为1,只能撤销一步操作),并且已经进行了很多步的操作。可以通过在VirtuosoLe窗口中运行Design→DisguardChange来返回到上次保存的状态,不过这个方法有时会浪费较长的工作时间。在CIW窗口中选择Options→UserPreferences,在弹出的对话框中把UndoLevel改为最大10。在绘制幅员的过程中,如果有错误操作,那么在还没保存的情况下可以通过撤销命令(Undo)来撤销10步以内的操作。UserPreferences的设置窗口如图5-16所示。在CommandControls中把OptionsDisplayedWhenCommandsStart设置为on,那么每执行一个命令,其相应的对话框就会出现。在这种情况下,就可以对命令的一些参数进行设置,也有利于更好地了解一些常用的命令。图5-16UserPreferences的设置窗口(2)在Le菜单栏中,选择Option→Display(快捷键E)翻开DisplayOptions对话框,如图5-17所示。

在DisplayLevels中把From0To0改为From0To23(或者其他的大于零的数)。该选项设置用来显示器件的深度,如果不改,将无法看到调用的器件的内部结构。在MinorSpacing中填入0.1,在MajorSpacing中填入0.5,在XSnapSpacing中填入0.01,在YSnapSpacing中填入0.01。这些设置有利于编辑时的图形对准,其值在需要的时候可以设置得更小。其他选项保持默认状态。图5-17DisplayOptions对话框(3)选择Option→LayoutEditor(快捷键Shift+E),在LayoutEditorOptions对话框中取消其中的GravityOn选项,点击OK按钮。请务必保证GravityOn为off,如图5-18所示。图5-18GravityOn选项的设置3.画MOS管的幅员

假设没有标准器件库,那么需要自己画出PMOS和NMOS管的幅员。这里新建一个名为PMOS的cell。

1)画出有源区

在LSW中点击Active(dg),注意这时LSW顶部显示Active字样,说明Active层为当前所选层次。然后点击IconMenu中的RectangleIcon,在VirtuosoEditing窗口中画一个宽为3.6μm,长为6μm的矩形。这里为了定标,必须使用标尺,点击Misc→Ruler即可得到。要去除标尺,只需点击Misc→ClearRuler。如果绘制时出错,那么点击需要去除的局部,然后点击DeleteIcon。2)画栅

在LSW中,点击Poly(dg),画矩形,它与有源区的位置关系如图5-19所示。图5-19矩形与有源区的位置关系3)画PMOS管

为了说明画的是PMOS管,必须在刚刚所画图形的根底上添加一个P-Select层,如图5-20所示。这一层将覆盖整个有源区间距为0.6μm。接着,还要在整个管子外围画上Nwell,它所覆盖的有源区间距为1.8μm。图5-20添加P-Select层4)衬底连接

PMOS的衬底(Nwell)必须连接到UDD。首先画一个1.2μm×1.2μm的Active矩形;然后在这个矩形的边上包围一层N-Select层(覆盖Active0.6μm);最后将Nwell的矩形拉长。完成后如图5-21所示。

至此,一个PMOS的幅员就大致完成了。绘制NMOS管的步骤和绘制PMOS管的根本相同(新建一个名为NMOS的cell)。图5-21衬底连接4.画反相器

1)添加器件

现在添加反相器的P管和N管。在工具栏中选择AddInstance或者按快捷键I,弹出添加器件对话框(CreateInstance),如图5-22所示。按下Browse按钮,出现BrowseLibrary对话框。在Library中选择csm25rf,设Cell为pmos_tk(厚栅),View为layout。改变管子的栅长和宽:w=3μm,l=600nm,如图5-22所示。然后在Le窗口中点击鼠标左键,添加一个P管。图5-22添加器件对话框图5-23P管和N管幅员2)添加矩形

在N管和P管之间需要用多晶硅来连接两个管子的栅,如图5-24所示。在LSW窗口中点击POLY2(在chartered库中利用poly2作为管子的栅),切换到Le窗口,利用鼠标点击工具栏中的下方倒数第二个按钮或者按下R键,放大到两个管子之间的地方,就可以开始画矩形了。选择的第一个点是P管栅的左下角,第二个点是N管栅的右上角,如图5-24所示,就用多晶硅把两个管子的栅连接到一起。

利用同样的方法在输出端用Metal1把两个管子连接起来,该软件的默认设置是重复命令,即在画完一个矩形后可以不执行任何其他命令而继续画更多的矩形,按Esc键可以取消当前命令。但一旦执行下一个命令后,前一个命令将自动取消。图5-24连接P管和N管的栅3)添加多边形

在LSW窗口中选择Metal1作为当前图层,在Create菜单下选择Polygon或者按工具栏下方倒数第四个按钮(或按快捷键Shift+P)进入添加多边形状态。如果在先前UserPreferences对话框中选择了OptionsDisplayedWhenCommandsStart(见图5-16),那么可以看到一个新建多边形的对话框,如图5-25所示。图5-25新建多边形对话框4)添加电源连线

用鼠标屡次点击形成多边形的多个顶点,就可以构成一个封闭的图像,如图5-26所示。图5-26添加电源线5)添加地线

添加地线后得到如图5-27所示的粗略的幅员,对其还需要编辑才能不出现错误。图5-27添加地线6)编辑幅员

通过拉伸可使得各个图形相互对准。在菜单栏选择Edit→Stretch(或按快捷键S)或者按下工具栏的相应按钮,进入到拉伸状态。放大到要编辑的地方,选择要调整的边(不能把整个图形选上),拖动鼠标拉到适宜的地方,如图5-28所示。注意:在这里执行拉伸命令的时候需保证当前没有选中器件或者图形。如果选中了图形,那么相当于执行了移动命令。有一个小技巧:利用鼠标右键可以放大自己需要看的地方,方法是先用鼠标右键点中要放大的区域的右下角,按住并往左上角方向拖动,会有一个方形的边框表示选择的区域,如果看到该边框已经包围了需要放大的区域,放开鼠标右键,就放大了所选的区域。如果将鼠标从左上角往右下角拖动,那么会起到缩小的作用。调整后的幅员如图5-29所示。图5-28拉伸编辑图5-29调整后的幅员7)添加输入端

反相器的输入端应该为金属,所以要添加接触孔。在菜单栏中选择Create→Contact(或按快捷键O),弹出添加接触孔的对话框,如图5-30所示。在ContactType选项选择M1_POLY2,点击Hide按钮,在Le视窗的适当位置点击添加接触孔,这样就得到一个漂亮的幅员,如图5-31所示。设计完后将对幅员进行验证,这局部内容见后续章节。图5-30添加接触孔对话框图5-31设计完成后的幅员 5.2幅员设计

在产品开发过程中,有多种基于特定设计的设计流程,这里考虑一个通用概念上的流程。IC设计周期中各步骤的前后关系如图5-32所示,从中可以看到幅员设计在芯片设计流程中所处的位置。

·首先,市场部通常会详细规定需要开发的产品。

·然后,规定设计的结构或者行为。电路设计工程师规定芯片的结构以满足市场和/或IDEA功能需求。图5-32IC设计流程图·系统仿真由一组工程师完成。电路设计工程师会对将要集成在最终芯片中的各个单独模块进行定义和验证。这一步验证了上一步中规定的结构是否合理,并清楚地定义了需要进一步实现的可处理的模块。

·电路设计组将完成所有的数字和模拟仿真,以验证电路的方案和门的连接,以及门的尺寸(为了满足时序标准)。电路设计组需要和幅员设计组进行交流,幅员设计组会使电路适合芯片的幅员布局。·幅员设计由幅员设计工程师完成。他们的工作包括画出器件和互连线,对于所有的模块,利用电路设计组生成的电路图来实现晶体管、基底连接及互连(使用1~6层金属)等。可以大规模生产的最终设计是整个芯片的幅员。

·在第一块晶圆制造出来后,测试组就要开始尝试测试芯片。首先,他们将检查工艺参数是否在可以接受的误差范围内。下一步是使用工程测试仪来测试芯片,以便找出所有违规情况,并尝试现场解决这些问题。图5-32只是一个概念上的流程。实际中,在通过不同的设计阶段时会有很多的反复设计和设计上的迭代。很多不同的因素会引起设计上的改变,包括很多来自于幅员上的限制或者约束。

数字和模拟幅员设计既有相同之处也有不同之处,它们的设计总原那么为:既要充分利用硅片面积,又要在工艺条件允许的限度内尽可能提高成品率;幅员面积(包括压焊点在内)尽可能小而接近方形,以减少每个电路的实际占用面积。生产实践说明,当芯片面积降低10%时,每个大圆片上的管芯成品率可以提高15%~25%。幅员设计时所应遵循的一般原那么是:(1)隔离区的数目尽可能少。PN结的隔离框面积约为管芯面积的1/3,隔离区数目少,有利于减小芯片面积。集电极电位相同的晶体管,可以放在同一隔离区。二极管按晶体管原那么处理。全部电阻可以放在同一隔离区内,但隔离区不宜太大,否那么会造成漏电大、耐压低。为了走线方便,电阻也可以分别放在几个隔离区内。各压焊块(地压焊块除外)都放在隔离区内,以防止压焊时压穿SiO2,造成与衬底短路。管芯外围也要进行大面积隔离扩散,以减少输入端钳位二极管的串联电阻。(2)注意防止各种寄生效应。隔离槽要接电路最负电位,电阻岛的外延层接最高电位。这是保证PN结隔离效果的必要条件,以使PN结隔离区始终处于反偏置状态。输入与输出端应尽可能远离,以防止发生不应有的影响。电阻等发热元件要放在芯片中央。芯片的温度分布要均匀。(3)设计铝条时,希望铝条尽量短而宽。铝条本身也要引入串联电阻,因此也需计算铝条引入的串联电阻对线路的影响。铝条不能相交,在必须相交时,可让一条或几条铝条通过多发射极管的发射极区间或发射区与基区区间,也可从电阻上穿过,但不应跨过三次氧化层。必须采用“磷桥〞穿接时,要计算“磷桥〞引入的附加电阻对电路特性的影响。一般不允许“磷桥〞加在地线上。应尽可能防止使用扩散条串穿接方式,因为扩散条不仅会带来附加电阻和寄生电容,同时还要占据一定的面积。在LSI中,当一层布线无法保证实现元件之间必要的连接时,普遍使用多层布线。铝条压焊点电极要有合理的分布,应符合引出脚排列。(4)保证元件的对称性。参数要求一致的元件,应放在邻近的区域。几何结构尽可能对称,不能只考虑走线方便而破坏对称性。

(5)接地孔尽可能开大些。凡需接地的发射极、电阻等,不能只靠在隔离槽上开的接触孔接地,要尽可能让地线直接通过该处。接地线尽可能地沿隔离槽走线。接电源的引线应短而宽,接UDD的电源孔应尽可能开大些。集电极等扩磷孔应比其他接触孔大。

(6)铝条适当盖住接触孔(一般每边覆盖2μm),在位置空的地方可多覆盖一些;走线太紧时,也可只覆盖一边。(7)为了在减小幅员面积的同时又使走线方便、布局合理,各电阻的形状可以灵活多样,小电阻可用隐埋电阻。各管电极的位置可以平放或立放。

(8)但凡可能,所设计的电路应留有适当的过载能力,并防止使用易损坏的元件。

(9)压焊块的数目以及排列顺序应该与外壳引出脚排列相符合,电极分布应均匀。(10)确定光刻的根本尺寸。根据工艺水平和光刻精度定出图形及各个扩散间距的最小尺寸,其中最为关键的是发射极接触孔的尺寸和套刻间距。集成晶体管是由一系列相互套合的图形组成的,其中最小的图形尺寸是发射极接触孔的宽度,所以往往选用设计规那么中的最小图形尺寸作为发射极接触孔,其他图形都是在此根底上考虑图形间的最小间距进行逐步套合、放大的。最小图形尺寸受到掩膜对中容差、扩散过程中的横向扩散、耗尽层扩展等多种因素的限制。1.平面布局(Floorplanning)

在布局和布线工具中要用到的第一个软件称为平面布局工具。这个工具将在平面上画出功能区域,确定这些区域间的连接关系以及I/O压焊块的位置,并反响有关平面布局在进行布线时的信息。平面布局工具从编译软件产生的网表文件中获取它所需要的连接关系和门的信息。1)功能块的布局

通常,芯片将被划分成不同的功能区。例如,如果设计的是一个大的数字芯片,那么在芯片上可能会有微处理器单元(MPU),也许有一个浮点单元(FPU),还可能有一个RAM模块和一个ROM模块。

每一个功能区放在哪里是由设计者而不是计算机来决定的。可以把微处理器所有的门放在左下角,把RAM所有的门放在右上角,如图5-33所示。当然,这样的布局有可能发生改变。图5-33芯片功能块布置2)门的分组

一旦确定了功能区,要做的第一件事就是把每一模块中的门在一定程度上放在一起。例如,不希望FPU的门散布在ROM或RAM模块的各处。所有相关的门应当相互间就近放置。

平面布局工具可把相关的门放在一起,但每个门确实切位置在此时还无法确定,因为可能在以后的某个时候需要改变模块的位置。所以在目前确定大致的相邻位置就可以了。3)模块级的连接关系

平面布局工具将布置芯片的输入和输出(I/O)单元。例如,假设希望所有通往FPU的输入都靠近左上角的FPU模块,有些工具会自动把I/O单元放在适宜的区域,如图5-34所示,而另一些工具将根据所确定的布局来反响相应的图形信息。

平面布局工具还显示了模块之间必需的布线连接,例如它将显示FPU和RAM模块之间的连接。图5-34输入和输出各放置在适当单元模块附近4)使用飞线

通常,平面布局工具会显示从每一个模块连至I/O压焊块和其他模块的所有导线。这些数不清的导线就是大多数设计工具提到的所谓飞线。

在计算机屏幕上按动鼠标选中、拖动和调整模块时,会看到所有这些导线的连接会随着光标同时移动。如果这些飞线变得交叉杂乱,那么电路就很难布线;而如果没有这些交叉的飞线,布线将会很容易,如图5-35所示。应该改变模块的平面布局,使飞线看上去尽可能干净整齐和容易布线。这可能需要重新安排整个功能区;或者把一个小模块移到另一边,并把它安排在两个大模块之间;或者把位于中间的一个模块放到边上,或是把一个外边的模块放到中间。

当最终得到一个布线简单、适宜的模块分布图时,把该平面布局输出文件保存起来。图5-35飞线一定要布置整齐5)时序检查

由于最终的平面布局输出文件说明了各个门的总体位置,平面布局工具就会知道所有导线的大致长度。对这些导线长度的估计是根据数字电路库中的实际尺寸做出的。

利用这些信息,平面布局工具可以输出一个包含有导线估计长度的文件,并送回数字电路模拟器中,通过进行一些模拟,来确定估计的线长对数字电路会有什么影响。必须检查由于长导线使电路信号减慢太多从而对电路时序产生的影响有多大。如果导线长度确实影响了电路的时序,那么电路设计者就需要根据平面布局修改其设计,此时需要修改网表。例如,可能在模块中放上一个强度更大的单元来驱动额外的导线电容。在设计者更好地安排了设计之后,就会发现这一设计不仅更容易布线,而且最终也会使芯片更好地工作。如图5-36所示,经过几次这样的平面设计和时序检查的反复之后,模拟器的时序要求将得到满足。在确定了一个满意的设计后,就进入了一个新的阶段——将器件固定到位。图5-36平面布局/时序验证的过程2.布置

在确定了设计后,可以用一个布置工具把每一模块中所有的逻辑门固定在它们确切的位置上,然后按照一个精确的最终布线方案,利用布线工具把这些门连接起来。布置工具和布线工具是布线工具包中的两组程序。

布置软件首先选出一个模块开始工作,然后寻找与这一模块相关的部件。比方,它发现有5000个门与一个浮点单元相关,它可能会巡视一下这5000个门,然后看到网表中有25个门是连在一起的,所以尽可能把这些门放得近一些。接着,布置软件继续根据逻辑门的连接关系和平面布局工具的输出文件来安排它们的位置。最初的布置方案可能需要修改很屡次。每次布置改进一点,直到得到的布置容易布线为止。这个最终的布置大致上决定了最终的幅员。

已有许多布置工具可以根据设计中信号的时序要求来确定门的布置。这种布置方法称为时序驱动幅员设计,它已成为通用的方法。由这种方法生成的最终结果通常远比传统的方法好很多。

不仅是芯片中的门,所有的I/O驱动器也在此时布置。I/O驱动器是一些特殊的单元,它们将驱动输入信号,提供输出,并包括了ESD保护和测试电路。3.标准网格

标准幅员系统使每样东西都以一个标准网格作为对准的根底,实现自动布线并保证标准单元整体布置的可操作性。如果统一设计单元既注意与网格对准又遵循其他规那么,就可以使用自动设计工具自由地支配布局和布线。

经典的布线器以网格为根底。一个网格式布线器要遵循两个约束条件:它的导线只能有几种固定的宽度并且只能放在预先确定坐标的网格上;必须遵循对准网格的规那么,不能在网格式系统中进行随意设计。沿网格线布线限制了可能的布线方式,但它可以用自开工具来进行布线(如图5-37所示),并且能使这些工具尽其所能。一个网格式布线器完全依赖于这些网格进行工作。图5-37自动布线器以网格线为中心布线4.网格式布线系统要求的库设计规那么

在采用一个网格式布线器时,需要有一套规那么来标准与幅员设计相关的每一样东西。一般要根据这些规那么来建立一个完整的单元库。每一个单元、每一个门,总之每一样东西都必须符合这些规那么。

1)对齐输入和输出

必须以同样的方式使标准单元库中的所有部件都与网格相匹配。导线、单元、交点等所有的幅员对象都必须服从如对齐和间距这样的一些规那么,否那么,就不能保证自动布线系统在DRC和LVS时没有问题。2)高度固定,宽度可变

每一个门有多种不同尺寸的电源轨线,并且门的高度也各不相同,那么即使所有的门都对齐网格,布线也会非常混乱,软件也很难运行。注意图5-38中这些小尺寸、中尺寸和大尺寸的反相器如何使电源线拐来拐去。因此,为了保持结构的统一,需迫使所有的门都必须服从固定高度设置。一个规定的固定单元高度控制着整个库。

采用高度固定的库有一个优点:如果把所有的逻辑门一个挨一个地摆放,那么电源轨线就很容易布线。事实上,可以让每一个单元与它相邻的一个单元恰好对接,这样就不必专门连接电源轨线了,因为它们已经连在了一起。图5-38不同高度的幅员单元对于数字幅员,特别是标准单元幅员,因为受布局布线工具的约束,单元高度固定、宽度可变是唯一可行的工作方式。这一方法可保证将所有这些单元互相并排放置,因而DRC不会出现问题。它在整个数字幅员领域是非常通用的技术,所遇到的大多数库都是高度固定、宽度可变的。只要从按网格建立的库中找到所要的单元,然后让它们就位就可以了。

高度固定、宽度可变这一技术在模拟幅员设计中也非常有用。人们甚至在设计全定制的模拟电路时也会用到它。例如,在设计中需要重复用许多尺寸相近的单元,那么也可以用这一方法使单元布局布线更容易一些。通过建立起一排排和一列列单元,使电源线和布线通道相邻接,可以像处理数字幅员那样来处理它们。3)半网格单元尺寸

把相邻的单元相互对接起来,无需导线就可以把电源轨线或N阱连接起来,正好形成了一条长带。然而,如果把相邻的单元对接,很可能会把相邻元件的内部部件也对接起来。这样做是不允许的,因为内部部件必须服从它们的最小间距规那么。但如果内部器件离每一个单元的边缘足够远,那么就可以自由地把相邻的单元对接在一起了。

如果内部器件离每一个单元的边缘不够远,有一个非常方便而且最为有效的方法来解决这一问题。如图5-39所示,让所有内部导线都处于网格上,然后使相互对接单元的边沿落在两条网格线的中间,即处于半个网格的位置上。这样就保证了金属线相互间正好能保持所需要的最小间距。图5-39金属线落在网格上,单元边沿落在网格线的中间5.布线

在逻辑门和I/O单元各就其位之后,就可以开始把每一局部用导线连接在一起。

布线软件有两个要优先布线的网络——供电网络和时钟信号网络。它将首先对这两种网络布线,因为它们是最关键的。

在电源轨线和时钟信号就位后,布线软件将继续对电路的其余局部布线,并可以从任何关键的电路开始。

下面按重要性的顺序考虑具体的布线。1)供电网络

把电源连至各逻辑门有一定的规那么。电源线必须以某一处为中心并按一定方向走线。如图5-40所示,导线从各个逻辑门的中间穿过。当然,自动布线时可以在任何时候进行干预:可能希望对电源布线做一些特别的处理;也可能要把某个模块移动一下位置;或是在电路的某一局部增加额外的电源线,因为这一区域在某些情况下会需要较大的供电。了解电路的功能就能做出这些决定。布线软件由网表驱动,而网表了解每一个部件。因此,在布线工具完成供电网络的布线之后会自动报告。图5-40电源轨线通过逻辑门2)搭接

注意图5-41中位于最右上角深色的单元,它离UDD输入压焊块最远。电源从左下角进入电路,必定要经过所有的轨线。可以看到,电源电流要经过许多串联的金属线才能到达右上角这个最末端的小单元,所以其导线电阻大。图5-41距离UDD压焊块远的导线电阻大另一个深色的离压焊块最近的单元由于离得近,因此所经过的电阻就小得多。用金属线与电源轨线交叉搭接,就得到了一个并联多路径的大网络,见图5-42,由于电阻被并联了起来,因此总电阻降低了。图5-42搭接轨线把搭接线和轨线在芯片上铺开,用更多的并行路径给芯片供电。当然,路径越多越好。在电源布线软件中要求电源线有相同的间距。它规定,不管是否需要,每隔一定距离(如60μm或100μm)都要有一条搭接线。然而,较新的布线工具在布置供电搭接线之前要先看一下单元中的驱动强度。如果在某一区域集中了很多大驱动强度的单元,就会需要较多的功率。于是经过计算,布线器就会在这一区域放上更多的供电搭接线。3)时钟网络布线

一旦完成了电源轨线的布置,软件通常会提供一个专门的工具来连接所有的时钟网络。

可以采用许多工具来布线时钟网络,每一种工具都有它自己特别的工作方式。如果只能用手工来布线时钟网络,那么可采用中心时钟主干线方法。如图5-43所示,电路中通常会有一个具有足够驱动强度的时钟驱动单元,用来驱动最高一层的时钟缓冲器。把这个单元放在设计的中心处,然后建立一个大的中心干线,由它分支来连接所有的时钟缓冲器。随着网络由主驱动器向外越伸越远,它不断分叉出越来越多和越来越细的分支。外围分支上的导线宽度也变得越来越窄。大的中心区域就像一根粗壮的树干,因此命名此方法为中心时钟主干线方法。

中心时钟主干线方法很容易布线,时钟信号的分布也会变得非常容易。图5-43用中心时钟主干线方法布线时钟网络4)其他关键网络

首先对最为担忧的网络进行布线,也许还会采用手工布线。设计者应当得到一个说明芯片关键网络的清单。把关键网络的文件送入自动布线器,它就开始工作。在布线还比较容易的时候先处理这些关键网络,然后再完成芯片的大局部布线。同样,也可以随时进行干预,直到所有的关键网络完全到达要求。5)其余网络

最后要做的是布线电路中余下的局部。有时,布线工具自己会知道如何自动布线剩下的每一局部。完成一个很大的芯片的布线可能需要好几天的时间。6)手工完成布线

当自动布线工具尽其所能完成其工作后,也许已经完成了芯片上所有的布线,但是也许还没有完成芯片上的所有布线。通常,布线器对某些区域束手无策,它可能会“进入〞某些“死胡同〞中,然后就停止布线,这时可以通过布线器查看还有多少网络没有完成。设计者常常不得不拆开某些网络,移动周围的部件,依靠人工干预来完成所有的网络和那些计算机无能为力的布线工作。

例如,布线器报告有5个网络处理不了。它会标注出这些尚未布线的网络的位置。注意这些计算机无法布线的引线端所在的区域,通常能发现布线器已在这些区域附近放置了导线,它停下来是因为有一大堆东西挡住了去路。这常常是一些非常明显的东西,比方一些前面布线过的网络。通常只需要移去某些挡路的导线或稍稍重新布一下线就可以释放出一些区域,然后就可以在需要的地方正常布线了。自动布线工具多半不会在第一次通过时就100%地完成布线,常常要手工预先布线某些信号,这样就能节省许多时间。有时,如果芯片尺寸太小,也许完全无法布线。比方不能在一个100μm的空间放置5000条导线。或者也许有许多空间,但是有太多的网络交叉或者是平面布局很糟。在这种情况下,就需要回到平面布局,并从草图开始重新工作。

最后,所有的门都连接起来了,这时可以让计算机输出一个布线文件,这个文件会显示实际的导线长度和实际的导线电容。这些数据已不需要再调整,也不需要再估计,它们是最终的真实数据。6.预制门阵列芯片

以上所有技术也可用于一种称为门阵列的特殊芯片。门阵列是一种预先定义并已局部预先制造出来的芯片,它实际上是许多逻辑门的阵列。半导体制造商将圆片加工到淀积金属层之前,就不再加工并就此存放起来,直到需要时再启用。门阵列仍需要使用平面布局工具、布置工具和布线工具来布局、布线,但是不必布置任何扩散区或多晶硅,只需布置金属层和接触层。这类芯片对于测试样品电路非常有用。加工一个门阵列只需要几个星期的时间,因为只需要完成工艺的最后几步。一般只能从几种尺寸固定的门阵列芯片中进行选择,有小型的、中型的和大型的。制造商可能会给出含有5000个门、10000个门及50000个门的门阵列,需要从这些尺寸中进行挑选。如果设计含有30000个门,但供给商并没有30000门的门阵列,就不得不采用更大的尺寸,如50000门的门阵列,这会浪费许多空间。并且50000门的门阵列可能会提供150个I/O压焊块,而设计中只需要50个I/O压焊块,这也将造成空间的浪费。

完成逻辑设计,并且已经用门阵列证明了设计设想时,就可以把设计转为真正确定的器件。7.验证

验证分设计验证和物理验证。

1)设计验证

把新的布线文件再次送回到负责模拟的人员那里,这次是用实际的布线数据来模拟,不再是估计值。如果工具足够好而且模型也足够好,那么布线就会很好。如果布线工具完成得不好,或工作做得不好,那么电路设计者也许不得不再次修改设计。如果需要重新设计,并不意味着以前的工作全白做。设计团队可能会保存一些原有的工作,只需参加一些新的逻辑,去掉一些单元,然后再重新布线。然而,有时可能必须重新做一遍。数字掩膜设计者不必亲手去掉一两个门并替换它们,而是运行工具和软件进行一些修改,软件有足够的智能来参加新的连接并进行大多数的重构工作。一个好的幅员设计者必须对工具非常熟悉,并知道它们在电路中的用途。一个优秀的掩膜设计者如果了解电路工作的一些细节,就能预先解决一些可能会出现的问题,从而从一开始就能布置出一个好的平面布局来。

最后,当所有的布局、布线工作都已完成,且芯片也经过了重新模拟,这时就完成了芯片的高层次幅员,即已把根本数据从一个概念性的格式转化为了一个真正的掩膜设计。2)物理验证

至设计验证完成,只是根据输入和输出来进行布局、布线,从而完成设计工作,但还未涉及到真正的晶体管,也不了解里面具体是什么。下面将介绍这些器件符号的物理验证。(1)GDSⅡ文件。

为了完成掩膜设计,将用到这个抽象的高层次的根本数据文件,并以真正的逻辑门来代替这些数据文件。使用布局和布线工具提供的数据把来自实际单元库中的部件替代为抽象部件时,就得到了一个芯片的GDSⅡ字符串文件,如图5-44所示。这个文件中包含了所有的部件、单元的所有连接及所有的通孔等。图5-44根本数据和实际晶体管融合产生一个GDSⅡ文件(2)DRC和LVS检查。

在生成最后的GDSⅡ输出文件时,芯片设计已经经过无数次操作了。一旦得到了GDSⅡ字符串文件,就要运行检查程序以保证布线完整无误。这时,运用设计规那么检查(DesignRuleCheck,DRC)软件来检查所有的工艺设计规那么,检查布线和晶体管的连接关系是否符合网表中定义的连接要求。运用幅员与电路图比照(LayoutVersusSchematic,LVS)软件来进行连接关系的检查,如图5-45所示。图5-45检查设计工作模拟电路的幅员设计

1.数字技巧和模拟技巧的比照

数字掩膜设计和模拟掩膜设计正在融合。随着微处理器时钟频率的不断提高,CMOS数字芯片变得越来越像一个模拟电路。同时,对模拟幅员设计者来说,数字领域常用的标准化技术也是极有价值的。大多数技术在某种程度上都可以用于这两个领域。因此,所采用的这些技术在数字掩膜设计和模拟掩膜设计之间不一定要有很大的差异。数字和模拟掩膜设计之间的一些比较明显的差异如下:

(1)规模不同。在数字IC中,一个芯片上可能会有1000万个挨在一起的反相器。而在模拟IC上将看不到1000万个放大器,也许只有三个或四个。

(2)主要目标不同。设计CMOS数字芯片时,主要目标是优化芯片的存储和提高密集度。例如,需要保证数字反相器尽可能很小。一个反相器可以比需要的只大10%,但是当有1000万个这样的反相器合在一起时,整个芯片就会显著变大,芯片本钱将太高,掩膜设计者的工作将没有价值。在模拟设计中,无论是CMOS还是双极型电路,主要目标并不是芯片的尺寸,而是优化电路的性能、匹配程度、速度和各种功能。自然,面积在某种程度上仍然是一个问题,但不再是压倒一切的问题。在模拟掩膜设计中,性能比尺寸更为重要。(3)团队工作方式不同。当一个数字工程到了一定程度时,掩膜设计者就可以完全独立地工作,不需要与他人交流。他要知道的全部信息就是输入、输出和供电轨线的位置。然而,在进行一个模拟工程时,需要做的第一件事就是与电路设计者交流。如果不知道必须留出多大的面积用作屏蔽或匹配,或特别地放置方向,亦或是需要特别地配备双信号线以传送差分信号,那么就不能着手布置导线。在开始工作之前有太多的信息需要去了解。即使在已经有了初步的平面布局设想之后,在整个工程从头到尾的设计中仍需要继续与整个设计团队沟通。要不断地与电路设计者交换意见,倾听他们的反响意见,确保选用的方案能使电路到达最优性能。(4)完成进度不同。在数字掩膜设计工程中,芯片的绝大局部电路往往在开始进行芯片幅员工作时已经设计完毕。在模拟掩膜设计中,电路设计往往与单元模块的幅员设计同步进行。因为此时关于最终的电路究竟会是什么样子还有许多不确定因素。设计者将被要求根据设计工程师们的描述,严格按照进度和所要求的芯片尺寸进行工作。

(5)创新要求不同。在数字电路设计中,电路的大局部已经设计过,幅员也已完成过许屡次。与此正好相反,模拟芯片设计的每一局部电路或幅员过去几乎从未设计过,设计者总是在创新,每一个工程都要涉及过去从未有过的问题。(6)约束条件不同。在CMOS数字幅员设计的设计中,对一个新的电路设计图首先要考虑如下问题:标准单元高度、网格大小、水平金属线层次、垂直金属线层次以及其他需要遵守的规那么。如果遵循了这些详细的有关单元高度、网格以及所有的程序规那么,就能成功地完成DRC没有问题的数字芯片。但是在模拟电路中情况就大不一样了,这里几乎没有什么规那么,更关心的将是电路的性能如何,而不是那些为了保证单元能放到一起的过于细小的规那么。

在规那么方面,所有那些在数字掩膜设计中必须服从的规那么在模拟掩膜设计中可以有很多项选择择,可以采用也可以不采用它们中的任何一个。(7)对电路技术理解程度的要求不同。

模拟掩膜设计更关心优化电路性能的问题,所以模拟掩膜设计者比纯数字掩膜设计者需要多知道一点有关电路的技术,应当更了解电路如何工作,更了解电压和电流以及它们相互间的关系,应当知道为什么差分对需要相互匹配,了解有关信号流、降低寄生参数、电流密度、器件方位、布线等需要考虑的问题。2.模拟电路的几个关键问题

一个模拟电路幅员设计者第一次接到设计任务,例如把如图5-46所示的一个CMOS运算放大器电路画成幅员,应当从何处着手呢?需要了解什么、询问哪些问题呢?此时需要与电路设计者交流,以了解以下几个关键问题,这些问题的答案将会对幅员的设计起重要作用。图5-46运算放大器电路首先,要清楚这个电路是做什么用的。电路设计者将答复:这是一个放大器。这样一个简单的答复可能就是所需要的一切。对于模拟幅员设计的新手,可能不明白放大器是什么或不明白它对设计幅员有什么影响。如果是这样,那么就应该继续问:什么是放大器?它的增益、工作频率、带宽为多大?而且了解电路的功能对幅员设计至关重要。电路功能决定了将来如何来处理这样一些问题,如匹配、布局、对称、保护方法、I/O导线的位置等。其次,还需询问这个电路需要多大的电流。得到的答复将影响许多器件的选择、许多金属线尺寸的选择,并在一定程度上影响布置方案。这些都是非常重要的决定。

需要问的第三个重要问题是有哪些匹配要求。电路设计者会答复,这是个两输入器件,VM2和VM3需要匹配的非常好。得到各种匹配相关问题的答复后,幅员设计者就开始从匹配的角度来决定需要做什么,然后就采用需要的各种匹配技术。3.模拟电路幅员中的常用技术

1)匹配

匹配在幅员设计中是非常重要的。一个从匹配角度来看很差的幅员可能会毁掉一个很好的设计。相反,一个优秀的幅员可以大大地提升一个设计。什么时候应当在幅员中运用匹配技术呢?这就需要与电路设计者交流。保证所有的匹配问题都被注意到的最好方法,是在电路图上能看到所有这些匹配的信息。如果电路设计者希望一对晶体管很好地匹配,他应当写在电路图上。如果没有这样做,那他就会冒所设计的电路不能很好工作的风险。然而,即使在设计图上什么也没写,仍然有一些规那么是一个幅员设计者在所有的幅员工作中都可以使用的根本规那么。如果遵守这些规那么,就能自然而然地实现某些合理的匹配。(1)简单匹配。有几个简单的匹配规那么:第一是使器件靠近;第二是注意周围的器件的影响;第三是保持器件的方向一致。如果在所有的幅员设计中都遵守这三条根本规那么,就肯定能得到相当好的匹配。

(2)交叉器件。

①指状交叉:把两组器件相互靠近,方向一致且使它们交叉排列,如图5-47所示。图5-47指状交叉部件的布线②四方交叉:为了使器件到达更好的匹配,把每个器件分为两半,然后把它们成对角放置,如图5-48所示。例如,四方交叉双极型器件的幅员如图5-49所示。图5-48四方交叉的对角布置图5-49四方交叉双极晶体管的幅员③经济型四方交叉:比四方交叉更为简单,且能产生良好的性能。完成这一线性形式的幅员所需的时间较少并能节省空间,器件排列如图5-50所示。图5-50经济型四方交叉的幅员2)噪声问题

噪声在集成电路中可以成为一个很大的问题,它可能毁掉一个芯片,特别是当电路是一个要接收某一很弱信号的非常敏感的电路,而它又位于一个进行着各种计算、控制逻辑和频繁切换的电路旁边的时候。必须特别注意幅员和平面布局,尽可能多地了解如何消减噪声是非常关键的。

(1)衬底接触。如果衬底接触是接地的,那么当噪声企图通过衬底从模块离开时,如图5-51所示,任何噪声电压和电流都很有可能被吸引到衬底。图5-51噪声接地(2)模块合理安排位置。

同一种芯片的两种平面布局如图5-52所示。在左面最初的平面布置中,把安静局部和噪声局部靠在了一起。但是,如果可以的话,采用右面的平面图的布局远比前一种好的多。这一布局技术应当成为一个好的掩膜设计者的日常习惯。时间长了,就会不假思索地自动把噪声电路和安静电路远离放置(如大功率管和基准模块)。图5-52把噪声电路和安静的电路远离放置(3)差分信号。

差分电路是一种用来检测两个同一来源的特殊走线的信号之差的设计技术。两条导线自始至终并排排列,每条传递同样的信息,但信息的状态相反。如果有噪声进入这两条信号线,由于噪声会以同样的幅度同时发生在两条导线上,因此最终两条导线上的信号相减消除了噪声,如图5-53所示。差分逻辑即差分信号设计方法有很强的抗噪声能力。当电路中的噪声问题十分严重时,很多人都会依赖差分系统来解决问题。图5-53两个差分信号的噪声相互抵消(4)去耦供电轨线。

有时噪声是内部固有的,无法防止。所以有人在他们的供电轨线上放上一些大的去耦电容。这些电容的尺寸很大。信号频率越高,就越容易通过电容,如图5-54所示。所以,如果电路模块中有一个很大的去耦电容跨接在两条供电轨线上,那么进入供电轨线上的任何噪声都会首先被吸引到接地线,只有很少的噪声能越过这个电容进入电路。图5-54高频信号通过电容接地 5.3幅员验证

幅员完成之后,就要对其进行验证。Virtuoso中提供Diva和Dracula两种幅员检查及验证的工具。其中前者是基于Xwindow的方式,而后者是基于命令行的方式。验证的整个过程包括:设计规那么检查(DesignRuleCheck,DRC)、电学规那么检查(ElectronicsRuleCheck,ERC)、电路图幅员对照(LayoutVersusSchematic,LVS)以及幅员寄生参数提取(LayoutParameterExtraction,LPE)。幅员编辑要按照一定的设计规那么来进行,也就是要通过DRC和ERC检查。编辑好的幅员通过了设计规那么的检查后,有可能还有错误,这些错误或许并未违反设计规那么,而是可能与实际线路图不一致。幅员中少连了一根铝线这样的小毛病对整个芯片来说都可能是致命的,所以编辑好的幅员还要通过LVS验证。同时,编辑好的幅员通过寄生参数提取程序来提取电路的寄生参数,电路仿真程序可以调用这个数据来进行后模拟。幅员设计规那么检查(DRC)

1.基于Diva的方式

该方式操作比较简单,但效率不高,所以不推荐使用,这里只作简单说明。

其操作步骤如下:

(1)将DRC命令文件放在工作目录中,然后翻开需要做DRC的LayoutView,在弹出的窗口中选Verify→DRC。

(2)在弹出的DRC对话框中单击SetSwitches,在SetSwitches对话框中选择all。(3)单击OK按钮,在DRCRules对话框中填DRC命令文件名。单击DRC对话框中的OK按钮,DRC的结果会在CIW窗口显示。假设有错误,在幅员上也会出现许多对角连线的矩形框。要查看错误种类,单击Verify→Markers→Explain,此时鼠标指针处有一个小方块,选中连线中的其中一条,就会弹出一个窗口,说明错误类型。

(4)修正所有错误,直至DRC完全通过。2.基于Dracula的方式

DraculaDRC是整个验证系统的主要局部,推荐使用该方式。它在幅员几何图形上执行检查,确保幅员数据能够进行生产,并在给定的集成电路工艺技术上得到高成品率。

1)DraculaDRC的特点

(1)丰富的设计规那么支持全方位的检查(间距、包距、宽度、长度、面积和叠合)。

(2)连接规那么定义和强大的选择功能的结合,简化了最复杂集成电路的设计规那么。

(3)操作结果可被传递到进一步处理的后续检查中。2)DraculaDRC操作步骤

(1)在~/home/project/目录下创立verify目录,并在verify目录中分别为DRC和LVS创立目录drc和目录lvs。

(2)准备DRC和LVS命令文件。

[例]上华提供的DRC和LVS文件为csmc06.drc和csmc06.lvs,将它们分别上传至verify中的目录drc和目录lvs中。

(3)准备幅员的GDS文件:CIW→File→Export→StreamOut。[例]选择CIW→File→Export→Streamout,在弹出的窗口中用LibraryBrowser选择xd008[JP2]库中的Inverter(View选择layout),作如图5-55所示的设置(注意将RunDirectory[JP]设置为verify/drc),然后点击OK按钮,导出成功后,会出现如下提示:PIPOSTRMOUT(PID=ipc:1)completedsuccessfully,seelogfile′/PIPO.LOG′formoreDetails图5-55ExportStreamout设置(4)修改DRC的命令文件。

[例]修改DRC的命令文件(如csmcO6.drc)的前几行输入/输出,指明要检查的GDS文件的路径名称:

;--------------------------;…………….INPUTGDS2INDISK=inverter.gds(需修改);…………….ERRORGDS2OUTDISK=out.sf;…………….TOPCELLNAMEPRIMARY=inverter(顶层元件)(需修改);…………….

然后将KEEPDATA=SMART改为KEEPDATA=YES(已经修改):(5)在控制台下,进入目录cd~/project/verify/drc,然后键入PDRACULA(一定要大写),启动命令行界面。

(6)在该界面下,键入/gcsmc06.drc。

(7)如果编译无误,键入/f,退出PDRACULA界面并生成jxrun文件,此即真正用来进行DRC检查的文件。

(8)在控制台下,执行命令/jxrun。(9)检查完毕,在幅员窗口翻开Inverter的Layout,选择Tools→DraculaInteractive,出现DRC菜单项选择项,选择其下的Setup,对检查后得到的数据文件路径进行设置,如图5-56所示。如果有DRC错误,那么跳出几个显示窗口,可以通过它们定位错误。点击ViewDRCError窗口上的FitCurrentError可定位当前错误。RulesLayerWindow显示该错误违反了哪一条设计规那么,可根据该规那么到DesignRule中去查询改正错误的方法。图5-56DRC菜单设置(10)修改完毕,重新输出GDS文件,再次检查,直至无误,点击DRC→Quit退出DRC检查。

注意:xWin32或Tarantella或其他通过PC连接到工作站的用户,在运行Setup,弹出以上窗口之后,请确保DRCOptions→Explain=InCIW,如图5-57所示。图5-57Explain项设置

3.DRC常用命令

(1)命令格式:

Type1:

Cmd[mod]lay1[lay2]condvalue{trapfile}{outputnamelay#{num#}}

Type2:

Cmd[mod]lay1[lay2]sel_condvaluetrapfilewidth:宽度。

length:长度。

area:面积。

plength:一系列连接边缘的长度。

size:尺寸。

enc:包含(内沿到外沿的间距)。

ext:外离(外沿到外沿的间距)。

select:选择。

int:嵌入(内沿到内沿的间距)。

rectchk:矩形检查。

coverage:覆盖。

例:rectchk[r]mt1widthne3lengthgt6;;risormetalrectanglewidthmustbe3andlengthcannotbelongerthan6

coverage:densitycheck例:sizebulkby2.0myarea

coveragemt1lt0.25010boundmyareaerrwin

genrecterrwinxylem2.03.0xygap1.01.2

;;checkmyareamt1densitylessthan20perandwindowsize50,stepsize10

;;generates2.0x3.0rectanglesoverlaperrorarea(3)命令选项(见图5-58):

C,C′,N,N′,P,P′,R,R′,T,O,E,S,L,X,Y,H

C&C′:平行和不平行。

N&N′:不同节点和相同节点。

P&P′:突出和不突出。

R&R′:错压和区边界。

T:接触。

E:包含。

O:重叠。

S:方区。

L:长度。

X&Y:x轴方向和y轴方向。

H:凹口。图5-58各层之间的间距(4)逻辑运算符(见图5-59):

NOT:非。

AND:和。

OR:或。

XOR:异或。图5-59NOT逻辑运算NOT示意图(5)关系运算符(见图5-60):

Outside:外部。

touch:接触。

cut:切割。

overlap:重叠。

inside:内部。

enclose:包含。

hole:开孔。

vertex:顶点。

label[r]:标注。

angle[45]:角度。图5-60关系运算示意图(6)逻辑关系符:

LT:大于。

LE:大于等于。

EQ:等于。

NE:不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论