电路图详细绘制过程Cadence Schematic QuickStart.docx

上传人:b****1 文档编号:14922071 上传时间:2023-06-28 格式:DOCX 页数:44 大小:3.52MB
下载 相关 举报
电路图详细绘制过程Cadence Schematic QuickStart.docx_第1页
第1页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第2页
第2页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第3页
第3页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第4页
第4页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第5页
第5页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第6页
第6页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第7页
第7页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第8页
第8页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第9页
第9页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第10页
第10页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第11页
第11页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第12页
第12页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第13页
第13页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第14页
第14页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第15页
第15页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第16页
第16页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第17页
第17页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第18页
第18页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第19页
第19页 / 共44页
电路图详细绘制过程Cadence Schematic QuickStart.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

电路图详细绘制过程Cadence Schematic QuickStart.docx

《电路图详细绘制过程Cadence Schematic QuickStart.docx》由会员分享,可在线阅读,更多相关《电路图详细绘制过程Cadence Schematic QuickStart.docx(44页珍藏版)》请在冰点文库上搜索。

电路图详细绘制过程Cadence Schematic QuickStart.docx

电路图详细绘制过程CadenceSchematicQuickStart

模拟设计由Schematic到layout的quickstart

By****************仅供入门者参考

一、Schematic

在一台已经安装Cadence软件,并且已经运行了license的机器上(也可以在PC机上用Xwin软件或者exceed连入工作站,xwin的安装和使用参见附录一),用管理员给你设定的用户登陆,从控制台窗口(右键桌面,tools->terminal可以打开)输入icfb&命令运行Cadence的工具进入icfb界面。

(如果无法进入此页面参考附录一)

图1icfb的主界面

我们以建立一个反相器电路为例子:

在icfb中,任何一个电路,不论是已经存在的可以引用的库,还是用户新建立的一个电路,都是一个library.一个library一般有若干个Cell(单元电路),每个cell有若干个schematic(电路原理)和若干个layout(版图)。

所以,我们要做的第一步,就是先创建一个自己的“库”,File菜单->new->library

图2新建一个库的界面

从这个新建一个library的界面,我们必须输入新建立的库的名称,并且选择好这个库应该存放的目录,然后注意看右边的三个选项,关于新建立的库是否需要链接到TechnologyFile的问题。

首先,这个TechnologyFile一般是指工艺库,由Foundry提供。

如果最终做的电路是需要画出Layout(版图)的,就必须要有工艺库,如果不需要画Layout,那就可以不需要工艺库。

由于我们需要演示这一步,所以就选择Attachtoanexistingtechfile。

(也可以在建立之后,再Attachtoanexistingtechfile)。

输入name:

testinv,确定之后,弹出一个选择techfile的窗口,选择cellTechlib(这个是我们机上的一个工艺库,具体请咨询管理人员)。

现在,我们就已经建立好了一个新的“库”,为了给这个库增加schematic(电路图)和Layout(版图)我们就必须对这个库进行“管理”,从icfb的主菜单(图1)中的Tools菜单->LibraryManage.

图3Librarymanager

在这里,可以看到左边第一栏当中有很多的“库”(如果你发现这里仅仅由自己刚才建立的那个testinv库,或者没有sample和basic库,参考附录二),这些库的路径保存在cadence的设置文件里面,一般由管理员设定好一些公用的库,(如何引用新的库,或者删除某些已经没有必要的引用,后面再叙述)。

现在我们看到了刚刚建立的库testinv也在左边的库列表中,里面没有任何cell(单元电路)。

我们可以新建一个cellview,首选选中testinv这个库,然file菜单->new->cellview

图4newcellview

第一项是Libraryname,也就是这个Cell应该属于那个库,这个一定要注意选中我们刚才建立的“testinv”。

(如果是从图一的File进入,默认选项可能不是testinv),第二项是单元名称,我们填入inv,第三项是viewname我们首先要画的是电路图,所以填入schematic(你也可以填入任意自喜欢的,但是为了方便别人,和自己,最好就是用schematic,如果有多个电路图那么就用schematicxxxxx).第四项是tool选择composer-schematic.确定之后,进入Virtuoso软件的电路图设计界面:

图5schematic绘制界面

电路图的绘制主要是用界面左方一排工具,画一个反相器,那我们需要有两个mos管,一个p管,一个n管,以及电源和地。

P管和n管都是现成的库中已经定义好的,因此需要instance(实例化)一个,第10个工具,是instance,点击出现了一个界面:

