芯学长 | 掌握芯资讯,引领芯未来

您当前所在位置:首页 > 芯片设计 > 模拟IC版图

零基础小白必看丨Cadence IC 模拟版图初学手记

发布时间:2023-06-02来源:ic派大芯 0

Cadence初学手记(一)

如何进入Cadence

(1)进入UNIX系统后,点击右键,在弹出菜单中点选tools–terminal,在terminal提示符后键入icfb,启动Cadence.如果在icfb后加&则那个terminal窗口还能干别的,要是不加就什么都不能干了,而且关掉terminal Cadence也会关闭

(2)在主窗口CIW里,点file–new–libarary,新建一个库,然后可以在库里新建cellview.view name有schematic(原理图)layout(版图)symbol(符号)等,根据需要选择

(3)如果要画版图,一定要选compile a new tech file 或attach to an existing tech file,如果选第一项,则在弹出窗口里输入要compile的tf文件的路径,如果选第二项,则选择一个已经存在的库,你新建的库就会attach到那个库,就是说两个库用一个工艺文件

(4)将一个已有的库包含进来用libarary path manager,在tools菜单里,启动后,左边输入库名,右边输入库路径,再点file–save,就可以了,库路径信息保存在cds.lib文件中

Cadence初学手记(二)

(一)建好库后,新建cellview时选schematic,进入原理图编辑窗口,然后就可以画电路图了,和其它画电路图的软件如protel大体上都是差不多的,都是加入原件后扯线就行了

(二)发几个常用快捷键,用Cadence时,一定要熟练使用快捷键,可以给你的工作提供很大便利

i——添加元件;(我一般都用sample库的mos管,二极管等,basic库的VDD,GND)

p–加输入输出引脚

[——缩小两倍;

]——扩大两倍;

w——连线(细线);

f——全图显示;

q——查看元件属性。

u–撤消上一次操作

U–重做上一次操作

c–复制

m–移动

在选复制移动后,点F3键,可出现设置对话框,可以设置复制几行几列,ratote(旋转)sideway(左右镜像翻转)updown(上下镜像翻转))

X–检查并存盘

S–存盘

(三)可以把画好的电路图封装成symbol,以后就可以调用自已的原件了。方法是点design–creat cellview–from cellview,再点OK就好了

 Cadence初学手记(三):画版图

1、在一个包含工艺文件的库里新建cell,cellview选layout

2、常用快捷键

r:画矩形(retangel)

k:创建尺子

shift+k:清除所有尺子

m:移动(move)

c:复制(copy)

s:伸拉(strech)

shift+m:两图形融合(merge)

shift+c:切图形(chop)

u:取消上一次操作(undo)

shift+u:重复上一次操作(redo)

q:属性

l:标签(label)

另:键入上述命令后按F3,可以出现高级选项对话框

3、了解了快捷键

我们现在开始画版图啦!首先,在左边的LSW窗口点击你所需要的层次,比如先选oxide(或active),再按r,拖动鼠标,画出一个矩形,再按k,标定好尺寸,再按s,拖动矩形边调整到合适大小,这样有源区就画好了,同样方法再选poly层画栅,metal1画金属线,cont层画接触孔,一个最简单的mos管就画成了

4、关于版图的层次

  (1)版图的层次由工艺文件定义,也可以自已添加或删除,在CIW窗口中,点technology file–edit layers,出现对话框,有add,edit,delete等选项,点add新加层次时,要注意display resourse一定要和其它层选的不一样,否则这两个层显示的条纹色彩就一模一样。还有stream data type number,stream layer number等,与将来导出GDS文件有关,具体什么含义我也没弄太清楚。修改结束后会提醒你工艺文件已修改,是否保存

(2)关于各层显示:各个层次的显示由.drf文件定义,可以在LSW窗口中,点file–display resourse进行修改,边框,条纹,颜色等等都可以修改,一切按自已习惯来,也可以在出现的对话框中,可以点file–load来载入已经存在的.drf文件。修改后的显示信息也可以保存,以便下次直接调用

