2022年数字集成电路基本单元与版图----DIVA中寄生元器件提取语句介绍:终版 .pdf

上传人:H****o 文档编号:33370919 上传时间:2022-08-10 格式:PDF 页数:8 大小:345.09KB
返回 下载 相关 举报
2022年数字集成电路基本单元与版图----DIVA中寄生元器件提取语句介绍:终版 .pdf_第1页
第1页 / 共8页
2022年数字集成电路基本单元与版图----DIVA中寄生元器件提取语句介绍:终版 .pdf_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《2022年数字集成电路基本单元与版图----DIVA中寄生元器件提取语句介绍:终版 .pdf》由会员分享,可在线阅读,更多相关《2022年数字集成电路基本单元与版图----DIVA中寄生元器件提取语句介绍:终版 .pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、DIVA 中寄生元器件提取语句介绍DIVA中 关 于 寄 生 元 件 提 取 的 语 句 很 多 , 分 别 是 measureParasitic、multiLevelParasitic、 measureFringe、 calculatParasitic、 saveParasitic、attachParasitic。下面将就它们的用法作一些简单的介绍:在介绍之前, 我们有必要澄清几个概念: 首先,我们为什么要对版图进行寄生元件提取?很简单, 我们都知道, 在电路的版图当中,由于工艺上的或是其他的一些不可避免的因素的影响,会产生一些寄生的元件。比如说:寄生电容、寄生电阻等等。而这些寄生元件又往往

2、会对我们的电路特性带来负面的影响,所以我们得尽量的减少其生成。但就如上面所说的一样,一些寄生元件的产生有其必然性,这就要求我们设计的芯片能够在这些负面的影响下也能体现较好的特性。所以在一块芯片的版图完成之后,我们所要进行的很重要的一步工作就是提取版图中的寄生参数并将其代入电路中进行模拟。这就是我们所说的后模拟 。只有经过后模拟的版图才是最接近实际情况的器件版图。另外,我们知道,在版图验证中LVS 是非常重要的。在我们做完寄生参数的提取工作之后, 下一步要进行的将是带寄生参数的SPICE 模拟。也就是说我们所提取得那些寄生参数将被加入到 SPICE 的网表( netlist)中去。但是,在LVS

3、 中我们却不能将这些寄生元件加入到其网表中,因为这些元件在原始版图中事实上是不存在的。所以, 我们将会得到两个不同的视图( view ) : SPICE view和LVS view。接下来,我们将进入正题。在具体到每一个语句之前,我先介绍一下后面会经常用到的一些测量语句。Area :面积 perimeter:周长 length:长度 bends:凹角(concave corner) corners:凸角( convex corner) angle:任意角(bends corners)calculatParastic语句介绍:这个函数可以在前面measureParasitic语句所导出的值或是c

4、alculatParasitic语 句 所 计 算 出 的 值 的 基 础 上 进 行 进 一 步 的 计 算 。 而 且 , 这 个 语 句 能 突 破 每 个measureParasitic语句只能进行一次测量的局限性,它允许我们对更多的简单测量语句进行组合以形成复杂的寄生参数测量。其语法如下:outValue=calculatParasitic(expressionlimit)outValue:是保存在指定文件中的数值expression:是一些计算符,如:、 log () 、sin () 、cos ()等等。要注意的是在符号和名称之间必须有空格。(这是为了避免混淆,因为我们有像p这样的

5、层次名称)另外,一条calculatParasitic命令中参量的数目应当限制在十条以内,这一点也要注意。还有就是在运算中不能出现不规则的情况,如下例:x=area metal over poly y=area metal over diff caculate x/y 这时如果 y为零,那么这条命令将会终止执行。Limit:范围限制。它所要用到的操作符有:、 、= 、 = 。关键字有:keep和ignore。其范围限制格式有下列三种: low_limit operator keyword high_limit keyword operator low_limit keyword operato

6、r high_limit 例子如下: cap=calculateParasitic(c1 + c2+ c3 + c4 ignore0.1) cap=calculateParasitic(log(c1)*1.3e-6)+(c2*0.054)+1.4 ignore0.1) 第一句表示将c1 c2 c3 c4的值加起来赋给cap ,如果值小于 0.1 就忽略。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - MeasureFringe语

