第3章全定制IC设计电路图绘制以及前仿真Word格式文档下载.docx
《第3章全定制IC设计电路图绘制以及前仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第3章全定制IC设计电路图绘制以及前仿真Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
例如D触发器由反相器和传输门等构成。
反相器和传输门即是D触发器的单元。
视图(View):
单元的一种视图形式。
例如反相器这个单元有版图(Layout)、电路图(Schematic)、符号(Symbol)等视图形式。
3.1.3环境设置
使用Cadence,必须在自己的计算机上作一些相应的设置,这些设置包括很多方面。
作为初学者,只需进行以下几项设置:
1、.cshrc文件设置
.cshrc文件是用户启动LINUX的配置文件,指定LINUX系统和EDA工具软件的环境变量,以及LINUX、EDA工具软件和Licence文件所在的路径。
.cshrc必须放在用户的homedirectory(家目录)下,若用户是csh,则用户启动Linux时,会自动载入homedirectory下的.cshrc文件。
2、.cds.lib文件设置
.cds.lib文件是Cadence的库管理文件,通常存放在启动目录下。
icfb&
启动时,会自动将启动目录下的.cds.lib文件载入。
对于初次使用Cadence的用户,Cadence会在用户的启动目录下生成一个.cds.lib文件,用户通过CIW生成一个库时,Cadence会自动将其加入启动目录下的.cds.lib文件中。
如果用户需要加入自己的库,则可以修改自己的库管理文件.cds.lib。
3、.cdsenv文件设置
.cdsenv文件包含了Cadence软件的一些初始设置,该文件用Skill语言写成的,Cadence可直接执行。
4、.cdsinit文件设置
与.cdsenv一样,.cdsinit中也包含了Cadence软件的一些初始化设置,该文件是用Skill语言写成的,Cadence可直接执行。
在icfb&
启动时,会首先自动调用.cdsinit文件和.cdsenv文件并执行其中的语言。
若仅为初学者,可以不编写这两个文件,Cadence会自动调用隐含的设置。
.cdsenv和.cdsinit这二个文件可存在于ic5141平台的安装目录、用户目录和启动目录下。
启动时,优先载入的次序是启动目录、用户目录和IC5141安装目录。
5、工艺文件(technologyfile)设计
技术文件库对于IC设计而言是非常重要的,其中包含了很多设计中所必需的信息。
对于版图设计者而言,技术库就显得更为重要了。
要生成技术文件库,必须先编写技术文件。
技术文件主要包括层的定义,符号化器件的定义,层、物理以及电学规则和一些针对特定的Cadence工具的规则的定义,例如自动布局布线的一些规则,版图转换成GDSII文件时所用到的层号定义。
初学者不用试图去编写技术文件,可使用现成的PDK,详见附录中的PDK安装。
6、显示文件(display.drf)设置
display.drf文件控制Cadence工具的显示,一般位于PDK安装目录或工作目录下。
初学者不用试图去编写display.drf文件,可使用现成的PDK,详见附录中的PDK安装。
通常,在PDK的说明文件中,能找到这6个环境变量的设置说明(.cshrc文件的设置还应参看软件的安装说明,详见附录)。
针对NCSU工艺库的环境配置在下一节中有说细说明。
3.2电路图设计工具Compose
当完成了一系列的安装(IC5141、Hspice、NCSU库、OSU库安装),就可以启动Cadence软件,进行IC设计了。
3.2.1启动与CIW
启动Cadence软件的命令有很多,不同的启动命令可以启动不同的工具集。
由于icfb能启动IC5141中的绝大多数工具,因此最常用的启动命令是icfb。
1、为设计建立一个子目录
假设你的家目录是/home/suli,你的所有IC设计准备存放在/home/suli/design目录下,并将本章的所有IC设计存放在/home/suli/design/ncsu子目录,则应先为设计建立这个子目录。
方法如下:
打开终端,当前目录即是家目录(/home/suli),然后进行如下所示的操作。
$mkdirdesign
$cddesign
$mkdirncsu
$cdncsu
2、工艺库和Cadence的环境配置
IC设计必须要有工艺库的支持,本章的设计例子和实验均使用NCSU工艺库。
有关NCSU工艺库的安装详见附录。
本章假设NCSU工艺库已安装在/home/suli/ic_lib/ncsu-cdk-1.5.1子目录中。
针对NCSU工艺库进行Cadence环境配置的方法如下:
1)在家目录(/home/suli)中的.cshrc文件中加上:
#.cshrcforNCSUCDS1.5.1(这一句是注释)
setenvCDK_DIR/home/suli/ic_lib/ncsu-cdk-1.5.1
2)把下列二个文件拷贝到工作目录(/home/suli/design/ncsu)下:
/home/suli/ic_lib/ncsu-cdk-1.5.1/cdssetup/cdsinit/home/suli/ic_lib/ncsu-cdk-1.5.1/cdssetup/cdsenv
并把拷入的cdsinit和cdsenv文件分别改名为.cdsinit和.cdsenv(即前面加一个点)。
3)把/home/suli/ic_lib/ncsu-cdk-1.5.1/cdssetup/cds.lib拷贝到工作目录(/home/suli/design/ncsu)下,并在拷入的cds.lib中加入Cadence自带的必要的库,如下所示:
INCLUDE$CDS/share/cdssetup/cds.lib
DEFINEsample$CDS/tools/dfII/samples/cdslib/sample
3、IC5141的启动
经过上述准备,在工作目录(/home/suli/design/ncsu)下键入
$icfb&
经过一段时间就会出现ic5141的启动界面,然后出现如图3-2所示的CIW(CommandInterpreterWindow)窗口。
图3-2CIW窗口
从CIW窗口就可以调用许多工具并完成相应任务。
它的用户界面包括以下几个部分:
1)Log文件:
显示使用的软件名,以及log文件位置。
如图3-2中的最上一行是:
icfb-log:
/home/suli/CDS.log
2)菜单栏
3)输出域:
输出Cadence对用户命令的反应
4)输入域:
可用来输入Skill命令(Cadence公司开发的一种命令)
5)鼠标按钮提示:
显示捆绑在鼠标左中右三键上的快捷键
6)窗口号
3.2.2建库
1、建库
有两种方法可以进入如下图3-3所示的建库窗口(CreateLibrary)。
方法一:
直接在CIW窗口中进行File->
New->
Library,即进入图3-3所示的建库窗口。
方法二:
先在CIW窗口中进行Tools->
LibraryManager,就会弹出如下图3-4所示的库管理器窗口(LibraryManager),再在LibraryManager窗口中进行File->
Library也可进入图3-3所示的建库窗口。
图3-3建库窗口
在图3-3中,输入你要建的库名(本例是INVERTER5)。
由于我们使用NCSU的TSMC0.18工艺库,应选择“Attachtoexistingtechlibrary”,并点选“TSMC0.18CMOS018/DEEP(6M,HVFET,sblock)”,如图3-3所示。
然后点OK。
2、建单元(Cell)和视图(View)
在图3-4所示的库管理器(LibraryManager)中点击新建的库名(INVERTER5),再在菜单栏中进行File->
Cellview,便会出现如下图3-5所示的新建单元窗口。
图3-4库管理器窗口
在图3-5所示的新建单元窗口中,输入单元名(CellName),再在Tool中选择Composer-Schematic(电路图设计工具),ViewName中就会自动填上相应的ViewName为schematic,点OK就可以出现如下图3-6所示的电路图编辑界面。
图3-5新建单元窗口图3-6电路图编辑界面
3.2.3电路图编辑界面及使用方法
在如图3-7(显示的是一个CMOS反相器)所示的电路图编辑界面中,主要有三个区域:
菜单栏,工具栏和电路图绘图区域。
工具栏的用法已标在图3-7中,可见工具栏是比较齐全的,应用这些工具栏可以画出需要的电路图,它的具体用法在下节的示例中将有具体的介绍。
图3-7电路图编辑界面的工具栏用法
3.2.4电路图绘制使用示例一(单级CMOS反相器)
本节用一个具体的例子(单级CMOS反相器),介绍电路图的绘制方法。
CMOS反相器在新建库中的库名和单元名都是INV,图3-7显示的是最后的完成图。
所需的元件列表如下(在库NCSU_Analog_Parts中);
pmos在P_Transistors中;
nmos在N_Transistors中;
vdd与gnd:
在Supply_Nets中;
vdc与vpulse:
在Voltage_Sources中;
cap在R_L_C中。
从电路图编辑窗口菜单中,选择“Add”->
“Instance”或点击工具栏中的放置实例或用快捷键i,便出现如图3-8(左图)所示的窗口。
在Library域,选择NCSU_Analog_Parts,点Browse,出现图3-8(右图)所示的窗口元件列表,从元件列表中就可以得到需要的元件。
图3-8放置实例窗口
电路图的具体画法如下:
1)放置PMOS。
按照上面的元件列表,找出我们在电路图中所需要的元件,在图3-8(右图)中双击P_Transistors,便可出现如图3-9(左图)所示的放置PMOS窗口,此时电路图上就会出现PMOS的图标。
选择pmos4,即出现如图3-9(右图)所示的PMOS数据设置单。
在PMOS数据设置单(图3-9的右图)中改好PMOS的宽度,在电路图上的相应位置上单击,就完成了PMOS的放置。
2)放置NMOS。
在图3-9中点击上边的(Goup1level),便可回到放置实例窗口(图3-8),然后双击N_Transistor,可得到放置NMOS窗口(类似于PMOS窗口)。
选择nmos4,即出现NMOS数据设置单(类似于PMOS),修改NMOS宽度和放置NMOS的方法也与PMOS完全相同。
3)放置vdd及gnd符号。
按上述同样的方法回到图3-8。
从元件列表,找到vdd及gnd的放置窗口,如图3-10,即可完成vdd和gnd的放置。
4)放置vdc及vpulse。
按同样的方法找到vdc及vpulse的放置窗口,如图3-11所示,改好电源的spice参数,然后完成vdc及vpulse的放置。
图3-9放置PMOS窗口
图3-10放置vdd及gnd
图3-11放置vdc及vpulse
5)放置负载电容Cap。
按同样的方法找到Cap的放置窗口,如下图3-12,填入电容值,然后完成Cap的放置。
6)放置输入输出端口。
“Pin”或点击工具栏中的放置端口或用快捷键P,便出现如下图3-13所示的窗口,填好端口名(IN和OUT),并使之与端口方向(分别为input和output)的选项一致,即可完成输入输出端口的放置。
到此我们已经完成了电路图里的所有元件的放置,剩下的就是元件的合理安排放置和元件之间的连线了。
7)连线。
”Wire(narrow)”或点击工具栏中的放置细线或用快捷键w,便可以将已经放置好的元件连接起来。
最后连接好的完成图如图3-7所示。
8)检查与保存。
选择“Design”->
“CheckandSave”,如果电路图有绘制问题,会报告出错。
至此我们就完成了单级反相器的电路图。
图3-12放置Cap
图3-13放置端口
3.2.5电路图绘制使用示例二(层次结构的五级CMOS反相器)
通过前两节的学习,我们已经基本掌握了电路图的一些简单画法,也基本熟悉了电路图的编辑界面及其使用方法。
下面将以五级反相器为例,进一步讲述有层次结构的电路图绘制方法。
它的具体画法如下:
1)为五级CMOS反相器建立名为INVERTER5的库。
2)在INVERTER5库下,为单级CMOS反相器建立单元名为INVERTER的单元。
3)绘制单元名为INVERTER的单级CMOS反相器的电路图。
图3-14显示的是最后的单级CMOS反相器完成图。
注意到在图3-14最上方,显示该单级CMOS反相器的库名为INVERTER5,单元名为INVERTER。
它的具体画法与上节所讲的单级反相器的画法类似,这里就不再累赘了,检查无误后保存。
图3-14CMOS反相器的单元电路图
4)为单级CMOS反相器(INVERTER)建立符号视图(Symbol)。
回到LibraryManager窗口,选中库名为INVERTER5的单元INVERTER后,在菜单栏中进行File->
Cellview,便会出现类似于图3-5所示的窗口(现在单元名为INVERTER)。
将Tool中的值选为ComposerSymbol,ViewName中就会自动填上相应的ViewName—Symbol,点OK后就会出现如下图3-15所示的Symbol绘制界面。
5)画Symbol图。
在图3-15所示绘制界面的菜单栏中,进行Add->
Shape->
Line或在左边的工具栏中选择放置直线,就会出现如下图3-16所示的窗口(左边的视图),选择所画形状的类型为Line,就可以进行直线的绘制了。
在电路图中左键单击以确定第一个端点,再左键单击以确定直线的另一个端点。
在未按ESC之前可重复绘直线。
画好直线后,再选择所画形状的类型为circle。
就可以进行圆的绘制了,以圆心—半径的方式确定一个圆。
完成图如下图3-16所示。
图3-15Symbol绘制界面
图3-16画Symbol中的圆与直线等
6)添加输入输出端口(Pin)。
在绘制界面的菜单栏中进行Add->
Pin或在左边的工具栏中选择放置端口,就会出现如图3-17所示的界面(左边的视图),填好它的端口名称,并选好方向就可以在电路图中进行端口的放置了。
它的端口名称和端口方向应与电路图(图3-14)的完全一致。
画好的端口如下图3-17所示。
图3-17画Symbol中的端口
7)添加标签(Lable),在图3-17的绘制界面的菜单栏中进行Add->
Lable或在左边的工具栏中选择放置标签,就会出现如下图3-18所示的界面(左边的视图),在Label中填好标签的名称,就可以在电路图中添加标签了。
至此,单元的Symbol已经画好,如图3-18所示,检查无误后保存。
接下来我们就可以调用它,绘制五级反相器的电路图。
图3-18添加Symbol中的Lable
8)新建五级反相器电路图。
回到LibraryManager窗口,选中INVERTER5,在菜单栏中进行File->
Cellview的操作,出现如图3-19所示的窗口,填入图3-19所示的CellName(INV5),ViewName(schematic)与Tool(Composer-Schematic)。
点OK后出现如下图3-20所示的窗口,选择放置实例,进行图3-20中的操作即可完成五级反相器的放置。
9)完成五级反相器的电路图。
按与6)相同的步骤放置五级反相器的输入输出端口,再进行连线,检查无误后保存,至此就完成了五级反相器的schematic图,如图3-21所示。
通过以上的操作,我们已经掌握了五级反相器的画法步骤,这也是其他层次结构的电路图的绘制方法,应熟练掌握这些方法。
图3-19新建五级反相器电路图
图3-20放置五级反相器
图3-21五级反相器的电路图
3.3HSPICE仿真
电路图设计好后,其功能是否正确,性能是否优越,必须通过电路模拟才能进行验证。
3.3.1AnalogArtist介绍
Cadence提供了一个优秀的电路模拟软件AnalogArtist。
AnalogArtist通过Cadence与Hspice的接口调用Hspice对电路进行模拟。
此外,AnalogArtist还可调用Cadence公司开发的Spectre和UltraSim等快速模拟程序。
1、HSPICE
1972年美国加利福尼亚大学柏克莱分校开发了用于集成电路的电路模拟程序SPICE。
其后,出现了SPICE的各种版本,HSPICE即是其中最成功的电路模拟程序之一。
目前HSPICE已成为工业界标准的精确电路仿真器。
2、Spectre
Cadence公司的specter提供快速,准确的SPICE级仿真,它已集成于Cadence公司的Virtuoso设计平台(IC5141包含Virtuoso平台),射频仿真有很强的功能。
它是Multi-ModeSimulation(MMSIM)中的一个关键程序。
3、UltraSim
UltraSim是Cadence公司的快速SPICE全芯片仿真器。
为大型自定义数字,模拟混合信号,射频,内存和系统芯片设计提供晶体管级验证,速度快,精度一般。
集成于Cadence公司的Virtuoso设计平台。
它也是Multi-ModeSimulation(MMSIM)中的一个关键程序。
本节仅介绍作为工业界标准的HSPICE使用方法。
Spectre与UltraSim的使用方法类似于HSPICE仿真器。
3.3.2通过AnalogArtist调用HSPICE仿真
假设单级CMOS反相器电路图已绘制完毕,详见3.2.4节,下面以该CMOS反相器为例,介绍通过AnalogArtist调用HSPICE的仿真方法。
1、仿真环境的设置
进入cadence的库管理器,打开前面已经完成好的单级CMOS反相器电路图,见图3-22(上图)。
在Composer-schematic界面中,进行Tools→AnalogEnvironment,即可打开如图3-22(下图)所示的ADE(AnalogDesignEnvironment)窗口。
这是IC5141调用Hspice、Spectre与UltraSim等电路仿真器的主要工具。
图3-22ADE(AnalogDesignEnvironment)窗口
下面介绍在ADE(AnalogDesignEnvironment)窗口下进行仿真环境的设置方法,其操作步骤如下:
1)选择仿真器。
打开菜单栏的Setup选项,如图3-23所示。
Setup菜单项有Design、Simulator/directory/host、Temperature与ModelPath等,主要菜单项的功能如下:
(1)Design项:
选择所要模拟的电路图。
(2)Simulator/directory/host项:
选择仿真器,选项有cdsSpice、hspiceS、spectreS等等。
若用HSPICE,则选择hspiceS。
(3)Temperature项:
设置电路的工作温度。
(4)ModelPath项:
设置MOS管等器件模型的所在目录路径,在所设定的路径下寻找电路图所用的器件模型。
通常工艺库的PDK会自动设置好该目录路径。
我们只需选择仿真器为hspiceS即可,操作步骤为Setup→Simulator/directory/host→hspiceS,如下图3-23所示。
HSPICE仿真时,会产生各种输出结果与中间数据。
ProjectDirectory指定仿真的运行目录(用户可更改)。
图3-23仿真模型选择窗口
2)选择仿真分析类型。
打开菜单栏的Analyses选项,有ac、dc、tran、noise四个选项,分别对应的是交流分析(ac)、直流分析(dc)、瞬态分析(tran)和噪声分析(noise)。
交流分析是分析小信号电流与电压和频率之间的关系,因此在参数范围栏可选择的是频率。
直流分析是分析直流电流或电压变化时的电路特性,在参数范围栏是选择直流电流或电压。
Tran分析是分析电路随时间变化的瞬态响应。
这里选择仿真分析类型是瞬态分析,操作步骤为Analyses→Choose→tran,具体操作如下图3-24所示。
仿真结果输出时间从0到600ns,步长0.1ns,设置方法也见图3-24所示。
图3-24仿真分析类型选择窗口
3)选择输出观察点。
操作步骤为Outputs→Tobeplotted→selectedonschematic,如图3-25所示。
然后在电路图中用左键单击连线,即可选择输出电压,例如IN和OUT。
用左键单击器件的一个端口(不是单击连线),即可选择输出电流(流过此器件端口的电流),例如流过电容C0的电流。
选择后的输出观察点列表将显示在ADE界面上,如图3-26所示。
图3-25选择输出观察点窗口
2、运行仿真
操作步骤为Simulation→Run,或按如图3-26所示工具栏中的图标。
如果仿真运行成功,会显示“...successful.”字样,如图3-27所示。
图3-26运行仿真窗口
图3-27仿真运行成功
3、波形显示
当仿真运行成功后,就会出现类似于图3-28所示的仿真波形图。
如果仿真运行后,还想显示其它信号波