tomchenri的个人空间 https://blog.eetop.cn/1768370 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

易忘知识点总结,以便以后整体查阅

热度 107已有 9771 次阅读| 2022-8-12 19:27 |个人分类:版图经验|系统分类:芯片设计

1、电迁移效应是指当传输电流过大时,电子碰撞金属原子,导致原子移位而使金属断线。

2、寄生电阻会使电压产生漂移,导致额外噪声的产生; 寄生电容耦合会使信号之间互相干扰。

3、使得衬底电位会产生抖动偏差,这称为衬底噪声。

4、差分对主要使VGS匹配,而电流镜主要使ID匹配。

5、匹配器件要远离功率器件摆放,功耗大于50mw的就属于功率器件。

6、数字电路和模拟电路的gnd要分开。

7、 BindKey.il加载优先顺序:.cdsinit 文件中使用加载命令>工作目录>home目录>安装目录

8、天线比率(AR)是现在计算是否产生天线效应的标注:AR=导体面积/栅的面积。天线效应的产生几率跟天线比率成正比,也就是说AR的值越小就越不容易产生天线效应,尽量少用poly连线。反偏二极管能够泄放的原因在于,相比MOS管栅极与沟道间的薄氧化层击穿电压,反偏二极管的击穿电压更低,击穿后电子从二极管完成泄放,自然不会影响MOS管。

9、find . -name "*.cdslck" -exec rm -f {} \ 

10、常见LVS cmd file设置:

        ①LVS REPORT MAXIMUM 1000//ALL 报告结果的最大值,1000(数字可以改)或者全报。这句在RVE结果中只显示1000条错误;

        ②LVS POWER NAME “?VDD?”“?vdd?” “AVDD” 定义cell的power name,可以用通配符“?”来代替其他字符,比如VDD_IO,也会认为是power,也可以精确匹配,如”AVDD”,需要完全与AVDD一致的字符才会被认为是power。这句在RVE结果的ERC中会显示没有电源相关的错误,可以wavie;

        ③VIRTUAL CONNECT COLON YES/NO  是否通过冒号进行虚拟连接,比如cell内部的GND没有连接在一起,我们就可以通过冒号进行虚拟连接,将每一个GND的lable打成“GND:”,calibre就认为凡是打这个lable的net都是连接在一起的,在做顶层的LVS的时候这个选项必须选为“NO”;

        ④LVS compare case YES/NO  是否区分大小写,如果区分选择“YES”的同时还要增加2个语句: LAYOUT CASE YES 和SOURCE CASE YES;    

        ⑤LVS FILTER UNUSED OPTION B D E O 过滤符合条件的器件,例如三端接地的mos等等每个字母代表不同的条件,具体的可以在pdf里查看。

        ⑥TEXT LAYER 131 ATTACH 131 metal1 将层号为131的layer定义为一个可以提取net信息的text层,并且将这层attach到metal1上,就是使用这层写的label可以提取attach的metal1信息。比如,我用131层写一个label“A”在metal上,那么在LVS中这条metal1就被认为是net“A”。上面的语句也可以分成2行来写:TEXTLAYER 131;ATTACH131 METAL1。

        ⑦PORT LAYER TEXT 131指将131层写的label定义为port,凡是使用131层打的label都被认为是port。

        ⑧TRACK PROPERTY MN ( nch ) L L 1 是指将一个model name为nch的NMOS的L 的比较精度设置为1%,即layout和source的比较阈度为-1%~+1%,如果超过了这个范围就会报property mismatch的错误。

11、电流源的输出支路加上cascode管,可以增大输出电阻,从而减小沟道长度调制效应对复刻电流精度的影响。(沟道长度调制效应:由于MOS管漏极和源极之间的电压差增大,实际反型沟道长度会逐渐减小)

12、有源器件(需要外加电源才能工作):mosfet,diode,bipolar;无源器件(无需外加电源即可显示其工作特性):电阻,电容,电感 

13、模拟及混合信号类EDA软件:

①电路及版图设计工具:Virtuoso (Cadence);②版图物理验证工具:Calibre(Mentor),老工艺还能用Assura(Cadence),dracura(Cadence更老,十几年前刚毕业那会儿用过);③版图参数提取工具:Star-RC(synopsys),Calibre XRC(Mentor),QRC(Cadence);④电路仿真工具:Hspice(Synopsys) ,Spectre(Cadence), ALPS;