7、句介绍:这个函数一般是在层的边缘按照相应的DRC 语句来进行测量, 他不能测量有覆盖关系的层次。一般用它来描述边缘寄生电容或是侧墙寄生电容。该函数的语法如下:outvalue=measureFringe(layer1layer2calculateprintls “ filename”groudedML Flayerlimit drc_command) outvalue:数值形式,只能为参数(parameter)提取或是寄生参数(parasitic)提取语句来引用。如:calculateParasitic、calculateParameter等等。Layer1:被测量的基本层,必须为connec

8、ted layer Layer2: DRC语句所需的第二层Caculate:关键词 calculate( formula) ,在 formula中长度用 l ,间距用 s表示。其中 formula中使用的运算公式同calculateParasitic中的 expression相同。例如:calculate( l/s) calculate(l/log(s)+2.0) printls:将测量出的 length和spacing只输出至一个名为“filename”的 textfile中。这个文件具有下例的形式:; Node name to number mapping vdd 1 gnd 9 q* 1

9、3 q 15 ;length spacing net1 net2 5.5 1.0 1 13 2.5 0.5 1 13 2.5 0.5 1 15 9.5 1.0 9 15 这个文件包括两个部分,第一部分将名称和节点匹配。第二部分按length、spacing的顺序列出相应节点间的测量值。下面介绍一下 measureFringe函数的执行步骤:1 找到满足 DRC 规则描述的下一对边2 测量其 l 和 s 3 计算边之间的电容4 决定边的 net number 5 将两节点间新算出的电容加到总体上去6 有更多的边,转到第一步7 按limit筛选值注意如果当前文件夹中已经存在有同名文件,将会被覆盖,

