第5章 全定制IC设计Calibre版图验证和XP下的HSPICE后仿.docx
《第5章 全定制IC设计Calibre版图验证和XP下的HSPICE后仿.docx》由会员分享,可在线阅读,更多相关《第5章 全定制IC设计Calibre版图验证和XP下的HSPICE后仿.docx(27页珍藏版)》请在冰豆网上搜索。
第5章全定制IC设计Calibre版图验证和XP下的HSPICE后仿
第五章全定制IC设计(Calibre版图验证)
在第三、四章已经介绍了电路图和版图的绘制(使用Cadence公司IC5141的VirtuosoLayoutEditor),版图验证(使用Diva)和HSPICE后仿真(通过IC5141的ADE界面)。
目前,Calibre工具已经被众多设计公司、单元库、IP开发商和晶圆代工厂采用,作为深亚微米集成电路的物理验证工具,Calibre工具已经被集成到Cadence公司的VirtuosoLayoutEditor设计环境中。
本章将以十进制计数器为例(使用CSMCMOS工艺),介绍Calibre验证工具的使用方法,并介绍XP平台下的HSPICE版图后仿真方法。
十进制计数器DRC(CSMCMOS工艺)
计数器是数字系统中应用最广泛的基本时序逻辑构件,本章以十进制计数为例,介绍Calibre验证工具的使用方法。
根据十进制计数器的构成原理,十进制计数器可由与非门,异或门和D触发器来表示一位十进制数的四位二进制编码。
分析步骤一般是:
根据十进制加法计数器状态表画出卡诺图。
(1)由卡诺图得到表示该计数器工作状态的状态方程。
(2)由状态方程得到计数器的状态转换表
(3)判断计数器的功能。
在前面的章节中已经学习了电路图与版图的绘制,在进行十进制计数器电路图的绘制时,首先绘制底层电路包括反相器,与非门,异或门及传输门等的Schematic,Symbol。
然后,调用单元电路画出十进制计数器的电路图。
绘制电路版图时,应先绘制底层电路对应的版图,并用Calibre进行相应的DRC,LVS,再画出整个电路版图。
十进制计数器的设计方法与逻辑电路图与电路图的绘制可参照第六章的实验七,版图绘制方法可参见第四章的节。
版图绘制好后,为了保证版图能正确制出,在正式流片之前还必须作一些其他的工作,例如DesignRuleChecking(DRC)。
DRC(设计规则检查)
DRC概述
DRC的目的是保证版图满足流片厂家的设计规则,因为不是任何版图都能制造出来,只有满足厂家设计规则的版图才有可能成功制造出来。
DRC是验证设计的几何规则的,它保证版图符合流片厂家的要求。
如果不作这一步验证的话,就有可能发生线条在光刻过程中被刻断等情况,从而导致流片失败。
DRC实例分析
使用Calibre进行DRC的运行步骤为:
准备RuleFile和GDSFile。
运行CalibreDRC。
分析DRC结果,修正错误。
1、调入十进制计数器版图
下面以十进制计数器为例(工艺)详细介绍版图的设计规则检查(DRC)。
使用一个已经做好的十进制计数器,将其调入Cadence库文件中,使其成为一个Pag文件。
首先将做好的十进制计数器文件包(COUNTER10)拷贝到工艺PDK对应的工作目录下,接下来在Linux终端下进入该工作目录,运行Cadence的IC5141设计软件。
启动IC5141后,点击菜单栏上的edit,选择librarypath。
出现图5-1窗口界面,选择OK。
图5-1LibraryPath窗口
选择librarypath->edit->addlibrary,出来如图5-2所示的框图。
在Directory中选择COUNTER10文件的存放路径/home/yelifang/ylf_pdk,在Libirary中选择COUNTER10,点击Apply->OK。
COUNTER10文件包就调入Cadence库文件中,可直接使用了。
图5-2AddLibrary窗口
添加好COUNTER10文件后,在如图5-3所示的库管理器(LibraryManager)窗口中,包含了十进制计数器的电路图,符号图,版图。
图5-4是十进制计数器的符号图,图5-5是十进制计数器的电路图,图5-6是十进制计数器的版图。
图5-3库管理器窗口
图5-4十进制计数器符号图
图5-5十进制计数器电路图
图5-6十进制计数器版图
2、Calibre的DRC启动
做HSPICE后仿前,要先对版图进行DRC与LVS检查并运行PEX。
下面介绍使用Calibre进行DRC检查的方法。
如图5-7所示,选择Calibre->RunDRC,则出现图5-8所示的DRC运行界面。
图5-7运行DRC界面
3、DRC的运行环境设置
第一次使用DRC前,应先进行DRC的运行环境设置,用如下方法进行设置。
第一步:
选择DRC运行设置文件drc_runset。
点击RunDRC后,则出来如图5-8的DRC规则文件设置界面,选择DRC运行设置文件drc_runset。
图5-8DRC运行设置文件
第二步:
选择DRC规则文件路径与运行目录。
图5-8中选择“OK”后,则出现图5-9所示的DRC规则文件路径与运行目录的设置界面。
填入你的规则文件路径以及你的DRC运行目录,当你选择的规则文件路径以及DRC运行目录出现红色的字时,说明你的选择是错误的,只有当它显示绿色时才是正确的。
图5-9DRC规则文件路径与运行目录的设置界面
第三步:
设置环境变量。
选择Setup->SetEnvironment,设置规则文件中的环境变量,如图5-10所示。
图5-10环境变量设置界面
第四步:
设置需要检查的规则。
选择Setup->SelectChecks,如图所示。
图5-11SelectChecks选择界面
在出现的图5-12对话框中,选择top_4M的两条规则,并保持其他默认选项。
到此DRC的运行环境设置完毕。
最后,点击File->Saverunset对运行环境设置进行保存,下次DRC时,就可以直接运行,不需再设置。
图5-12规则界面
4、DRC运行方法
如图5-13所示,单击RunDRC运行,运行信息可以在CIW窗口看到。
图5-13正确的运行结果
5、版图查错
若出现图5-14所示的结果,则表示版图有错误。
图5-14显示版图有两处错误,错误提示是“metal1spacing=”,错误应该是metal1的最小间距不满足。
同时在版图上也会出现发亮的区域(如果有错误)。
双击5-14的数值后,在版图上也会高亮显示错误的区域。
修改完版图,用Calibre再作DRC检查,直到通过DRC。
图5-14有错误的DRC运行结果
§LVS
LVS概述
LVS的目的就是证明版图与电路图的网表是一致的。
CalibreLVS是一个出色的版图与线路图对比检查工具,具有高效率、高准确度和大容量等优点。
LVS的流程是:
从版图中提取出(extract)网表。
将提取出的网表与电路图网表进行比较。
如果两个网表不一样,应修改版图,直到版图网表与电路图网表相一致。
LVS实例
下面以实例说明LVS运行方法。
1、LVS的启动
如图5-15所示,选择Calibre->RunLVS,出现如图5-16所示的LVS运行界面。
图5-15运行LVS界面
2、LVS的运行环境设置
第一次使用LVS前,应先进行LVS的运行环境设置,用如下方法进行设置。
第一步:
选择LVS运行设置文件lvs_runset。
在图5-16界面点Rules进行lvs_runset设置。
图5-16LVS设置文件界面
第二步:
选择LVS规则文件路径与运行目录。
填入正确的规则文件地址路径,如图5-17所示。
图5-17LVS规则文件路径与运行目录设置界面
第三步:
选择电路导出网表,如图5-18如图。
图5-18电路导出网表选择界面
第四步:
LVS环境变量设置。
选择Setup->SetEnvironment,按图5-19设置环境变量。
最后,点击File->Saverunset对运行环境设置进行保存,下次LVS时,就可以直接运行,不需再设置。
图5-19LVS环境变量设置界面
3、LVS运行方法与查错
设置完以后单击Run,开始LVS,片刻后就会弹出一个窗口表示LVS完成或者失败。
图5-20中右边的红框内容显示绿色,则通过了LVS,若为红色,则说明版图有错。
可以点击图5-20左边的LVSReport,里面有提示版图哪里出错了,再对此进行修改。
图5-20LVS运行结果
§寄生参数抽取PEX及HSPICE后仿真
寄生参数抽取
1、PEX的启动
选择Calibre->RunPEX,如图5-21所示。
图5-21运行PEX界面
3、PEX的运行环境设置
第一次使用PEX前,应先进行PEX的运行环境设置,用如下方法进行设置。
第一步:
选择PEX运行设置文件pex_runset,如图5-22所示。
图5-22PEX设置文件界面
第二步:
选择PEX规则文件路径与运行目录,如图5-23所示。
图5-23PEX规则文件路径与运行目录设置界面
第三步:
PEX环境变量设置。
选择Setup->SetEnvironment,按图5-24设置环境变量,将图5-24中的三个红框内容改成自己实际的运行目录,之后选择蓝框的内容,点击OK。
图5-24PEX环境设置界面
第四步:
选择输出格式。
如图5-25如图,输出格式设为CALIBREVIEW。
图5-25输出格式选择界面
第五步:
选择PEX选项。
点Setup->PEXOptions,如图5-26所示,选择寄生电容参数选项。
在Include选项中选择/pex/INCLUDE/。
图5-26寄生电容参数选择界面
最后,点击File->Saverunset对运行环境设置进行保存,下次PEX时,就可以直接运行,不需再设置。
3、PEX运行方法
运行选项选择界面如图5-27所示,按RunPEX即进行PEX运行。
运行PEX时,要通过“RunControl”多次进行设置。
第一次按RunPEX运行前,这里三个选项都选中,出现CalibrefinishedwithError:
SIGABRT错误;
第二次按RunPEX运行前,选中第二、三个选项,出现CalibrefinishedwithError:
SIGABRT错误;
第三次按RunPEX运行前,仅选中最后一个选项。
运行后出现图5-28,按图选择后,点击OK。
图5-27运行选项选择界面
图5-28运行结果界面
抽取成功后,View中出现了Calibre,如图5-29所示。
至此,便完成了利用Calibre对十进制计数器进行的DRC、LVS和PEX。
图5-29库管理器窗口
HSPICE后仿真
下面介绍十进制计数器的HSPICE后仿真。
测试平台的建立参照第六章实验七,测试平台建好后,即可以通过ADE调用HSPICE进行仿真。
ADE调用HSPICE的具体方法见第三章的节,注意工艺使用的电压是。
此外,有如下两点与第三章的节不同。
1、添加模型文件
不象NCSU的TSMC工艺的PDK已设好仿真使用的HPSICE模型,CSM工艺的PDK需要手工添加HPSICE模型文件。
的模型文件是/models/。
添加HPSICE模型文件的方法如下:
如图5-30所示,选择Setup->StimulationFiles->Editincludefile,出来的对话框中填入自己的模型文件的实际路径,填好后点击OK。
图5-30模型文件设置界面
2、设置后仿使用版图的calibre网表
与第三章节的前仿不同,版图后仿真的设置有所不同,具体方法如下:
选择Setup->Environment,在出来的对话框中,在schematic之前加入“calibre”,如图所示。
这样HSPICE会使用calibre从版图提取的网表进行仿真。
图5-31环境变量设置界面
十进制计数器Hspice后仿真结果如图所示,它实现了从0000到1001的计数功能。
图5-32后仿真结果
XP下的HSPICE后仿真和Awaves波形查看器
1、XP下的HSPICE后仿真
从Calibre抽取的网表有三个,例如下面这样:
主网表
寄生参数的主网表
子电路的寄生参数
把LINUX下的的SPICE模型参数文件/pdk安装目录/models/以及上述三个文件拷贝到XP下的HSPICE运行目录下。
(1)修改"主网表"文件名:
例如:
改为,其它二个(*.pxi和.pex)可以不改名。
(2)修改主网表(*.sp)文件内容
1)为了方便阅读,把*.sp文件,从写字版格式改为记事本格式。
其它二个(*.pxi和.pex)可以不改格式。
2)文件*.sp中的一些路经作相应修改。
例如,库路经:
.lib"/pdk安装目录/models/"TT改为.lib""TT
注意:
XP下是\,LINUX下是/
(3)在主网表(*.sp)文件内中加入以下内容:
1)子电路调用。
例如:
XCMOSCOT10VSS!
VDD10Q2Q1Q0Q3CLKC
2)电源激励。
例如:
VCLKCLK0pulse50n50n100n
VDDVDD!
0
VSSVSS!
00
3)分析与设置语句。
例如:
.TRAN500ns
.optionsvntol=
.optionsreltol=
4)结束语句:
.END
2、HSPICE仿真方法与Awaves波形查看器
Hspice可以执行各种模拟电路仿真,它的精度很高。
通过点击Hspui,即可启动Hspice,Hspice的界面如图5-33。
图5-33Hspice界面
在Hspice图形界面中,Design是显示网表文件的存放路径,
Title是显示网表文件的标题
,Listing是输出.LIST文件的路径,
Version是软件的安装路径。
注意:
网表文件存放的目录中不能出现中文。
Hspice模拟步骤如下:
(1)点击
查找需要仿真的网表文件,网表文件以.sp结尾。
例如,上图中电路网表文件为。
(2)运行
模拟,如果网表有错误,仿真会中止。
点击
,调出.list,查找出错提示信息。
查出错误后,点击
,修改网表文件。
仿真
完成后,可通过检查输出报告文件后缀.lis文件察看模拟结果。
(3)运行
查看输出波形。
运行后弹出如图5-34两个界面。
在ResultsBrowner的tr0一栏,出现标题,说明有图形文件被加载。
点击该标题,在Types和Curves中会加载入所需要的数据。
Types一栏代表数据的类型:
电压、电流。
Curves一栏代表电路中节点所对应的电压或电流。
双击Curves中的数据,在AvanWaves-Y中观测波形。
图5-34仿真波形观察界面
AvanWaves-Y工具栏中,有Design、Panels、Window、Measure、Configuration等工具。
Design菜单项的选项卡及功能如下所示:
(1)Open:
打开源网表文件。
(2)Close:
关闭源网表文件。
(3)Current:
目前打开所有文件。
(4)Exit:
退出。
Panels菜单项的选项卡及功能如下:
(1)Add:
添加显示栏。
(2)Hide:
隐藏显示栏
(3)Deletepanels:
删除显示栏
(4)Grouppanels:
组合栏
(5)Ungrounppanels:
非组合栏
(6)Editcurves:
编辑所选的曲线
(7)deselectcurves:
取消选择曲线
(8)deletecurves:
删除曲线
(9)Update:
刷新波形图
(10)Addlabel:
添加Label
(11)Addarrow:
添加箭头
(12)Deletelabel:
删除Label
Window菜单项的选项卡及功能如下:
(1)FlipColo:
颜色过滤器
(2)Full:
将放大或缩小过的波形变回原来的大小。
(3)Zoominx/outx:
在x轴上放大/缩小。
(4)Zoominy/outy:
在y轴上放大/缩小。
(5)Zoominx/y:
在x、y轴上同时放大。
(6)Zoomoutx/y:
在x、y轴上同时缩小。
(7)LastZoom:
将波形还原成最后一次的缩放波形。
(8)panx:
在x轴上平移波形。
(9)pany:
在y轴上平移波形。
(10)panx/y:
在x、y轴上都要平移。
(11)Stack/overlaymode;几个波形的重叠/展开。
(12)SetZoom:
选择设置坐标的起点和终点,观察一段区间内的波形。
Measure菜单项的主要选项卡及功能如下:
(1)PointtoPoint:
采集曲线上点的坐标。
(2)Deletemeasure:
删除所选的Point标签记录。
(3)
DeleteAllmeasure
:
删除所有的标签记录。
(4)
Anchorcursor:
采集曲线上点的坐标。
(5)
RemoveAnchors:
删除Anchorcursor的标签记录。
Configuration菜单项的选项卡及功能如下:
(1)Open:
用于打开已存储的波形文件。
(2)Save:
用于保存波形文件。
(3)Delete:
删除已有的波形文件。
Tools菜单项的选项卡及功能如下:
(1)ResultBrowser:
调出ResultBrowser窗口。
(2)Expression:
调出ExpressionBuilder窗口。
(3)Print:
打印。