补充:是在打label的时候,一定要把label包含到所要标记的线条里,否则后期DRC的时候就系统就认不出来。

还有,在绘制版图的时候,如果层次很多,有些层又暂时用不着,可以将其屏蔽,通过LSW上的AV(all visible)NV(none visible) AS(all selectable) NS(none selectable)来实现,这样画面就清爽多。

Cadence初学手记(四)

电路的Hspice仿真

1、将电路导成网表:将画好的电路图check and save后,在CIW窗口里,点file–stream out–CDL,在弹出窗口里点browser,选定要导出的电路图,设置好路径(路径如果不填就在启动Cadencer的目录下)和导出文件名(默认为netlist),点OK

2、找到你刚刚生成的网表,对其进行编辑,我一般是先把GLOBAL VDD GND那一行前面的星号去掉,因为星号是代表注释掉某一行语句,而我们需要VDD GND做为全局变量。然后再把最下面main circuit那一块里的subckt前加上星号,subckt意思是定义子电路,在main circuit里无需定义子电路。

3、去掉最后的end cellname,加激励:

v0 VDD GND 6 *定义电源和地之间的电压 6V*

v1 IN1 0 pulse(0 5 5u 1n 1n 5u 10u) *输入信号1 脉冲 低电平0V 高电平5V 延迟5u 上升时间1n 下降时间1n 正半周时间5u 周期10u*

.op *分析静态工作点 *

.option list post nomode *这句不太懂,汗*

.print *输出说明,还可写成print v(节点名称) i(r1) p(r1) 分别代表输出电压电流和功率*

.inc ‘/home/user1/n95.inc’*要用到的工艺制程*

.tran 1u 300u *每1u分析一点,总共分析300u*

.end

4、在保存网表的路径下,打开终端,键入hspice netlist(或你的网表名),程序开始运行,等运行结后,键入awaves netlist.tr0,就可以看波形,想看哪个波形,在result browser里一双击就可以了

Cadence学习手记(五)

版图的DRACULA验证

1.将版图导成GDS文件:在CIW窗口中点file–stream out,在弹出的对话框中点browser选定你要导的版图,设置好输出文件名,路径等等点OK

2.对DRC文件进行修改:在INDISK后,写入你的GDS文件路径及文件名,OUTDISK后设置你的输出文件名,PRIMARY后写你的cellname,workdir后写你的DRACUAL程序路径,改好后保存

3.将改好的DRC文件和GDS文件放在同一目录下,并在此终端下键入PDRACULA,在提示符后输入”:/g cellname.db”,程序开始运行,生成jxrun.com等可执行文件,程序运行完后输入“:/f”推出程序

4. 输入jxrun.com,系统开始进行DRC验证,生成文件。

Cadence初学手记(六)

关于command file

我们常把dracula的脚本语言叫做command file,command file结构大致分为三大块即: 主体说明部分(description block),用来设定输入/出database信息,运行的模式等相关信息; 

图层说明部分(input layer block),用来说明所要操作的图层,文字等信息; 主体操作部分(operation block),这是command file的操作运算部分

一、主体说明部分

给个例子

*description 

primary = top1017 ;primary cell name 

indisk   = ../db/top.db ;input file name 

outdisk = out.dat ;output file name 

printfile = prt ;output log file 

resolution = 0.005 mic ;minium layout increment 

scale = 0.001 mic ;tap equivalent 

listerror = yes ;enable output log file 

program-dir = /home/dracula ;directiory include dracula program 

mode = exec now ;execution mode 

keepdata = inquery;smart;yes 

delcel = tmp ;cell delete 

text-level = 1 ;consider text in nth level 

system = gds2 ;database format 

*end 

黄色的字是一般是要自已改的

二、图层说明部分,就是定义版图中所用的层

如:*input-layer 

pwell   = 1 

pplus   = 2 

cont   = 5 

… … 