10、所以在多次使用printls时,要注意使用不同的文件名。Grounded:将测量出的寄生参量值转换成为两个分离的测量值(nets 到地) 。如果你没有定义 groundnet,系统将会自动赋值为0!. ML Flayer:定义的临时层次,为multiLevelParasitic函数传递消息。Drc_command:与普通的 DRC命令无异Limit:同前所述例 子:fcap=measureFringe(metal calculate(l/s) sep3 parallel opposite) mp=measureFringe(metal poly calculate(sqrt(l+3)/log(

11、 s ) ) ignore0.1 1sep=3 parallel) MeasureParasitic语句介绍 : 这个函数通过测量层次或层次之间的关系来获得寄生参数。然后可以用 saveParasitic命令来保存提取出来的寄生参数。该函数的语法如下:outValue = measureParasitic( operator ( layer1 function layer2.)coeffapplication grounded polarizedlimit ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -

12、 - - - - - 第 2 页,共 8 页 - - - - - - - - - outValue:表示的是提取出来的数据值保存在那里,这个值只能由相应的寄生参数提取语句如 calculateParasitic和 saveParasitic来访问使用。Operator: 操 作 符, 包含area(面 积 , 可以 使用 关 系操 作符 如over 、 not_over等)perimeter(周长) length、 bends_all(所有的bends ) 、 bends_full(大于 45 度的 bends ) 、 bends_parts(小于等于45 度的 bends ) 、 corne

13、rs_all(所有的 corners) 、 corners_full(大于等于90 度的 corners) 、 corners_parts(小于 90 度的 corners) 、 angles_all(所有的 bends和 corners) 、 angles_full(大于等于 90 地 angles) 、 angles_parts(小于90 度的 angles) 、 fig_count(计算inlayer2为 inlayer1所包含 的图形 ) 。如下图例:Layer1:表示的是要测量的层次,一般要求是连接层(connected layer) 。Function:表示的是要测量的层次之间的关

14、系。如butting、 coincident, over, not_over, outside、 inside、 enclosing等,其中除去over 、not_over外的其余的 functions所操作都是边界(edge)。Layout2:表示的是要测量的第二个层次。Coeff:系数,用于转换单位。如:将平方微米(电容)的单位转换成法。Application:定义测量如何进行,有几种方法。填figure表示的是,根据图形提取数据,然后用attachParasitic命令把数据添加到原有的器件上。填two_net表示的是,根据定义的两个层次(layer1、layer2)产生一个二端口(两个

15、节点)的寄生器件。在填 two_net时有几点需要注意的地方:1 如果第一节点和第二节点相同,则不进行测量2 如 果 没有 指 定第 二 层或 是所 有 的后 续层 次 前面 的fuction是not_over或 是outside。则系统默认得第二节点将是groundNet或是 0! (没有指定groundNet) 。3 采用 0!作标志的原因是:0 作为 net number在一般的extraction中不会出现,所以它不会同其它的net number冲突。而!则应用的是schematic editor中指定 globel net的方法。4 有相同 net number的 nets的测量在同

16、一个measureParasitic命令中将会被合并。填 one_net表示的是第一节点同groundNet(0! ) 间的测量。填 three_net 将同 two_net一样选择节点。 它所要选择的第三个节点的号码源于前缀不是not_over或 outside的第三层,但如果第三节点与第一节点相同的话,测量将被忽略。下面举个例子,如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 8 页 - - - - - - - - - 如果你所要提取得是A 和 B 的公共面积

17、到地所生成的寄生电容,你可以这样表示:A over background over B,然后使用two_net application。但是,如果出现这么一种情况,A 和 B 属于同一个net ,那么在使用two_net语句时,就会得到一个我们并不想得到的寄生电容。 可是如果换作使用three_net语句,那么这个我们并不欢迎的电容将并不会被系统所考虑。Grounded:表示产生的寄生器件分别是在layout1, layout2和地线之间。注意,由于one_net同 grouded的意义相同,它们是不能同时使用的。Polarized:表示的是有极性的寄生器件,从layout1到 layout2

18、, 和反过来是不一样的,如二极管。Limit:同前。例: cap=measureParasitic( area ( poly over mental ) 0.03 two_net ) 表示得到 poly和 mental这两层之间重叠的面积,再乘一个系数。 得到的是一个两端的器件。diode=measureParasitic( area ( ndiff over pbase not_over ntub ) two_net polarized )表示是不在ntub上,在 pbase上的面积。得到的是一个两端有极性的器件。MultiLevelParasitic语句介绍:这个函数通过测量组合层次图形的

19、面积或边长来生成寄生电容。它可以控制层的优先级(与measureParasitic不同),其产生的电容的终端必须是连接层或是源自连接层。该函数的语法如下:outvalue=multiLevelParasitic(layers(layer1 layer2 )cap(layerA layerB c1 c2 c3c4 shield(layers c5) fringe(layerAB layerF vertical(.s.) groundedlimit outvalue:同前。Layers( layer1 layer2 . layerN) :一次最多16 层,还包含fringe中指定的特殊层次,这些层

20、次的列举顺序指明了优先级。列举的第一项被认为是版图中的lowest layer。在这个层次列表中至少得有两个层次。系统在下述情况满足的条件下生成电容:1 两层有重叠2 两层不属于同一个electrical net 3 两层间没有别的层次的图形存在如下图:layer1和 layer4间的电容( A)是这两层相重叠的面积减去layer2、layer3插入其间的部分。相当于语句:layer1 and layer4 andNot layer2 andNot layer3 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

21、- - - - - - 第 4 页,共 8 页 - - - - - - - - - cap: 它有下面的形式:cap(layerA layerB coeff1 coeff2 coeff3coeff4shield()fringe())layerA和 layerB在前面的层次列表中必须列出。Coeff任旧起到单位转换的作用。不需要的 coeff可设为 zero或是 nil。LayA 和 layB在 cap 语句中的顺序是无关紧要的,我们一般习惯于保持层次列表中的顺序。Coeff1: layer1和 layer2间的转换系数。无论所测面积是如何形成的。如下图:coeff2和 coeff3:前一系数用

22、于layer1的边界与layer2形成的电容。 后一系数用于layer2边界与 layer1形成的电容,如图示:如果 coeff3缺省而又没有注明nil或是 zero ,系统赋予其coeff2的值。Coeff4: layer1的边界和layer2的边界组成的电容。如图示:shield:用于调整层间的电容(当两层间有其它层次时),如下图:由于两层间有间隔层,所以c1 的值比 layer1和 layer2间 overlap所带来的电容值要小。这个效果可以通过给shield赋上一个负的系数值来达到。我们所提供的系数必须对各种寄生电容给予充分的考虑。如A 图中 c2+c4或 c3+c5 。其格式为:

23、shield( layer coeff) 。如下图给出了各种系数的一个图示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 8 页 - - - - - - - - - fringe: 语 法 格 式 为 : fringe( caplayer Mllayer vertical( .s.)lateral(.s.))Caplayer:cap 中定义的layer1或 layer2。Mllayer:由measureFringe命 令 产 生 的 伪 层 次 , 用 于 在measu

24、reFringe和multiLevelParasitic这两个函数间传递消息。vertical:通过修改这个系数来补偿周边寄生电容对垂直寄生电容产生的影响。Lateral:通过修改这个系数来补偿垂直寄生电容对周边寄生电容产生的影响。下面有几个图例:其中 c 代表的就是垂直寄生电容、S 代表的是周边寄生电容。事实上 vertical和 lateral都是作为调整参数出现的,它们之间是互动的。下面有些特殊情况,如图:如果两图形周边间距为零,将不会有任何vertical或是 lateral的调整。图A 中在零间距地边缘电容(fringe capacitor)和垂直边界电容(vertical edge

25、 capacitor)间没有任何调整关系。图B 中,中间一层是作为shield layer出现的,所以也没有任何垂直边界电容或是0 间距边缘电容需要调整。下面是两个例子:1Cap (metal1 diffusion 0.74 0.12 0.23 0.14 shield(poly 0.05)fringe(metal1 Fmetal vertical (-0.15/s) .coeff1=0.74 .coeff2=0.12 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 8 页

26、 - - - - - - - - - .coeff3=0.23 .coeff4=0.14 .poly层是 metal1和 diffusion间的 shield层,具有电容调整系数0.05 .Fmetal层在前面measureFringe语句中已经定义. 所有的 metal1的边界电容系数将有一个0.15/s的调整, 其中 s 是 measureFringe中定义的图形周边距离。2Cap=multiLevelParasitic(layers(diff poly metal) cap(diff poly 0.35 nil) cap(poly metal nil 0.13) ignore属性名数,则

27、剩余值将被加入到第一属性中,反之,则多余属性名不用。如:” source_cap” “ drain_cap”3 ( “ source_cap” “ S” ) (“ drain_cap” “ D” ) device_layer: 在extactmos或 是extractDevice中 定 义 的device recognition layer。同样可以是使用像geomInside或是 geomGetTexted这类命令从device recognition layer中 选 出 的 部 分 , 但 其 属 性 值 仍 将 赋 给device recognition layer。Attach_la

28、yer:括在括号中的层次列表。是与device_layer相关的层次。其关系可能是 lapping、 touching、nesting。Shared :能让一个图形参数的测量值根据它所附属的device的数目来均分。没有这个参数,测量值将赋给每一个device。例:1 AttachParasitic(sdarea “ sdcap ” gate)将 s、 d 的面积作为单一电容附加到器件上2.attachParasitic(sdarea “ scap ” “ dcap ” gate shared) 将 s、 d 的面积分开作为电容附加到器件上3Attachparasitic( sdarea (“

29、 scap ” “ s” ) (“ dcap ” “ D” ) gate shared)带有终端的定义4 AttachParasitic(coll_area “ coll_cap” npn tub) 通过 npn 的集电极与tub的关系确定寄生参数。SaveParasitic语句介绍:将测量值作为寄生器件保存到extracted view中,在 view中相应位置会产生相应器件,而这些测量值将作为属性保存。saveParasitic( measurement terminal1 terminal2 propname model ) measurement: 可以是一个列表。如果有多个值的文件被

30、定义,将会产生一个拥有多重属性的寄生元件。Terminal1, terminal2:表示的是器件的端口,如果上面measureParasitic中选上了polarized,那么要注意端口的一一对应。Propname :属性名称,用双引号引起来。如电容中的c表示的是容值。”c” 。Model :表示寄生器件参数的模型,也用双引号引起来。如”pcapacitor”例: saveParasitic( cap PLUS MINUS c pcapacitor ) 这一条语句表示把cap 这个值存成 pcapacitor模型,数据存在c参数中,表示寄生的电容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 8 页 - - - - - - - - - 值。saveParasitic( area ANODE CATHODE a pdiode ) 这一条语句表示把area 这个值存成 pdiode模型,数据存在a参数中,表示寄生二极管的结面积。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 8 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