650 likes | 1.79k Views
IC LAYOUT 设计基础. ELLA WU , 2008.1. 目录. LAYOUT What , Why and When LAYOUT 工具的环境设置 Virtuso 使用步骤介绍 Virtuso 快捷键介绍及常用操作 常见器件简介 层次的介绍 Design Rule LAYOUT 技巧浅谈 DRC , LVS , PEX GDSII 的导出 几个简单的例子. 1.LAYOUT What , Why and When. 什么是版图?
E N D
IC LAYOUT 设计基础 ELLA WU,2008.1
目录 • LAYOUT What,Why and When • LAYOUT 工具的环境设置 • Virtuso 使用步骤介绍 • Virtuso 快捷键介绍及常用操作 • 常见器件简介 • 层次的介绍 • Design Rule • LAYOUT 技巧浅谈 • DRC,LVS,PEX • GDSII 的导出 • 几个简单的例子
1.LAYOUT What,Why and When 什么是版图? 版图是指在半导体工艺制造过程之前,将工艺进程中的各个步骤所需要用到的掩膜板形状用层次的概念反映出来的一种图形
为什么要用到版图? 工艺生产工厂无法直接从电路设计图看出应该怎样制造芯片。版图是电路设计和工艺生产之间的一种转换,它将电路“翻译”成工厂可以看得懂的符号,以便生产出设计者所需要的芯片。
版图设计在什么时候? • IC设计的流程: 系统设计==》电路设计==》版图设计==》工艺生产==》测试
LAYOUT 工具的环境设置 • LAYOUT 使用Candence 下的Virtuso工具 其环境设置主要有以下几个步骤: 1.创建工作目录 2.拷贝.cdsinit 到根目录下 3.拷贝 techfile.tf 以及display.drf文件到工作目录 4.配置工艺库路径
1.创建工作目录 创建工具的启动目录,即工作目录 [例]:mkdir project↙
2.将(.cdsinit)拷贝到根目录 • 执行命令instdir,得到安装目录 • .cdsinit文件在安装目录下的cdsuser中,将其拷贝到自己的根目录下 cd 安装目录 cp ./cdsuser/.cdsinit ~/ 这样,版图中可以使用快捷键
3.拷贝techfile.tf 及display.drf文件 • 拷贝techfile.tf 及display.drf文件到根目录 techfile.tf 文件:记录层次信息等的工艺文件 Display.drf文件:记录显示信息的文件
配置工艺库路径: • 在Library Path Editor中指定工艺库路径。该步的操作结果将保存到工作目录下的cds.lib文件中。 『注意1』:所有的库或其他任何一个设计目录要被所启动的CIW所使用,都必须使用前先在工作目录下的cds.lib文件作定义,指明其引用名称(在cadence环境中的标识名)及绝对路径。 『注意2』为了能使用Cadence自带的一些库(如画电路图时的Basic symbols),需要在cds.lib文件的开头部分添加 “INCLUDE <工具IC的安装目录>/share/cdssetup/cds.lib” . 在命令行中输入instdir可查看工具IC的可执行程序所在目录。[例]在线路组ic_linux上命令行模式输入instdir可得到:/usr/cadence/ic5033/tools.lnx86/dfII,则工具IC的安装目录为/usr/cadence/ic5033/,需要添加的内容为”INCLUDE /usr/cadence/ic5033/share/cdssetup/cds.lib”
3. Virtuso 使用步骤介绍 • 进入LINIX,进入自己的用户 • 启动Candence • 建立新的设计库
1.进入LINIX 远程登陆的方法有很多,比如利用Exceed,Xmanager, VNC或SSH Secure Shell Client等远程终端方法登录
2.启动Candence 右键—〉Tools-〉Terminal
进入工作目录,用icfb&启动Candence. 例:cd project icfb&
在“Library Manager ”窗口,File—〉New—〉Library/Cell View建立新的库和单元
在Cell Name 里给自己将要建立的版图单元命名,在tool 里选择“VIRTUOSO”
4.Virtuso快捷键及常用操作 • f:全景图 • ctrl+z:放大 • shift+z:缩小 • shift+f:详细版图(非symbol) • u:undo • w:上一界面 • i:调用器件 • q:看属性 • r:画矩形 • p:固定长度的可折线 • l:lable 标注端口、电源、地等。所标识的金属层,用该层TEXT层标识。如,M6层金属则选择M6TEXT层。 • s:拉伸收缩
Shift+C:把线断开(注意:先选中线,再操作)Shift+C:把线断开(注意:先选中线,再操作) • Shift+M: merge(同上,先选中线) • k:标尺 • shift+k:取消标尺 • 器件旋转:q-》选rotate度数-》Apply • 对于已选器件:“M“ 左键 右键旋转 • g:格点 鼠标在各格点移动 一般不用 如果取消,则再按一次“g” • shift+x: 进入调用器件的下层 • shift+b:返回上层 • F3:在选择了操作命令后,按F3可以显示旋转,宽度调整等被操作器件特性。该键很有用。 • Undo默认为一步。若要增加次数,在ICFB窗口的OPTIONS里选择USER PREFERENCES,改变undo次数。
常用操作: 左边的窗口为“LSW”窗口。 AV:all view NV:no view AS:all select NS:none select (在连线时,可以先选NV,所有层次都看不见,再选中需要连线的层次, 则版图上只显示该层,方便连线。 需要修改时,可以选NS,再选择需要修改的层次,方便改动。按右键选择 活动的层次。) 下面为各层。可自己修改,添加删除。
常见操作: • 打散单元:EDIT->HIERARCHY->FLATTEN->FLATTEN PCELLS • 完成版图后标端口:CREAT->PINS FROM LABLES • DRC以后找错误:VERITY->MARKERS->FIND • S操作中,先按“s”,再选择需要strentch的部分,再拉伸。 • Shift+c操作中,需要先选中需要CUT的线条。 • 在做GUARDRING里面,可以选择NDIFF_M1,选择一定的row和coloum,注意此时选择其中的”CONTACT“的行和列,这样就可以直接构成guarding。
5.常见器件: • MOS器件:
6.层次的介绍 • LAYOUT中需要设计各个层次。前面已经说过,版图是指在半导体工艺制造过程之前,将工艺进程中的各个步骤所需要用到的掩膜板形状用层次的概念反映出来的一种图形。那么,才版图中究竟有多少层次?最常用的一些层次是什么?
一般的工艺中,涉及的层次通常上三位数,全部了解这些层次看起来有些恐怖。但是,不要慌张,我们实际上需要了解的层次并没那么多。一般的工艺中,涉及的层次通常上三位数,全部了解这些层次看起来有些恐怖。但是,不要慌张,我们实际上需要了解的层次并没那么多。 • 比较重要的一些层次: • DIFF层:diffusion,和PPLUS,NPLUS一起使用组成P-DIFF,N-DIFF层,表示P+,N+ • PPLUS,NPLUS层 • NWELL层:N阱,不仅用在制造P型器件,常在隔离的时候也看到它 • POLY层:没有POLY就没有MOS管。栅的层次。也可做互连线。 • METAL层:金属层次。器件之间的连接必须依靠它们 • CONTACT,VIA层:POLY和DIFF和M1的连接用CONTACT,金属和金属之间的连接用VIA
Design Rule: 设计规则包含的主要内容: • 最小延伸:主要指多晶硅必须伸出有源区 • 最小宽度:在线画好后,添加CONTACT与VIA等时,可能会因为位置摆放问题导致最小线宽不符合要求。 • 最小间距:不仅要注意各层自己的间距,如METEL1与METEL1连线间间距,还要注意不同层之间间距符合设计规则。 • 最小包围:由于要满足内层的最小宽度以及外层与内层的最小包围,因此在连接部分等处要求内层材料比原先宽度增加一些。
心得: 每个工艺的设计规则很多,不可能每换一个工艺就将新的工艺全部背出来。应该了解最重要的规则,同时学会查找设计规则,特别是当DRC告诉你有错的时候。 下面,就让我们来: 1.了解一下最重要的一些你需要记住的规则 2.学会查找设计规则
常见设计规则: • 1.各层金属之间的距离和金属本身的最小距离。 • 2.各VIA和CONTACT的大小,包络尺寸,间距等 • 3.和NWELL,DIFF相关的一些规则
看懂设计规则文件: 先看一眼目录:你可以轻松的找到你想知道的层次的设计规则。如:N-WELL RULE,在13页;Poly Rule 在20页;Metal2 Rule,在38页。
然后,让我们翻到想找的那一页:如,Metal2 rule 先看看图,很容易看到,在 金属的宽度,间距,包围等 属性上,都有一些符号,如 M2和M2之间的距离为“B”, 再去查看上面的文字: 有B的一行: M2.S.1:Minimum space Between two M2 region B 0.40 因此,金属层2之间的最小 间距是0.4UM。 当你做DRC的时候发现有报错 却不知道到底错在哪里,请 记下报错的层次,如M2.W.1, 再返回到设计规则文件中来 找到它。
8.Layout 技巧浅谈 • 布局布线 • 电路寄生 • 噪声问题 • 匹配和对称 • 敏感线处理 • ELLA的一些心得
布局布线: • 版图的布局: 版图的布局,是需要在真正着手使用快捷键之前好好考虑的问题。它涉及到以下主要方面: 1.整个芯片信号流动的方向。 如果我们的系统是A-》B-》C-》D 那么以下的布局,你应该会知道哪个更好: A C B D A B C D
2.根据IO口的分配。 如果输入口放在左边,那么显然输入模块应该放在那附近而不要倔强的躲在它处 主要的原则就是:走线要短 3.根据噪声来处理。 将噪声比较大的模块和其他模块放远一点,特别是那些需要安静的模块。别吵着了他们。
器件布局: • 器件的布局重要考虑到走线要短,对称性问题的考虑以及敏感线的考虑。某些问题在后面的内容中会有详细的介绍。
布线: 1.电源线 2.地线 3.多层金属版图的互连
布局布线的心得: • 布局布线是一个全局问题。在画较大的电路时候是很重要的。首先确定各模块的位置,在确定位置的时候需要考虑的问题主要有:各输入输出之间的连线最短,最方便;各模块接出去连PAD的各端口方便;高频线距离尽量短;输入输出之间相隔比较远等。这些问题需要在着手画各模块之前先有个安排。在画好各模块后摆放时会做调整,但大局不变。 • 连线一般的规则是单数层金属和双数层金属垂直,比如一三五层连水平;二四六层连垂直。但这样的主要目的是各层能方便走线,排得密集。所以也不是死规则,在布线较稀疏的情况下可以做适量变通。 • 在布线时最重要的问题是考虑电路的各支路电流问题。首先要明确各支路电路的峰值,这样就能确定金属线的最小宽度。确保整条支路不会被电流过大而烧断。当然连线也不能太宽,这样的话电容会大。 • 电路中如果画到电流源可以离得较远,因为电流源理想的时候电阻无穷大,这就意味着电流源连出来的线可以长一些,因为不需考虑连线太长电阻太大的问题。
电路的寄生问题 我们设计的版图,不管多么小心,总会有寄生出现。所以我们的任务不是消灭它,而是减小它,尽量优化我们的版图。所谓知己知彼方能百战百胜,要想学会减小寄生,首先得了解寄生。寄生有哪些种类?我们如何估算寄生?如何折中考虑来设计版图?
寄生的种类及产生原因 • 寄生电阻 任何有阻值的材料都会产生寄生电阻。哪怕是可以作为导体的金属。虽然方块阻值(每方材料的阻值)很小,但是较长的金属线就能产生足以影响电路的电阻。 • 寄生电容 金属和金属层之间构成了电容,金属和衬底之间构成了电容。电容和产生电容材料的面积成正比。 • 寄生电感 电感本身就是用金属做成的。因此金属线必然会产生寄生电感。
电路中的折中考虑: 不管是电路设计,还是版图设计,我们都需要考虑折中。在寄生问题上这是个很好的例子:过细的金属线必然造成大的寄生电阻,但是把金属线拉粗以后面积增大,因此就需要考虑寄生电容的问题了。虽然计算是一个方法,但实际上,后仿返回数据的经验对版图设计者来说更为重要