14、Mark net突然点不亮了,在启动目录下找到隐藏文件.candence/dfll 里面有个 markNet文件夹,删掉就好。

15、用语句打印出层密度?//在DRC的rule file 里面添加语句,即可输出MTT.density文件里面显示芯片坐标以及密度,用相应的层次名称替换MTT,即可打印各个需要层次的密度

        MTT.density{@output MTT density

            DENSITY MTT_drc<=1.0 print MTT density

        }

16、hcell主要用于LVS做层次化检查。run lvs的时候就不查这个block的内部连接关系了,把它当黑盒处理,只要保证和Port相关的没有问题就好了。Xcell主要用于后仿。主要用于提取门级后仿寄生。xcell指定pex不做寄生抽取的cell,加入xcell列表中的pcell器件(主要和rf器件相关)或者模块则不会再提取自己内部的寄生。

17、三家EDA 寄生参数抽取工具,分别是StarRC(synopsys), XRC(Mentor),QRC(Cadence),其中QRC现在有个升级版本Quantus,但是由于calibre在DRC 和LVS方面太强,所以一般都会提供calibre LVS + StarRC 或者QRC的flow,都是用calibre LVS 的database,那model之间能否互相转换呢?答案是肯定的。

以“StarRC 转XRC flow”为例:

starRC rule 都会提供如下的文件:1、calibre LVS rule;2 、itf file(option);3、query;4、xxx.nxtgrd;5、xxx.layermap。

这几个文件的作用如下:

1、lvs 文件是在run RC前需要给StarRC 产生的database,这里一般会产生一个CCI(Calibre Connectivity interface)的database,所以一般也叫CCI flow。QRC现在有个升级版本Quantus,QCI 为(Quantus Connectivity Interface)

2、第二个itf 文件,是StarRC的工艺描述文件,描述需要抽RC的layer,以及介质层,主要是各种工艺参数,这个有可能fab不给你,那后面如果要转model 就需要多一步。这个工艺描述文件在starRC里就是这个itf文件,而在XRC里叫mipt 文件。

3/4/5、后面三个是run StarRC的必要文件,其中nxtgrd 就是用itf 产生的model文件,类似于calibre xrc 中的rules.R 和 rules.C.

重点:把starRC 转成calibreXRC主要过程就是把这个nxtgrd 转成rules.R 和 rules.C

Nxtgrd 的产生过程如下:grdgenxo itf_file

rules.R 和rules.C的产生过程如下:xcalibrate -exec mipt.file

所以StarRC 转XRC的主要过程就是itf 转mipt,这个主要是用calibre提供的工具,命令如下:xcalibrate -itf2mipt2 itf_file。会在执行的folder下产生一个out.mipt

总结:

StarRC 转XRC其实只需要两步:

Step1、itf 转mipt,xcalibrate -itf2mipt2 itf_file

step2、产生rules.R 和rules.C,xcalibrate -exec -turbo 64 mipt.file

这里加了turbo 主要是这个过程非常漫长,越是先进节点越慢,主要是mipt 太复杂,需要进行大量的仿真,这里根据实际情况用multi cpu来run,64 是total cpu个数。

如果fab没有提供itf 文件就需要用nxtgrd来转一个,具体命令如下:grdgenxo -nxtgrd2itf -i nxtgrd_file -o itf_file

18、寄生电容一般可分为本征(intrinsic)和耦合(coupled)两种 :

本征电容是指,导电层到衬底的电容,有intrinsic plate和intrinsic fringe这两种类型; 

耦合电容是指,导电层在不同网线之间的电容 ,有nearbody、crossover fringe和crossover plate这三种类型。

网表提取的两种脚本命令方法:

① https://max.book118.com/html/2017/0630/119296245.shtm

Calibre XRC一般会生成三个网表文件:design.***、design.***.pex 和 design. ***. topcell. pxi。

design. ***文件中是电路的实际逻辑网表信息,并包含后两个网表;

design. ***. pex文件中是寄生参数网表信息,实际逻辑上的每个节点都会生成一个单元,该单元中包含从该节点上提取的RC参数

design. ***. topcell. pxi文件中是网线连接信息和各网线间的寄生耦合电容模型,它把每个节点所衍生的新节点连接到逻辑电路中,它包含了design. ***. pex文件。

如果只提取寄生电容模型,则不会衍生新节点,所以不会产生*. pex文件;