mt1     = 6 text 6 attach mt1 texttype 2 

substrate = bulk 99 

connect-layer = poly mt1 mt2 

temporary-layer = ngate pgate aplug 

*end 

三、主体操作部分

这部分就好像编程似的,比如,要检查两根metal1的间距不能小于0.6u

语句如下:

ext[h] mt1 lt 0.6 out drc01 40

整个operation部分的内容就是

*oper

ext[h] mt1 lt 0.6 out drc01 40

*end

本句的具体意思就是

mt1 extend to mt1 less than 0.6 ,and check notch, 

output error named drc01 by layer number is 40 at last

ext 表 extend

[h] 为该命令的选项,为check notch

lt 为little

out 为output

写dracula command file就像写八股文,照着往上套就是。

就写drc command file来讲,主要针对designer rule来写,

首先看懂rule后,再去规则一下,主要思路如下:

1,定义好所要用到的层

2,将要层进行细化,来表达准确的含意

3,定义好组件

4,给定check rule

比如说,要检测出gate与cont的rule

1,定义好层

pplus = 2

cont = 5

poly1 = 12

thin = 8

2,细化

and   pplus   thin   pthin;;pplus与thin重合的部分定义为pthin,即p型的thinoxide

and   nwell   pthin   pdiff;;pthin与nwell重合的部分就是要来形成pmos的部分

3,定义组件

and   poly1   thin   gate ;poly1与thin交结的地方,即是gate

and   pdiff   gate   pgate;;gate在pdiff,就认定为pgate

not   gate   pgate   ngate;;gate除去pgate,就认定是ngate

4,给定rule

ext[to]   cont   gate lt 0.4 out drc04 40;;gate距cont,至少0.4u

此例中,先定好要用到的层,细化时即是定义由基本层派生出的层将层与层进行组合,就形成你所想要定义的组件,对应到平时所讲的如,gate,pmos,nmos等,这些并不是单纯的层,而是由层与层交织出的组件。

值得注意的是,这些定义要能真正体现mask的本意,否则command file就是无意义的。以小见大, 就可以完成command file的编写

 Cadence初学手记(七)

版图与电路对比lvs

1、将版图转换成GDS文件:和前面讲DRC时一样,就是在CIW里点file–export–stream out,设置好文件名和路径,点OK

2、将电路图转换成网表:CIW里,file–export–CDL,设置文件名和路径,点OK

3、将GDS文件,网表和LVS文件都拷在同一个目录下

4、修改LVS文件:

INDISK后写你的GDS文件路径

OUTDISK后写输出文件名

PRIMARY后写你的top cellname

program dir后写DRACULA程序的路径

5、将netlist转换成LVSLOGIC.DAT:在验证目录路径下,键入大写LOGLVS,然后在冒号后输入“cir 网表名”编译网表,“con 要转换的电路原理图的top cell名”将top cell转换成XTR文件,“:SUMMARY”看电路图情况,包括各种器件个数,’:x’退出

6、在同一路径下,键入PDRACULA,在提示符后输入“/g lvs文件名”,“/f”退出,生成jxrun.com

7、输入jxrun.com则开始执行LVS检验,若输入jxrun.com>cellname.log,则检验在后台执行并将结果输出到cellname.log文件里

8、程序结束后,生成很多文件,可通过lvs.lvs来查看错误

  Cadence初学手记(八)

关于LSW

middle:使某一层不可见,要注意这层不能是选定用来绘图的那一层

shift+middle:只有点的那一层可见,其余不可见,相当于NV

right:使某层不可选,某层处于不可选状态时,颜色会变淡些,在版图上你就无法选定由这层画出的图形

shift+right:只有点的那一层可选,其余不可选,相当于NS

要解除不可见或不可选的状态,再点一下middle或right就可以了

 Cadence初学手记(九)

hspice小窍门 LVS的小经验

1、改变横坐标:在result browser窗口里,选中你想要作为横坐标的变量,再点Apply就可以了