图6addinstance

从这个界面中可以从现成的库中选择一个p管单元,在我们的机上,是在samplelibrary当中

图7Browserinstance

选好之后,在图4中填入names(名称)P1,回车,在schematic当中,用鼠标点一下任何一个地方,将会出现一个P管:

图8arrangeinstance

用鼠标左键点击一下器件的中间,可以选中该器件,然后用鼠标的中键按住该器件,从弹出的菜单中选择Properties,(或选注后,点击Q键)可以设置它的属性:

图9器件特性设置

在这个窗口中,上半部分各个属性的意义已经很明确的了(不能修改?

),下半部分是和器件的特性有关系的,最主要的是沟道长度和宽度的设定,下面对各项意义进行解释(仅供参考):

ad:

漏区面积as:

源区面积l:

沟道长度m:

不知道modelname:

器件模型名称nrd:

漏极电阻nrs:

源极电阻pd:

不知道ps:

不知道region:

不知道trise:

不知道w沟道宽度。

设置l=3uw=3umodelname=pmos(特别注意:

要跟.scs文件中的一致)确定。

用同样的方法instance一个n管进来,命名为N1,l和w同样设置成3u,modelname设置成nmos。

继续instant一个vdd和一个gnd,(注意,我们的服务器上这两个cell的库不在sample那里,而在analogLib中)。

现在,全部的器件都已经从库里面调出来了,从左边的工具栏中选择Wire工具,然后用鼠标连线,为什么用“连”而不是用“画”呢,因为这个编辑器是不允许随地“画”线的,步骤应该是,先用鼠标选择wire工具,再点击一下器件的连接点A,然后点击另一个器件的连接点B,这样就可以用wrie把两个器件连接起来了,照此方法把两个管按照反相器的接法连接起来,并接上电源和地。

图10inv

用鼠标中键按住连接栅极的那根线,从出来的菜单中选择Addname,在弹出的对话框中的Names填入input,用同样的方法,把输出的那根线命名为output,然后从Design菜单当中选择,CheckandSave,出现一个对话框,说2warnings这是因为两个栅极没有接上输入,暂时不用理会,这个最简单的反相器电路图就完成了.

在icfb中,有一个重要概念,任何一个电路或者我们平常所说的project,都是以一个library的形式存在,你可以引用这部机上任何一个你具有读取权限的library,同时,你所创建的library也将可以被任何具有读取权限的其他用户引用,为了引用其他的library,我们必须设定这个library的路径,并为之取个library名称,让这个库出现在你的librarymanager(图3)当中,这样就可以在schematic或者立刻layout当中引用了,如何设定新引用的库的名称及路径呢?

图1tools菜单->LibraryPathEditor:

图11librarypatheditor

在这里,我们可以看到,librarymanager当中的所有library都是在这里“登记”过的,在这里删除这些“登记”记录,并不会真的删除这些library,只是会使得你无法再引用它们,如果想要引用列表中没有的库,只需要在这里增加一条记录,设定好名称和路径,就可以了。

所有的这路径信息是保存在那里的呢?

看看自己启动cadence的目录,下面是不是有个cds.lib?

这些库的路径信息就是保存在这个文件当中的,此外cadence还会在启动目录下面生产一系列的log文件,所以,从哪个目录启动icfb这一点也是很重要的,建议在自己的目录下面创建一个Works目录,每次都先进入这个目录再启动icfb,当然,实际的项目开发工作中,可能不同的项目要引用的library是不同的,可以选择当前项目存放路径作为启动icfb的目录。

二、仿真

1.用spetre仿真

仿真,就是用软件来模拟现实的情况,预测在目前软件能够预知的条件下,我们的电路所能够达到的功能和性能。

也就是说,要虚拟使用我们设计的电路。

现在先假设我们的电路已经做成了一个IC并封装好,提供了四个管脚,一个电源,一个地,一个input和一个output。

让我们来设计几个实验来测试这个反相器,是否能够达到我们的要求。

首先是要给我们的ic供电,所以,在VDD和GND之间,接上一个3.3v的电压源。

电压源我们可以从analogLib中instance出一个来,viewname是vdc,系统默认赋予它的名字是V0,把它的DC值设置成3.3v,然后给vdc的正负极分别接上vdd和gnd的symbol(如图2.1.0)。