寄生本征电容直接在输出网表文件中给出,寄生耦合电容在*. pxi文件中给出,并被输出网表文件调用。

② https://docs.sw.siemens.com/en-US/product/862138555/doc/DC202002092.docs.calbr_interactive_user.en_us/html/id2c0164f4-deb0-4932-85d1-29c6f1e91cfb

19、查找skill函数在哪个路径:①在.cdsinit中添加如下sstatus debugMode t;②在ciw中,输入whereIs(procedure_name)

20、进行版图LVS验证时出现“missing instance”错误,出现instance未定义问题,spi 网表需要 include PDK 目录里面的一个文件,TSMC叫source.added,SMIC叫empty_subckt.sp里面定义的就是基本器件(PMOS、NMOS、电阻、电容),其实就是个带端口的空网表include进网表即可。

方法一:

1)从schematic或者layout的菜单栏中点击Calibre->Setup->Netlist Export Setup;
2)在弹出的窗口中Include File一栏,填入empty.subckt.sp的正确地址;
3)点击OK。

方法二:

配置文件.cdsinit中加入下面语句

cdlOutKeys=list(nil 

'incFILE "路径/empty_subckt.sp";
)

或者

when('boundp('cdlOutKeys) cdlOutKeys = list(nil))

cdlOutKeys->incFILE = "路径/subckt.cdl"

方法三:

只要在calibre 做lvs的界面中,找到inputs这栏中Netlist 下Spices Files中 xx.src.net文件,在这个文件中添加如下语句:.INCLUDE 路径/source.added就可以。

如果没有source.added这个文件,就自己写到*.src.net文件里,格式如下
.SUBCKT MOSCAP_RF  PLUS MINUS
.ENDS

.SUBCKT hrpolyu3 PLUS MINUS B
.ENDS
写到netlist就好了

方法四:

calibre lvs窗口,点击inputs->在Netlist的Spice Files中添加文件,这里可选填***.cdl,empty_subckt.sp,..多个文件,点add,就行。然后点OK,我添加了LVS中的empty_subckt.sp。

21、在layout/schematic菜单栏上添加菜单选项,skill脚本:E:/IC资料整理/公众号资料/模拟IC毛客儿/在layout_schematic view中添加menu.mhtml

22、

① 不加载当前的cdsinit启动virtuoso:virtuoso -nocdsinit

② unload cdsenv file也比较简单,在ternimal输入:setenv CDS_LOAD_ENV false。如需要指定load cdsenv file的位置,也可以通过这个env实现。

23、创建多层的Guard Ring,特别详细:E:\IC资料整理\公众号资料\模拟IC毛客儿\创建多层的Guard Ring.mhtml

24、Gate level 与Transistor level的区别:

综述:transistor level 是把layout全部打散后进行寄生参数提取,精度高,提取会更真实些,但数据量大;gate level是将xcell中的器件当成理想器件,不再进行寄生参数提取。

①一般来说,Gate level抽取方式作为寄生抽取的默认设置。Gate level一定要与xcell搭配使用,加了xcell会将电容识别为pcell,不会重复抽取电容的金属间的寄生电容,也不会抽取两个电容之间金属的寄生电容。

②Transistor level精度高用这个,它是把电容打散,因此既会抽取电容本身的电容,还会抽取电容打散的金属间的寄生电容,还会抽取两个电容之间金属的寄生电容,对于Transistor level重复提取的解决办法就是在pex进行语句输入,屏蔽掉MOM电容。语句添加方法如下:

PEX IGNORE CAPACITANCE DEVICE metal1 metal2 metal3 MOMDMY_2T
在run pex时,在PEX Options的选项Include的第二个空白的地方加上上面的命令,同时勾上第二个空白上面的选项Include Rule Statements
试试这个。

参考链接:

寄生参数提取的transistor level, cell level, full hierarchical有何不同 (baidu.com)

如何避免MOM/MIM的寄生电容被重复提取? (baidu.com).

25、实现在Library Manager界面双击view以只读方式打开:这个可能是很多同学都希望实现的功能,在.cdsenv文件中按照以下方式即可实现:

cdsLibManager.main  dblClickEditCellView  boolean  nil

26、shell下运行virtuoso的skill脚本,就是 nogui+replay,具体如下:

virtuoso -nograph -replay xxxx.il -log xxxx.log
27、

