Cadence初学手记.doc_第1页
Cadence初学手记.doc_第2页
Cadence初学手记.doc_第3页
Cadence初学手记.doc_第4页
Cadence初学手记.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

Cadence初学手记(转)(2013-03-14 22:28:48) 转载分类: IC设计 Cadence初学手记(一)学用Cadence也有一段时间了,但写这Cadence初学手记的想法是来自boyfriend的一句话,他说,我们遇到困难上网搜资料的时候,经常能从很多人的博客里找到答案,我们也可以把自已会的一些问题写到我们的日志里,这样也许别人也能从我们这里得帮助呢,网络嘛,就是一个人人为我我为人人的地方啊。我想对啊对啊,这话说得多贴心啊。我从连UNIX都不会进开始一路摸索着走来,我深深知道初学者要经历的苦闷和彷徨。虽然现在依然很菜鸟,但总算有了一点小小的心得和体会,如果有一天,你搜索到我的页面,如果我这粗浅的学习手记能对你有一点点的启发,那请你笑一笑,我会奖励自已吃一颗巧克力!(一)如何进入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选layout2、常用快捷键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),点OK2、找到你刚刚生成的网表,对其进行编辑,我一般是先把GLOBALVDDGND那一行前面的星号去掉,因为星号是代表注释掉某一行语句,而我们需要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*.end4、在保存网表的路径下,打开终端,键入hspice netlist(或你的网表名),程序开始运行,等运行结后,键入awaves netlist.tr0,就可以看波形啦,想看哪个波形,在result browser里一双击就可以了Cadence学习手记(五):版图的DRACULA验证1.将版图导成GDS文件:在CIW窗口中点file-stream out,在弹出的对话框中点browser选定你要导的版图,设置好输出文件名,路径等等点OK2.对DRC文件进行修改:在INDISK后,写入你的GDS文件路径及文件名,OUTDISK后设置你的输出文件名,PRIMARY后写你的cellname,workdir后写你的DRACUAL程序路径,改好后保存3.将改好的DRC文件和GDS文件放在同一目录下,并在此终端下键入PDRACULA,在提示符后输入:/g cellname.db,程序开始运行,生成等可执行文件,程序运行完后输入“:/f”推出程序4. 输入,系统开始进行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语句如下:exth mt1 lt 0.6 out drc01 40整个operation部分的内容就是*operexth 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 lastext 表 extendh 为该命令的选项,为check notchlt 为littleout 为output写dracula command file就像写八股文,照着往上套就是。就写drc command file来讲,主要针对designer rule来写,首先看懂rule后,再去规则一下,主要思路如下:1,定义好所要用到的层2,将要层进行细化,来表达准确的含意3,定义好组件4,给定check rule比如说,要检测出gate与cont的rule1,定义好层.pplus = 2cont = 5poly1 = 12thin = 8.2,细化.and pplus thin pthin;pplus与thin重合的部分定义为pthin,即p型的thinoxideand nwell pthin pdiff;pthin与nwell重合的部分就是要来形成pmos的部分.3,定义组件.and poly1 thin gate ;poly1与thin交结的地方,即是gateand pdiff gate pgate;gate在pdiff,就认定为pgatenot gate pgate ngate;gate除去pgate,就认定是ngate.4,给定rule.extto cont gate lt 0.4 out drc04 40;gate距cont,至少0.4u.此例中,先定好要用到的层,细化时即是定义由基本层派生出的层将层与层进行组合,就形成你所想要定义的组件,对应到平时所讲的如,gate,pmos,nmos等,这些并不是单纯的层,而是由层与层交织出的组件。值得注意的是,这些定义要能真正体现mask的本意,否则command file就是无意义的。以小见大, 就可以完成command file的编写Cadence初学手记(七):版图与电路对比lvs1、将版图转换成GDS文件:和前面讲DRC时一样,就是在CIW里点file-export-stream out,设置好文件名和路径,点OK2、将电路图转换成网表:CIW里,file-export-CDL,设置文件名和路径,点OK3、将GDS文件,网表和LVS文件都拷在同一个目录下4、修改LVS文件:INDISK后写你的GDS文件路径OUTDISK后写输出文件名PRIMARY后写你的top cellnameprogram dir后写DRACULA程序的路径5、将netlist转换成LVSLOGIC.DAT:在验证目录路径下,键入大写LOGLVS,然后在冒号后输入“cir 网表名”编译网表,“con 要转换的电路原理图的top cell名”将top cell转换成XTR文件,“:SUMMARY”看电路图情况,包括各种器件个数,:x退出6、在同一路径下,键入PDRACULA,在提示符后输入“/g lvs文件名”,“/f”退出,生成7、输入则开始执行LVS检验,若输入cellname.log,则检验在后台执行并将结果输出到cellname.log文件里8、程序结束后,生成很多文件,可通过lvs.lvs来查看错误Cadence初学手记(八):关于LSW我一直记得以前见过关于用鼠标及shift使某一层不可见或不可选,就是记不得了,前两天琢磨了下,琢磨出来了,汇报下:middle:使某一层不可见,要注意这层不能是选定用来绘图的那一层shift+middle:只有点的那一层可见,其余不可见,相当于NVright:使某层不可选,某层处于不可选状态时,颜色会变淡些,在版图上你就无法选定由这层画出的图形shift+right:只有点的那一层可选,其余不可选,相当于NS要解除不可见或不可选的状态,再点一下middle或right就可以了Cadence初学手记(九):hspice小窍门 LVS的小经验完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呢?愁煞人也哈哈,这可是和我一个教研室的stronger大哥经历了血的教训后发现的独门秘籍,一般人我不告诉他!其实也很简单,就是修改网表的时候,删最后那一行的“ends cellname”时,千万不要把那一行全部选删掉,就选那几个字删就好,否则就会no data,神奇吧。发现这么点细微的差别实在不易啊,在此向stronger大哥敬礼了先LVS的小经验:前几天非人的LVS经历给了我惨痛的教训,面对着几百个的UNMATCH,那个痛苦啊!有时有错误却死活查不出来,郁闷得我简直想拿头撞墙。不过现在好了,我挖地三尺地查啊查,总算守得云开见月明了,有点小经验,汇报汇报:1、确保所有的LABEL均被识别出来,尤其是VDD和GND的。LABEL用哪一层金属都可以,只要将其原点包含到你要标识的那个金属条里就行2、特别要注意PAD之间不能短接。我这次做LVS最开始只认出了四个输入,四个输出及电源和地都没有被认出来,我百思不得其解,后来上网请教,得知要查查PAD是否有相同的器件连接。我一查,果然,由于我粗心马哈,metal3有部分重叠,几个PAD连成一片,能认出来才怪。断开重叠的metal3,又发现多打了几个via,把电源和地打通了,除掉那几个害人的via,又发现两个输出的功率管的漏极接到一起了,就相当于一个管子接了两个PAD,肯定会出错啦3、报告结果的.lvs文件中,差异报告部分左边是原理图的器件,右边是版图的器件,我一般都是从不匹配的节点开始找。在LVSsetup后,将不匹配的netname写入LVSview窗口的第二栏里,再点fit ,不匹配的net就会高亮显示,再在原理图窗口用edit-search,找到相应的net,就可以比较两者,看哪儿出错了4、关于LVSCHK选项的简介,从网上找的,发一下LVSCHKoptionOption解释如下:A 将串连电容认做一个B 仅仅保持并联三极管的单个性,有多少是多少。其他如并联的mos,dio,ldd,res,cap等全部认成一个!C 如果没有定义X选项,则把

温馨提示

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

评论

0/150

提交评论