2、如果电路是层次化的,想看某一模块里某一cell的电压或电流,在网表里写blockname.cellname就可以,比如看一个管的漏电流:print dc i(XI.mp24)。再在results browser窗口hierarchy栏双击top,点选某一模块,就可以在types和curves里点击相应的项目查看波形

3、有时会提示“input file has no data”怎么办?明明网表在,激励在,怎么no data呢?其实也很简单,就是修改网表的时候,删最后那一行的“ends cellname”时,千万不要把那一行全部选删掉,就选那几个字删就好,否则就会no data.

LVS的小经验

1、确保所有的LABEL均被识别出来,尤其是VDD和GND的。LABEL用哪一层金属都可以,只要将其原点包含到你要标识的那个金属条里就行

2、特别要注意PAD之间不能短接。我这次做LVS最开始只认出了四个输入,四个输出及电源和地都没有被认出来,我百思不得其解,后来上网请教,得知要查查PAD是否有相同的器件连接。我一查,果然,由于我粗心马哈,metal3有部分重叠,几个PAD连成一片,能认出来才怪。断开重叠的metal3,又发现多打了几个via,把电源和地打通了,除掉那几个害人的via,又发现两个输出的功率管的漏极接到一起了,就相当于一个管子接了两个PAD,肯定会出错啦

3、报告结果的.lvs文件中,差异报告部分左边是原理图的器件,右边是版图的器件,我一般都是从不匹配的节点开始找。在LVS--setup后,将不匹配的netname写入LVS view窗口的第二栏里,再点fit ,不匹配的net就会高亮显示,再在原理图窗口用edit–search,找到相应的net,就可以比较两者,看哪儿出错了

4、关于LVSCHK选项的简介LVSCHK[option] Option解释如下:

A   将串连电容认做一个

B   仅仅保持并联三极管的单个性,有多少是多少。其他如并联的mos,dio,ldd,res,cap等全部认成一个!

C   如果没有定义X选项,则把各种Pmos Nmos组合起来认成device,如nor nand aoi oai等。这里的pmos 和nmos必须是    在lvs cmdfile中被定义为MOS[P] MOS[N].

E和E` 怎样认一些并联的器件,并联的器件其实就是类似或相同的器件。,lvschk有两种认的方式,一种是E,以device为单位来认,另外一种就是E`,以node为单位来认。都指的是线路和layout的互相识别。lvschk后面有一些例如wpercent=0 什么的,如果没有,那么dracula自动打开lvschk的E选项.E和E`不能同时在lvschk里面出现。

书上建议说最好run两遍,一遍带E,一遍带E`,只有真正的错误才是在两次的错误报告中同时出现。

F   过滤掉没有用到的mos,比如在gate array的案子中。线路和layout可以单独过滤

G   过滤掉没有用到的mos,比如在gate array的案子中。线路和layout同时过滤。

K   有K就自动将B变成无效了。但是如果有S选项也有K选项,那么K无效了。K表示不把所有的并联device smash。

L   有L有C,C被盖掉。L跟C差不多,仅仅不包含aoi 和 oai。

M   dracula可以认出这种inverter(这个inverter用来short nand或nor的gate)

N   在gate级别认substrate,否则是在transistor level上认。如果有虚gate的情况,同时需要N 很T选项。

O   首先,用了O就不能用X。在没有连接vdd或者gnd的情况下,依然可以认出并联或者串连的mos来!挺有用!

P   检查电容的极性!

R   smash 串联的电阻。也就是说,串多少个都认成一根!除非分叉!

S   接了power或者gnd的mos,将几个并联的认做一个。(没见过哪个cmdfile没用这个选项)

T   前面略有介绍。

U   去掉不相关错误,好用啊

X   有X就不能swap。

Z   过滤掉那些没有接到power或gnd上的device。

【免责声明】:本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。

文章评价

-   全部 0 条 我要点评

有疑惑?
在线客服帮您
029-81122100

立即咨询 >