①浅槽隔离(Shallow Trench Isolation)效应:利用高度各向异性反应离子刻蚀在表面切出了一个几乎垂直的凹槽,该凹槽的侧壁被氧化,然后淀积多晶硅填满凹槽的剩余部分。在较为先进的CMOS工艺制成中,通常用STI的方法来完成有源器件的隔离。在substrate挖出浅槽时会产生压力的问题,所以对于相同长宽两个MOS管,由于对应的扩散区长度的不同而造成器件性能的不同,特别是对于电流Idsat和阈值电压Vth有重要影响。这种压力对于PMOS管和NMOS管的影响正好相反。PMOS管:电流随SA(SB)的增大而变小;NMOS管:电流随SA(SB)的增大而增大。提高MOS管源、漏两端的可共用性,这样可以降低STI效应。在有限的空间下,多加一些虚拟器件(Dummy device),可以增大MOS管源、漏两端的面积,从而降低STI效应。

②阱邻近效应(Well Proximity Effect):在离子注入制造工艺时,原子从掩模板的边沿开始扩散,在阱边附近的地方硅片表面变得密集,结果就是,阱表面浓度会随着距离掩模板的边沿的远近而有所不同,因此整个阱的掺杂浓度是不均匀的,这种不均匀造成MOS管阈值电压的不同,还有其它的电性能也有所不同,它会随着距离阱边距离的不同而不同。对于同一个器件,固定的长宽,固定的源漏区(SA、SB)大小,0.13um工艺下,测试3.3V NMOS管的Vth随SC的距离的变化:当NMOS管距离阱边比较近的时候,Vth会增大约50mV。Vth也会随着源漏端的方向而有所不同,达到约有10 mV的偏差。当NMOS管距离阱边比较远的时候,如SC的距离大于3um,Vth基本上就没有多少的偏差。在版图布局规划阶段,优化阱的布局以减小阱的个数。注意关键器件的布局,尽量将关键器件放置在离阱的边界比较远的地方。多加一些虚拟器件(Dummy device),这样就可以使关键器件远离阱的边缘。以上可以减小或避免WPE效应。
28、mos管做esd时,
①为什么要求漏端到poly的距离大于源端?

        作用1:增加各个单元的分布式镇流电阻让整个ESD mos管更均匀的导通

        作用2:在ESD电流泄放的时候,电流是通过D往S、sub跑的,此时D-sub结上有电压、大电流,就会有大功耗、发热,短时间足以使D-sub结区域的体硅温度升高到使CT孔融化的高温(也就是450度左右即可)。加大漏极的CT孔到gate的间距,可以使CT孔远离发热区

        作用3:拉大漏区可以增大漏区电阻,这样寄生的BJT可有更高的点位,使BJT导通,可以更快的泄放掉漏端的大电流

②为什么源极孔到gate的间距不需要加大这么多呢?

        因为源极到发热的D-sub结间有低浓度的沟道区,导热系数较低;相反的漏极孔到D-sub结是高浓度漏区,甚至是有salicide(硅化物)导热系数大得多。

29、走线倒角,先用S选中需要倒的角,然后Edit->Advanced->Modify_Corner,  可以倒圆角和斜角,用于TOP 给宽线倒角,可以选中所有需要的角一次性倒角。

30、提取Pad坐标,Tools->Pad opening info,选择好PAD使用的Layer和对应Label Layer,确定后会出报告,如果Label没在Pad上,名字那一列会显示NONAME,同时也可以用于检测自己的Label有没有在PAD上面。

31、自顶而下消除所有的ruler  :ctrl  +  shift + k


95

点赞

刚表态过的朋友 (95 人)

发表评论 评论 (9 个评论)

回复 Zgy198701 2022-8-14 22:51
受教
回复 hehuachangkai 2023-4-4 17:28
看看先
回复 fengtang2332 2023-6-25 15:44
fab 更新工艺,mark net 不亮了,找到答案14
回复 cqp 2023-7-13 22:03
受教啦
回复 百卒 2023-7-17 17:44
太棒了,感谢作者
回复 向天笑白羊 2023-11-13 19:17
mark
回复 yunsgao 2023-12-19 16:39
学到了 收藏
回复 alex0152 2024-1-12 15:09
好东西,谢谢楼主
回复 黎磊峰 2024-2-26 14:20
学到了

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 4

    总排名
  • 4

    关注
  • 63

    粉丝
  • 9

    好友
  • 155

    获赞
  • 21

    评论
  • 282

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 06:03 , Processed in 0.022647 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部