集成电路板图绘制方法.docx
- 文档编号:30705458
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:23
- 大小:547.89KB
集成电路板图绘制方法.docx
《集成电路板图绘制方法.docx》由会员分享,可在线阅读,更多相关《集成电路板图绘制方法.docx(23页珍藏版)》请在冰豆网上搜索。
集成电路板图绘制方法
集成电路课程设计
版图设计部分
实验文档
微电子中心
王永生
工欲善其事,必先利其器。
——孔子
一、简介
在集成电路的电路设计完毕后,开始设计IC的版图(layout),以便进行制版,完成工艺流片。
本部分讲授IC的版图设计以及版图EDA工具的使用。
版图设计规则是一套图形的设计规则的组合,是联系集成电路工业制造厂家(foundry)和集成电路设计者的桥梁。
这里仅讲授借助版图设计工具进行版图设计,详细的版图设计技术可参照相关的教材。
参加本课程设计的人员应具备集成电路设计基础、集成电路工艺等相关知识。
二、版图设计
(2)
Cadence公司的Virtuoso版图设计工具是业内流行的版图设计软件,可以和schematicview在同一个设计环境里进行版图设计。
并且可以完成相应的DRC、LVS等验证工作。
1、工具的使用
(见附录做数据准备工作)
首先确保执行目录下有display.drf文件。
进入~/training/ic/layout_labs$目录,启动cadence的设计环境平台,在命令行提示符($)下执行,
$icfb&
首先建立一个设计库,tools->librarymanager,File->New->Library,
在Name内添上lab2,ok后,选择compileatechfile,找到techfile,然后ok。
这样就建立了一个设计库。
这里注意需要选择编译techfile,是因为我们要依据电路进行版图设计。
然后,在lab2设计库里建立一个layoutview,在LibraryManager菜单New->cellview,
填入inv,viewname选layout,tool选virtuoso,然后ok,则会出现版图的编辑界面。
在版图编辑界面中,从LSW中选择图层,然后绘制各种图形。
各个编辑命令在菜单里均可找到,常用的命令以按钮的方式显示在编辑窗口的左侧。
另外,记住一些常用命令的快捷方式有助于快速绘制版图,例如,
创建长方形:
r;
创建path:
p;
Copy:
c;
Move:
m;
Ruler:
k;
清除ruler:
K;
Stretch(拉伸):
s;
插入instance:
i;
至此工具的初步使用已经进行了简单的介绍,下面结合具体的基本电路进行版图设计的介绍。
2、基本版图设计——反相器
2.1PDK——ProcessDesignKit
PDK是foundry提供的一套单元库,目的是为了简化电路及版图设计过程。
在PDK中,常用的器件的版图已经创建为单元,并且是参数化的。
版图设计者在使用时,只需要进行例化(instance),并填上需要的参数即可,例如:
绘制一个NMOS,在刚才创建的inv的编辑窗口,插入instance(快捷方式i),选择PDK库中的3.3V的NMOS管nmos_3p3,填入length=350n,Totalwidth=2u.(注明:
totalwidth=fingerwidth×fingers)。
如果一个foundry工艺已经提供PDK,那么在电路设计和版图设计中均可采用其中的器件。
在下面的training中,电路中的器件已更新为PDK中的器件。
注意,需要在cds.lib中指明PDK库(xxxx35dg_XxXx)的路径。
2.2反相器的版图设计
在每次版图设计前,要注意设置版图的格点,菜单options->Display…
格点的大小需要根据工艺手册上得知,这里XsnapSpacing=0.025,YsnapSpacing=0.025.然后点saveto(library)或(Cellview)。
这里设计电路设计部分第四节中图4实例电路中的反相器,即adc_flash3库中的inv电路。
(注意:
为了便于LVS,inv电路中的器件已经由analogLib库换为PDK中的器件,由于采用的是相同的器件,这不影响原始电路的仿真。
)
从PDK中选择3v的NMOS和PMOS,按照电路的尺寸填入相应的器件参数。
如下图,
然后放置P-tie和N-tie,即在NWELL区域里放置M1_NWELL,在P衬底放置M1_PSUB。
然后用POLY2(drw)层连接inv的输入,然后放置poly2和MET1的contactM1_POLY2,并用MET1(lbl)打上label为vin。
用MET1(drw)连接inv的输出、电源和地,并分别用MET1(lbl)打上label为vout、vdd!
、gnd!
。
注意,每个层次都有不同的purpose,如metal1有drawing层MET1(drw)和label层MET1(lbl)。
用drawing层绘制图形,用label层标名称。
2.3练习
针对电路设计部分第三节练习题的单级放大器电路,进行其版图设计。
注意:
大家可以在原来的spice_labs目录下做这个练习。
但需要将电路中的器件由analogLib库改为PDK库中的相应的器件。
三、版图验证
(2)
1、采用DIVA做DRC验证
DIVA是cadence的Virtuoso传统的版图验证工具,是virtuoso的组成部分。
但由于DIVA对大规模的集成电路版图的验证能力较弱,LVS设置麻烦,近些年被新兴的工具所代替,如cadence自己的Assura、mentor的calibre、synopsys的hercules等等。
然而,由于DIVA是virtuoso的组成部件,因此,其DRC的验证功能还是比较方便的,很多foundry仍支持,因此,这里做简单介绍。
首先,将divaDRC.rul拷贝到版图库中,在terminal的命令提示符下,
$cpdivaDRC.rul./lab2/.
在版图编辑界面,菜单Verify->DRC…,出现下面对话框,点击SetSwitches按钮,按住ctrl复选选择2P2M、DUALGETE_process、Enable_Antemma_Rules、Enable_Latch_Up_Rules,即选择需要进行DRC检查的复选项,如下图
然后点击OK,在icfb的LOG窗口出现运行结果。
如何存在错误,则运行结果类似于这样,
在LOG窗口会报告error,同时版图界面会出现提示。
然后,我们可以进行debug,选择菜单Verify->Markers->Find…,出现FindMarker窗口,勾选ZoomToMarkers,按Apply,出现markertext窗口,并且zoomin到当前的marker上,版图界面同时高亮,按照提示修改错误。
如果还有多个error,还可以按FindMarker窗口上的Next继续查找error并修改错误。
然后重新做DRC验证直至没有错误出现。
大家可以试试再复选Enable_Density_Rules检查项试一试。
2、采用calibre做DRC、LVS、PEX验证
对于版图的验证还有一个比较好的工具——mentor公式的calibre,并且越来越被业界接受,并成为主流工具。
这里也将介绍采用calibre进行版图的验证。
Calibre可以单独运行,也可以集成到virtuoso的版图编辑界面。
因此,为了在virtuoso的版图编辑界面可以运行calibre,应确保calibre出现在版图编辑界面,如图,
这需要一些设置,本training材料已经设置好了,不需要大家再去设置。
在做calibre的DRC、LVS、PEX之前,我们为其建立一个工作目录。
$mkdirverify
$cdverify
$mkdirdrclvspex
2.1DRC
在版图编辑界面,菜单calibre->RunDRC,出现calibre的DRC工具界面,
在此界面之前还会有一个Runset的load界面,是以往DRC配置的load选择,如果是第一次做DRC,这里是空的。
在training材料里,已经为大家准备好了一个runset,点选…选择此drc.runset进行load。
(注意,如果没有此runset,那么DRC中的设置需要一一填写)
首先,设置Rules,在DRCRulesFile一栏中填入calibreDRCrulefile:
/export/homeO5/yswang/training/ic/libs/rules/drc/calibre/drc_header_1j_00
(注意:
这个大家填的是一样的)
在DRCRunDirectory中填写DRC的工作目录,就是刚才建立的DRC工作目录(项目工作目录/verify/drc,例如我的是~/training/ic/layout_labs/verify/drc
(注意:
这个大家填的必须是不一样的,要在自己的drc目录中)
然后,Inputs是填写版图数据输入文件,由于是集成在virtuoso界面中,因此,这里工具自动填写,不需要大家填写,注意这里的Exportfromlayoutviewer必须勾选上。
Outputs是DRC结果的输出设置,工具也会自动填写。
按RunDRC进行DRC检查,运行完毕后,会出现report报表,同时会出现RVE界面进行error的显示,我们可以利用其进行debug。
这里,显示由一个error:
Metal2的金属覆盖密度不够,这是由于我们选择2metal2poly工艺,而在inv版图中没有使用metal2,因此,会出现这个问题,这个不是版图设计的图形有问题。
RVE可以和版图界面进行交互,在RVE中点击error项,版图中会自动focus此error项。
我们可以在退出DRC工具时,将设置存成一个runset,如drc1.runset,以便下次调用。
这个过程也可以在菜单File->SaveRunset(或SaveRunsetAs)
2.2LVS
在版图编辑界面,菜单calibre->RunLVS,出现calibre的LVS工具界面,
同样地,在此界面之前还会有一个Runset的load界面,是以往LVS配置的load选择,如果是第一次做LVS,这里是空的。
在training材料里,已经为大家准备好了一个runset,点选…选择此lvs.runset进行load。
(注意,如果没有此runset,那么LVS中的设置需要一一填写)
首先,设置Rules,在LVSRulesFile一栏中填入calibreLVSrulefile:
/export/homeO5/yswang/training/ic/libs/rules/lvs/files/calibre/chrt035dg_sige.lvs.cal
(注意:
这个大家填的是一样的,因为用到的rules放到同一个地方)
在LVSRunDirectory中填写LVS的工作目录,就是刚才建立的LVS工作目录(项目工作目录/verify/lvs,例如我的是~/training/ic/layout_labs/verify/lvs
(注意:
这个大家填的必须是不一样的,要在自己的drc目录中)
然后,Inputs是填写版图数据和电路输入文件,由于是集成在virtuoso界面中,因此,这里工具自动填写,不需要大家填写,注意这里Layout和Netlist的Exportfromlayoutviewer必须勾选上。
(注意电路的顶层单元名需和layout的一致,否则此处的topcell需要更改)
Outputs是LVS结果的输出设置,工具也会自动填写。
做training的工艺的lvs还需要设置环境变量,具体在setup->SetEnvironment中设置,
由于在为大家准备好了的runset中,已经设置好这里变量了,不需要大家一一设置,但LAYOUT_PATH和SOURCE_PATH必须设置到自己做LVS的运行目录里(如前)。
关于各个变量的意义请见:
/export/homeO5/yswang/training/ic/libs/rules/lvs/files/calibre/README.
按RunLVS进行LVS检查,如果单元的电路(schematic)和layout没在同一个库内容,calibre将会询问schematic,如图
填入单元的schematic所在的库,这里,adc_flash3中的inv的schematic
运行完毕后,会出现report报表,同时会出现RVE界面进行error的显示,我们可以利用其进行debug。
同样,RVE可以和版图界面进行交互,在RVE中点击error项,版图中会自动focus此error项。
同样方法可以保存runset。
2.3PEX
PEX的过程和LVS过程基本一致,这是由于PEX首先也要做LVS,然后进行寄生参数提取。
在版图编辑界面,菜单calibre->RunPEX,出现calibre的PEX工具界面,
同样地,在此界面之前还会有一个Runset的load界面,是以往PEX配置的load选择,如果是第一次做PEX,这里是空的。
在training材料里,已经为大家准备好了一个runset,点选…选择此pex.runset进行load。
(注意,如果没有此runset,那么PEX中的设置需要一一填写)
首先,设置Rules,在PEXRulesFile一栏中填入calibrePEXrulefile:
/export/homeO5/yswang/training/ic/libs/rules/lvs/files/calibre/chrt035dg_sige.lvspexm3.cal
(注意:
这个大家填的是一样的,因为用到的rules放到同一个地方)
在PEXRunDirectory中填写PEX的工作目录,就是刚才建立的PEX工作目录(项目工作目录/verify/pex,例如我的是~/training/ic/layout_labs/verify/pex
(注意:
这个大家填的必须是不一样的,要在自己的drc目录中)
然后,和LVS一样,Inputs是填写版图数据和电路数据输入文件,由于是集成在virtuoso界面中,因此,这里工具自动填写,不需要大家填写,注意这里Layout和Netlist的Exportfromlayoutviewer必须勾选上。
(注意电路的顶层单元名需和layout的一致,否则此处的topcell需要更改)
Outputs是PEX结果的输出设置,寄生参数提取后的netlist,工具也会自动填写。
同样地,做training的工艺的pex也还需要设置环境变量,具体在setup->SetEnvironment中设置,
由于在为大家准备好了的runset中,已经设置好这里变量了,不需要大家一一设置,但LAYOUT_PATH和SOURCE_PATH必须设置到自己做LVS的运行目录里(如前)。
关于各个变量的意义请见:
/export/homeO5/yswang/training/ic/libs/rules/lvs/files/calibre/README.
按RunPEX进行PEX提取,如果单元的电路(schematic)和layout没在同一个库内容,calibre也将会询问schematic,如图
填入单元的schematic所在的库,这里,adc_flash3中的inv的schematic
运行完毕后,会出现report报表,并出现寄生参数提取后的netlist,
我们可以启动RVE。
但由于电路已经做过LVS,因此不应该出现error,RVE界面默认不会弹出。
同样方法可以保存runset。
四、实例:
放大器的版图设计
(1)
下面针对电路设计部分的第四节所使用的放大器comp_amp进行版图设计。
1、版图设计
版图设计的步骤与上面是一致的。
这里需要注意的是对于大的器件需要使用叉指型器件,并且注意版图的对称性。
2、版图验证
版图验证的过程也和上面一致。
这里不再赘述。
练习
针对电路设计部分第四节练习题所设计的放大器电路,进行其版图设计,完成DRC、LVS、PEX验证。
附录:
实验准备工作
bash-2.03$cp~yswang/.bashrc.
(备注:
命令提示符$后输入命令;注意中间的空格,上面的copy命令的末尾是一个空格和一个点.,以下情况类似。
)
bash-2.03$cp~yswang/.cdsinit.
bash-2.03$bash
dragon:
~$mkdirtraining1
(备注:
每个同学起不同的目录名称,如training2等等)
dragon:
~$cdtraining1/
dragon:
~/training1$mkdiric
dragon:
~/training1$cdic
(备注:
在电路设计training已经做过的,以上步骤可略过,直接进入ic目录)
dragon:
~/training1/ic$cp~yswang/training/ic/layout_labs.tar.gz.
dragon:
~/training1/ic$gzip-dclayout_labs.tar.gz|tarxvf–
dragon:
~/training1/ic$cdlayout_labs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 集成 电路板 绘制 方法