注意,这里看上去好像电压源并没有和反相器直接连在一起,但是由于系统中所有标记相同的点电位都相同,所以,图中的这种接法等效于直接把V0接到反相器的正负极。

图2.1.0加入电源

(1)直流分析(DCAnalyses)

我们在input管脚接一个可以调节的电压源,使得这个电压源的电压从0升到高到3.3v然后我们测量output端的电压。

同样instance一个电压源出来,接在inpput端,系统默认赋予的名字是V1(图2.1.1).如果这个反相器工作了,那么output端的电压,应该是和input端的电压相反,从接近3.3v一直下降到接近0v。

图2.1.1增加输入电压

现在的问题是,如何让V1从0到3.3变化。

并且得到output的波形。

为了实现这个目的,我们必须先调出cadence公司的仿真工具――spectre.

从图10中的Tools菜单->AnalogEnvironment调出spectre,我们将会看到一个窗口:

图2.1.2spectre

这个就是cadence提供的仿真工具,其实,不仅仅包含了spectre。

但本文只讨论spectre.调出spectre后的第一步,是设置模型库。

图2.1.2setup菜单->modellibrarys调出模型库设置窗口。

图2.1.3setupmodellibrary

在ModelLibraryFile那栏填入:

/user1/BaseArea/sample/model/spectre/demo.scs

如果机上没有这个库文件,可以把附件三存储为demo.scs

Section那栏填入:

TP(要跟scs文件中的一致section:

然后点击ADD,结果如图:

图2.1.4setupresult

点击ok,回到spectre的主窗口。

现在我们要进行dc分析的设置了,从analyses菜单->choose调出分析设置窗口。

选择DC分析,变化类型选择ComponentParameter,Componentname填入V1参数为dc,变化范围是0到3.3(见图2.1.5).

图2.1.5dc分析设置

点击ok.回到了spectre主界面。

到此,已经把仿真环境设置好了。

现在我们要观察output端的波形,如何才能做到呢?

从spectre的outputs菜单->tobeplot->selectfromschematic,这个时候,会切换到schematic窗口,用鼠标点击一下output那条连线,看看发生了什么?

图2.1.6selectontheschematic

没错,output端的颜色变了,标识出它的波形将会被显示。

好了,现在,spectre的窗口已经变成了下面的样子:

图2.1.7设置后的spectre

一切准备就绪,从Simulation菜单选择Netlistandrun.如果一切正常,那么下面的图像窗口将会自动出现:

图2.1.8Output波形(可能有偏差以实际波形为准)

如果,波形没有出来,那么可能是某个过程出了问题。

有可能是模型库的问题,也可能是软件设置的问题,不过,所有的出错都会有报告的,就看看它的报告来排除bug吧。

仿真完了,可能有人还是有点疑惑,那个modellibrary用来干吗的呢?

和我们的电路有什么关系呢?

看看图9那里,器件的modelname属性,我们当时是填了pmos,n管那个则填了nmos.建议你把/user1/BaseArea/sample/model/spectre/demo.scs下载下来,看看这个库对pmos和nmos这两个模型名称定义了什么?

其实,都是bisim3的mos管模型。

Dc分析,除了包含器件参数的仿真外,还可以进行温度仿真,设计变量仿真和器件模型参数仿真。

有兴趣的化可以自己摸索一下。

(2)AC分析

不论你是进行DC还是AC分析,模型库的设置都是必须的,所以,从图2.1.0到图2.1.4的步骤是必须的。

AC分析与dc分析在图2.1.5那里开始不同。

我们必须先明确一下ac分析的目的,所谓的ac分析,就是在一定的静态工作点上,施加一个小信号,然后分析输出的的交流信号,可以看出放大系数,频率响应等的特性。

我们现在来看看这种结构的反相器,放大系数可以达到多少。

认真观察一下图2.1.8的in-out波形(点击一下该图左边的第四个工具,可以比较好地定位,并且能够从下面地状态条中读取当前的坐标),我们可以看到,当输入(横轴)为1.28伏特时,曲线的斜率比较大。

In-out曲线的斜率大意味着什么呢?

其实,就是表明输入的微小变化,可以导致输出比较大的变化,即dVo/dVi,其实,这个就是系统的小信号电压放大系数。

那我们就把V1的直流值设置成1.28v,也就是说把静态工作点设置在这里。

V1的交流幅值设置为1,初始相位为0。

图2.1.9设置交流分析的静态工作点

可能有人会奇怪,如果交流幅值为1v的话,可能会严重影响静态工作点,因为这个”小”信号太大了。

没关系,不论你设置成1uv还是100v,系统都只会给出线性的结果。

为了方便查看结果,我们就设置成1v。

现在我重新调出图2.1.5的窗口,这次,我们选择AC分析。

图2.1.10ac分析设置

设置频率从1变到10G。

注意下面的Enable,如果我们不希望dc和ac分析同时进行的话,就要把dc分析设置那里的enable的勾打掉。

Ok,然run:

图2.1.11ac输出波形

Ac输出是12v,我们的输入小信号是1v,那就表明放大系数是12。

我们把pmos和nmos的宽长比都改成3u/0.7u,再把V1的直流电压改成1.32v,看看曲线有何变化(W=3uL=0.7u别设反了):

图2.1.12ac分析改善

实际上,放大系数和带宽都有所改善。

这主要是因为mos管的放大系数与W/L成正比,而栅极电容的减小,改善了频率特性。

那么为什么要把V1改成1.32v呢?

有兴趣者,自己试试,在ac分析(图2.1.10)那里,把frequency分析改成Componentparameter分析,把V1的dc值设置成分析变量,分析频率为1k,你就可以找到能够让放大系数达到最大的静态工作点,事实上,在dc分析的曲线上,那一点的斜率将会是最大的,想明白这两者的联系,我们就可以把“大信号”与“小信号”联系起来,对模拟设计师来说是非常重要的。

下面,介绍一个对放大器设计非常有用的曲线分析方法,如果你目前不设计运放,而且,也不关系电路的幅频特性,可以先不用看,如果有一天你要设计运放,那么这种分析将是必不可少的。

从spectre的result菜单中选择Directplot->ACmagnitude&phase.

然后会自动切换到schematic窗口,从这里点击output那条连线,致其变色。

然后,再回到spectre窗口,从output菜单选择tobeplot->selectontheschematic.然后,手动切换到波形窗口,我们将看到有两条曲线,一条是以db形式出现的幅频图另外一条是相频图。

点击一下左边工具条中的倒数第二个,可以把两条曲线分开。

现在,有没有让你想起模电书上的波特图呢?

对于模拟设计者来说,频特性是非常重要的,这两条曲线的意义,也将会在以后的运放设计中得到体现。

(3)瞬态分析

至此,读者已经完全可以自己去利用瞬态分析了。

我只想说一点。

瞬态分析,其实应该翻译成时域分析,会比较确切一点。

个人理解J。

(4)小结

Spectre提供了相当丰富的功能,以上只是一些最简单的应用。

有没有注意到图2.1.5以及图2.1.10中的sweepvariable当中有个选项是DesignVariables,这个有什么用呢?

举个例子,我们可以把V1的dc值设置成V1DC,然后在spectre的variables菜单中,增加一个变量名称是V1DC,并把它的值设置成1.32,这就等效于直接在schematic中设置V1的dc值为1.32。

把一个器件的参数设置成为变量有什么好处呢?

第一,这样的话,你就可以从spectre的界面中改变这个值,而不用再到schematic中去改了,run的时候,也可以直接run而不用重新netlist。

第二,也是更重要的,设置成了变量之后,就可以和spectre中的Tools->parametricanalysis功能结合起来使用。

实现类似于mos管特征曲线的分析。

即,有两个或者更多的量在变化是的分析曲线,如图我们希望得到不同Vgs时,Ids随Vds的变化,就可以把Vgs设置成DesignVariable,然后放到Parametricanalysis种。

图2.1.13mos管特征曲线

具体怎么做,就到自己有需要用到这类分析的时候再去摸索吧。

2.用Hspice实现仿真

如果你已经用spectre,不建议看这部分,可以直接看layout。

如果没有specrte的库,那就只好看看这个了。

Hspice仿真只粗略讲讲。

hspice的具体语法,图书馆有书可以借,不用理会是pspice还是hspice的参考书,因为网表文件的写法都是一样的。

现在要导出网表。

回到图1的那个主界面(注意,不要加入spectre仿真时使用的那些电压源),File菜单->export->cdl,在出现的对话筐中,选择需要export的library,点击LibraryBrownsor按钮,选择testinv库,回到导出网表的对话框,点击OK,这样就导出了这个反相器的网表(存放在你启动cadence的目录,文件名称为netlist(即在20064364下)):

里面的有用内容如下:

.subcktinv

MN1OutputInputGNDGNDnw=3l=3

MP1VDDInputOutputVDDpw=3l=3

.endsinv

*号在网表文件中,表示注释,所以,已经注释的那些行没有实际作用,但是仔细阅读那些信息还是很有参考价值的。

我们注意到,导出来的网表,第一行和最后一行为.subcktinv和.endsinv。

这两行表示,中间的电路,是一个子电路,名称为inv。

子电路的概念,如同我们在软件设计中的子程序,可以重复调用。

为什么生成的网表会有这样的语句呢?

别忘了,我们是建立了一个library,而这个library是可以有很多个cell的,所以,inv这个cell,系统默认为是整个library中的一个子电路,所以,自动帮你加上了子电路的标记,而我们现在的这个库,却是仅仅有这个反相器而已,不希望作为一个子电路来使用,所以,我们把这两句注释掉。

(子电路的概念,在以后实际的项目描述中,将会是非常有用的)。

第二行的第一字符串MN1表示一个mos管,这个管名称是MN1,源极接在Output点,栅极接在Input点,漏极接在Gnd,衬底也接在Gnd,后面的那个小写n表示这个晶体管所用的模型的名称为n,后面两个参数表示沟道宽度为3um,沟道长度也为3um。

对于这个反相器,我们来做一个最简单的仿真,就是让输入电压从0到5伏特之间变化,看看输出波形是否有反相器的特性,即由高电平跳到低电平。

现在的这个网表,只有两个三极管,我们需要加入电源和输入信号。

MN1OutputInputGNDGNDnw=3l=3

MP1VDDInputOutputVDDpw=3l=3

Vpowervddgnd5

Vgateinputgnd5

.dcvgate05.1

.end

第三行的语句加入一个直流电源,名字为vpower,接在vdd和gnd之间,电压为5v。

第四行的语句,加入一个电流源接在input和gnd之间作为输入信号,默认电压为5伏特。

第五行,表示我们需要做直流分析,让输入电压vgate从0伏特变化到5伏特,每次增加0.1伏特。

第六行,网表结束标志。

好了,电路描述已经很清楚了,我们知道,所有的电路仿真,都是基于器件模型的,所以,我们必须指定模型库文件(也可以不用指定库文件,而是直接在文件中描述器件的模型):

.lib'/usr1/BaseArea/sample/model/hspice/mod053.lib'TT

这个是在我们服务器上的一个库,后面的TT类似于入口参数。

用于告诉仿真器,使用库文件中的那个部分。

此外,我们还需要指定仿真所用的温度:

.temp25

现在,我们得到的一个可以用于仿真的网表如下:

.lib'/usr1/BaseArea/sample/model/hspice/mod053.lib'TT

.temp25

.optionpostconverge=1scale=1u

MN1OutputInputGNDGNDnw=3ul=3u

MP1VDDInputOutputVDDpw=3ul=3u

Vpowervddgnd5

vgateinputgnd5

.dcvgate05.1

.end

在仿真的过程中,会产生很多的临时文件以及数据文件,所以,不建议直接在home目录下面运行hspice.我们现在到存放testinv这个库的目录下面,找到存放inv这个cell的子目录,在里面建立一个文件夹,名为hspice.,把netlist文件copyto这个目录,并重命名为inv.sp(必须命名为.sp结尾,否则awaves无法识别).在这个目录下运行hspiceinv.sp,将会出现很多提示信息,这些信息非常有用。

Run完之后,如果一切正常,没有提示error,就可以看看波形了,运行awaves&我们就来到了awaves的主界面:

图12awaves

Design菜单->Open选择inv.sp库.然后从弹出的对话筐中选择dc分析的结果:

图13resultbrowser

选择voltages中的input和output信号作为观察:

图14result

这种输入与输出之间的关系曲线,就是典型的反相器特性曲线。

但是这个特性可能不符合你的要求,你希望转换电压再小一点,或者再大一点,这个可以在网表文件种修改器件的宽和长的值来达到目的。

对于这种优化仿真,要记住的一点是:

仿真软件,只能够让你的设计思想定量化、具体化,而不能够代替你的设计思想。

如果你改了一个器件的属性之后,你不知道这种改变,会令最终结果向好的方向发展还是向不好的方向发展,而试图用软件来给你一个定性的结果,那么,这种仿真结果往往是不可靠的。

仿真之前,设计工程师必须有清醒的头脑,知道自己正在做

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 演讲主持

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2