电路模拟实验专题
实验文档
微电子中心
王永生
一、简介
本实验专题基于SPICE(Simulation Program With Integrated Circuit)仿真模拟,讲授电路模拟的方法和spice仿真工具的使用。
SPICE仿真器有很多版本,比如商用的PSPICE、HSPICE、SPECTRE、ELDO,免费版本的WinSPICE,Spice OPUS等等,其中HSPICE和SPECTRE功能更为强大,在集成电路设计中使用得更为广泛。因此本实验专题以HSPICE和SPECTRE作为主要的仿真工具,进行电路模拟方法和技巧的训练。
参加本实验专题的人员应具备集成电路设计基础、器件模型等相关知识。
二、Spice基本知识 (2)
无论哪种spice仿真器,使用的spice语法或语句是一致的或相似的,差别只是在于形式上的不同而已,基本的原理和框架是一致的。因此这里简单介绍一下spice的基本框架,详细的spice语法可参照相关的spice教材或相应仿真器的说明文档。
首先看一个简单的例子,采用spice模拟MOS管的输出特性,对一个NMOS管进行输入输出特性直流扫描。VGS从1V变化到3V,步长为0.5V;VDS从0V变化到5V,步长为0.2V;输出以VGS为参量、ID与VDS之间关系波形图。
*Output Characteristics for NMOS M1 2 1 0 0 MNMOS w=5u l=1.0u
VGS 1 0 1.0 VDS 2 0 5 .op
.dc vds 0 5 .2 Vgs 1 3 0.5 .plot dc -I(vds) .probe
*model
.MODEL MNMOS NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7 .end
描述的仿真电路如下图,
图2-1 MOS管输入输入特性仿真电路图
得到的仿真波形图如下图。
从这个简单的spice程序中可以知道spice电路描述的主要组成部分。 (1) 标题和电路结束语句
在输入的电路描述语句中输入的第一条语句必须是标题语句,最后一条必须是结束语句。在本例中,
*Output Characteristics for NMOS … … …. … .end
←结束语句
←标题
(2) 电路描述语句
电路描述语句描述电路的组成和连接关系,包括元器件、激励源、器件模型等描述,另外,如果电路是层次化的,即包含子电路,电路描述部分还包括子电路描述(.subckt)。
在描述元器件时,要根据类型,采用不同的关键字作为元件名的第一个字母,元器件关键字见下表。如本例中,NMOS管的描述为:
M1 2 1 0 0 MNMOS w=5u l=1.0u
表示的意思为:
元器件关键字x D G S B 模型名 宽=xx 长=xx
其中D:漏结点;G:栅结点;S:源结点;B:衬底结点。
器件模型描述电路中所使用的器件的spice模型参数,语句为.model。如在本例中,
.MODEL MNMOS NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7
其中MNMOS为模型名,以便在元器件调用时使用,NMOS为模型的关键字。
元器件类型 电阻 电容 电感 二极管 NPN或PNP双极型晶体管 N沟或P沟结型场效应晶体管 N型或P型MOS场效应晶体管 GaAs场效应晶体管 电压控制开关 电流控制开关 元器件关键字 R C L D Q J M B S W 互感 K 激励源说明供激励用的源和受控源,比如:V: 电压源; I: 电流源;E: 电压控制电压源; F: 电流控制电流源;G: 电压控制电流源; H: 电流控制电压源,等等。
(3) 分析类型描述语句
分析类型描述语句说明对电路进行何种分析。比如,直流工作点(.op),直流扫描分析(.dc),交流分析(.ac),噪声分析(.noise),瞬态分析(.tran)等等。 (4) 控制选项描述语句
控制选项用于描述spice仿真时的相关控制选项,一般在.option内进行设置,另外还有打印及输出控制选项(.print、.plot、.probe)等等
现将整个spice程序例子标注如下:
*Output Characteristics for NMOS M1 2 1 0 0 MNMOS w=5u l=1.0u
←标题
←元器件描述
(模型名为MNMOS的场效应MOS管M1, 漏结点2、栅结点1、源结点0、衬底结点0, 栅宽5um,栅长1um)
←激励源描述
(连接在1和0结点之间的1V电压源) ←激励源描述
(连接在1和0结点之间的5V电压源)
←分析类型描述,直流工作点分析
VGS 1 0 1.0 VDS 2 0 5 .op
.dc vds 0 5 .2 Vgs 1 3 0.5 ←分析类型描述,直流扫描分析
.plot dc -I(vds) .probe *model
(VGS从1V变化到3V,步长为0.5V; VDS从0V变化到5V,步长为0.2V) ←控制选项描述,打印声明 ←控制选项描述,打印输出
.MODEL MNMOS NMOS VTO=0.7 KP=110U
+LAMBDA=0.04 GAMMA=0.4 PHI=0.7 .end
←器件模型描述,定义模型名为MNMOS
的NMOS类型的模型 ←结束语句
三、Hspice电路仿真 (1+3)
HSPICE的输入网表文件通常为.sp文件,输出文件有运行状态文件.st0、输出列表文件.lis、瞬态分析文件.tr、直流分析文件.sw、交流分析文件.ac等,输出文件有运行状态文件.st0和输出列表文件.lis在每次hspice运行后均有出现,其他的输出文件视spice程序中选择的分析类型而出现,并且可以在波形显示工具中显示,如Avanwaves、cosmos scope等。 输入spice网表(程序)文件和库输入文件能够由一个线路网表转换器或用一个文本编辑器产生。
1.写输入网表文件的规则
输入网表文件的第一个语句必须是标题行,最后一个语句必须是.END语 句,它们之间的语句次序是随意的,除非是续行(行首有“+”的行)必须接在要接下去的行后面。注释行以*打头,可加在文件中的任何地方。 2. 输入文件的编辑
(a)HSPICE 采用自由格式输入。语句中的域由一个或多个空格,一个Tab,一个逗号, 一个等号或一个左/右圆括号分开。
(b)除UNIX 系统中的文件名外,不予区分大写或小写字母。
(c)每行语句长度限于80 个字符以下。
(d)一个语句如在一行写不下,可以用续号继续下去。续行以“+”作为第一个非数值、非空格字符。
(e)输入网表文件不能被“打包”,也不能被压缩。 (f)输入网表文件中不要采用特殊的控制字符。
图3-1 Hspice的模拟流程
1、工具的使用
Hspice可以采用命令行或图形界面的方式执行,命令行的方式如下,
hspice <输入文件>
不生成lis文件,lis文件的内容打印到屏幕上。 hspice –i <输入文件> -o <输出文件名> 生成以输出文件名命名的lis文件。
相对方便的方式是采用图形界面的方式,如下
图3-2 hspice仿真图形界面
按Simulate执行仿真,之后,采用Avanwaves或Cscope来显示波形,分别如下,
图3-3 Avanwaves波形查看软件界面
图3-4 Cosmos Scope波形查看软件界面
2、基本电路分析
下面以下图所示的电路为例子,说明hspice的基本仿真方法。
图3-5 一个基本的共源级放大器的例子
此电路为共源级放大器,负载为电流源,电流源采用电流镜实现,偏置为电阻与电流镜实现的简单偏置。各结点号已标注在图中,其中GND的默认结点号为0结点。
2.1直流仿真
图中电路的直流仿真spice程序如下,
* DC analysis for AMP M1 2 1 0 0 MOSN w=5u l=1.0u M2 2 3 4 4 MOSP w=5u l=1.0u M3 3 3 4 4 MOSP w=5u l=1.0u R1 3 0 100K CL 2 0 5p
Vdd 4 0 DC 5.0 Vin 1 0 DC 5.0
.op
.dc Vin 0 5 0.1 .plot dc V(2) .probe
.option list node post
*model
.MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7
.MODEL MOSP PMOS VTO=-0.7 KP=50U +LAMBDA=0.05 GAMMA=0.57 PHI=0.8 .end
.op是分析直流工作点的语句。此语句在进行电路直流工作点计算时,电路中所有电感短路,电容开路。值得注意的是,在一个HSPICE 模拟中只能出现一个.OP 语句。
.dc 是直流扫描分析。该语句规定了直流传输特性分析时所用的电源类型和扫描极限。
在直流分析中,.DC 语句可进行 a. 直流参数值扫描 b. 电源值扫描 c. 温度范围扫描
d. 执行直流蒙特卡罗分析(随机扫描) e. 完成直流电路优化 f. 完成直流模型特性化
.DC 语句具体格式取决于实际应用需要,下面给出了最常用的应用格式: .DC var1 START=start1 STOP=stop1 STEP=incr1 在本例中, .dc Vin 0 5 0.1,
输入端的电压源Vin从0V变化到5V,步长为0.1V。
.DC语句可以采用嵌套的形式,比如,
.DC var1 START=start1 STOP=stop1 STEP=incr1 var2 START=start2 STOP=stop2 STEP=incr2
下面是做温度扫描的例子, .DC TEMP -55 125 10
下图是此电路的直流扫描结果。可见在1~1.12V区域内是此放大器的高增益区。
2.2交流仿真
图中电路的交流仿真spice程序如下,
* AC analysis for AMP
M1 2 1 0 0 MOSN w=5u l=1.0u M2 2 3 4 4 MOSP w=5u l=1.0u M3 3 3 4 4 MOSP w=5u l=1.0u R1 3 0 100K CL 2 0 5p
Vdd 4 0 DC 5.0
Vin 1 0 DC 1.07 AC 1.0 .op
.ac DEC 20 100 100MEG *.plot ac VDB(2) VP(2) .probe
.option list node post *model
.MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7
.MODEL MOSP PMOS VTO=-0.7 KP=50U +LAMBDA=0.05 GAMMA=0.57 PHI=0.8 .end
交流仿真结果
2.3瞬态仿真
图中电路的瞬态仿真spice程序如下 * TRAN analysis for AMP
M1 2 1 0 0 MOSN w=5u l=1.0u M2 2 3 4 4 MOSP w=5u l=1.0u M3 3 3 4 4 MOSP w=5u l=1.0u R1 3 0 100K *CL 2 0 5p
Vdd 4 0 DC 5.0
Vin 1 0 DC 1.07 sin(2 2 100KHz) .op
.tran .1u 10u
*.plot tran V(2) V(1) .probe
.option list node post
*model
.MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7
.MODEL MOSP PMOS VTO=-0.7 KP=50U +LAMBDA=0.05 GAMMA=0.57 PHI=0.8 .end
大信号瞬态仿真结果:
改为小信号时,注意偏置值的选取。 Vin 1 0 DC 1.07 sin(1.07 0.0001 100KHz)
通过瞬态仿真,可见小信号增益为50倍,约为34dB,和AC仿真结果进行对照,看以发现结果是一致的。同样,相位的结果也是一致的。
2.4 练习
采用本实验提供的某工艺的BSIM模型文献(mix025_1.l)对上述电路的上述分析分别
重新进行仿真,并总结出仿真结果。
提示:模型文件可以采用.lib 在仿真文件里进行引用。
注意:由于更换的模型参数,即更换了工艺,因此电路的性能参数发生了变化,特别要注意的是输入偏置的设置。
四、Spectre电路仿真 (1+3)
Cadence公司的Spectre仿真器的实质和HSPICE等spice仿真软件是一样的,但由于集成了cadence的ADE仿真集成环境,可以在图形界面下操作,使用更为方便和直观一些,比如,不用写spice的网表程序,可以在schematic view中绘制电路图。
这里仍以图3-5的电路作为例子,讲解工具的使用和基本电路分析的方法。
1、工具的使用
1.1 编辑电路图(schematic)
启动cadence的设计环境平台,在命令行提示符($)下执行,
$ icfb &
首先建立一个设计库,tools -> library manager, File -> New -> Library,
在Name内添上lab1,ok后,选择Don’t need a techfile,然后ok。
这样就建立了一个设计库。这里之所以不选择编译techfile,是因为我们只进行电路的设计和仿真,如果还有设计电路的版图,则根据选择的工艺厂家的techfile来进行编译。
然后,在设计库里建立一个schemtic view,在Library Manager菜单 New-> cell view,
填入amp1,view name选schematic,然后ok,则会出现电路图的编辑界面。
插入元器件,选择analogLib中的nmos4 、pmos4、res、cap等器件。
形成如下电路图,然后check and save,如下图。
下面做这个放大器的symbol,Design->Create Cellview -> From Cellview,在弹出的界面,按ok后出现symbol Generation options,选择端口排放顺序和外观,然后按ok出现symbol编辑界面。按照需要编辑成想要的符号外观,如下图。保存退出。
下面建立仿真的电路图cut_amp1。方法和前面的“建立schemtic view”的方法一样,但在调用单元时除了调用analogLib库中的电压源、(正弦)信号源等之外,将此放大器(lab1中的amp1)调用到电路图中,如下图。
下图是添加输入激励源的设置。
在schematic编辑界面,选择Tools-> Analog Environment,出现Virtuoso Analog Design Environment (ADE),如下图
在ADE中,设置仿真器、仿真数据存放路径和工艺库,具体地,
setup->Simulator/Directory/Host… 中选择simulator为spectre,project Directory改为./simulation。 Setup->Model Libraries中Model Library File 找到sm046005-1j.scs文件填入,section部分填typical,如下图,按add,然后ok。
Variables->copy from cellview, 则电路中的变量出现在ADE中Design Variable一栏中,如下图,
至此工具的初步使用已经进行了简单的介绍,下面结合具体的基本电路仿真进行介绍。
2、基本电路分析
2.1直流仿真
结合上面例子,首先设计仿真电路中的变量,vpower=3,vbias=1,va=2,f0=100K。然后选择Analyses->choose,在analysis一栏中选dc,在DC Analysis中选中Save DC operating Point;在sweep Variable中选中Design Variable,variable Name填vbias,在sweep Range, start选0, stop选3,然后ok。
然后,simulation->Netlist and Run,运行仿真。
再后观察仿真波形,这里有两种波形查看工具,一种是WaveScan,一种是AWD。在session->options中进行设置。这里选择AWD。在tools中选择calculator。如下图,
店主vs按钮,在schematic 中选择需要输出波形的节点,如out,然后按plot,得到如下波形,
可见输入偏置在772.5mv~903.7mv的范围内存在一个高增益区,因此输入偏置应设置在这个区域内,改vias从1v到0.86v。
由于在做直流仿真时也选择了Save DC operating Point,因此可以查看电路的工作点,在calculator中按vdc,同时选中Evaluate buffer,比如查看out的电压工作点。也可以查看器件的工作状态,按op,然后在电路中选择需要查看的器件,如I0/M1的vth。
2.2交流仿真
后选择Analyses->choose,在analysis一栏中选ac,注意此时vbias已经选择到了0.82v。 Sweep Variable选Frequency,Sweep Range 选1~100M,按ok。
然后,simulation->Netlist and Run,运行仿真。仿真运行结束后,仍可以采用calculator打印结果。这里采用另外一种方法,在Results-> Direct Plot选中AC Magnitude & Phase,然后在schematic view中点中out,则AC的结果打印如下图。
2.3瞬态仿真
后选择Analyses->choose,在analysis一栏中选tran,
大信号1V时,
小信号0.1mV时,
2.4 练习
修改偏置电流,即修改R0,对上述电路的上述分析分别重新进行仿真,并总结出仿真结果。
注意:由于改变了偏置条件,因此电路的性能参数发生了变化,特别要注意的是输入偏置的设置。
五、实例:放大器的仿真及分析 (2+6)
下面以一个放大器作为实例讨论一些电路设计分析方法。
图4比较器电路
比较器采用单级运放后加一反相器构成,如图4所示。其中Ibias为自偏置电路如图5A所示(注:自偏置电路原理见Razavi书310页,实际工作时要加上启动电路,解释启动电路的原理。),comp_amp为一级运放如图5B所示,inv为反向器。
图5A自偏置电路 图5B运算放大器电路
运算放大器为双端输入单端输出的结构,可以在满足输入和输出摆幅的情况下实现一定的电压增益(考虑其值是多少时满足性能要求)。首先确定所采用管子的宽度(所有晶体管的沟道长度不必为同一值),手工设计:根据拟定的设计指标,确定满足指标的运算放大器各元件的尺寸和所需要的偏置电流的大小(可能需要迭代);
设计偏置电路:采用自偏置电流源技术
a) 选定电路结构;
b) 手工设计:确定各元件的尺寸; c) Spectre仿真(采用TT Corner模型),验证电流源的性能;
将偏置电路和运算放大器电路合在一起仿真(采用TT Corner模型,27o),确定运放的最终性能参数:
a) 开环增益的幅频和相频响应; b) c) d) e)
CMRR的频率响应; PSRR的频率响应; 共模输入范围; 输出电压摆幅;
f) 压摆率; g) 建立时间; h) 噪声; i) 功耗;
采用SS Corner模型,0o仿真温度,重新仿真以上参数。 采用FF Corner模型,80仿真温度,重新仿真以上参数。
图6所示的仿真电路可仿真放大器的交流特性和瞬态特性。采用闭环电路仿开环的方法,通过R0形成负反馈通路从而确定输出共模电平(此时的共模电平实际是V1的直流值),并稳定直流偏置。在这个电路中选择RC时间常数的倒数与Av的乘积小于运放预期的主极点是必须的,即选择大电阻和大电容值(本实验选择1G欧姆电阻和1mf电容,具体见allen的运算放大器仿真)。由于反馈电阻的大阻值,输入的共模会自动调整到和输入V1相等。
o
图6 AC特性仿真
图中输入为正弦波形对其进行相应设置来满足功能,主要包括直流电压值提供输入端的直流偏置、交流AC幅值和相位(通常为1V,相位默认为0)、瞬态电压幅值频率和相位值。具体设置如下图所示:
同理设置电阻电容值和直流电源值(直流电压),后在菜单栏tools—Analog Environment调用仿真工具进行电路仿真。选取仿真工具,添加模型文件并进行仿真设置,下面主要介绍一下仿真的设置,包括交流瞬态tran、交流ac、直流dc、噪声noise,具体如下所示:
大家应该注意到了,在电源的设置中直流电压和瞬态偏置电压(即DC voltage和offsetvoltage)都设置了变量vin。在仿真之前需要在variable中选择edit设置变量值。另一种方法如下图。在 tools项中选择选择parametric analysis选项,合理设置rang type和step control。然后选择analysis中start就可以了。在设置一个电压源时最主要会用到三类参数:交流仿真参数(ac magnitude是交流信号摆幅,一般设为1;ac phase一般用在双端放大器仿真,一端为0另一端为180)、直流仿真参数(dc voltage)和瞬态仿真参数等。仿真器仿真时,这几个状态仿真是分开仿的,各参数互不影响。
下边两图仿真结果就是参数扫描的结果,直流dc仿真可以计算出直流偏置点,从而可以看各点的静态电压和直路的静态电流。交流仿真可以仿真静态工作点的交流特性,主要是直流增益和频率特性,随输入的正弦激励的直流偏置结果如下,上图为幅频图,下图为相频图:
当输入的直流偏置为1.2V时的交流相应如下,从图中可以看出其直流增益为47dB,相位裕度为63o满足稳定性要求(相位裕度为180度减去增益0dB时的相移。另外在比较器应用中并不一定满足相位裕度的要求,因为比较器工作在开环状态)。
瞬态结果如下(瞬态电压幅值为50mV,频率为1K),从图中可以看出输出低电平不能达到0,且与输入的直流电平有关,在不同的直流输入下,输出高电平确基本一样。试分析这些影响并解释原因。
噪声分析主要包括闪烁噪声和热燥声,其输入等效噪声如下:
图7 输入共模范围仿真
无论运放的开环还是闭环模式都可以定义输入输出共模范围,因为运放常工作在闭环状态,这种测量使输入输出CMR更敏感。单位增益结构对于测量和仿真输入CMR是有用的,
如图7所示为运算放大器的输入CMR仿真。其中对输入v1从0到VDD进行参数扫描,观测输出结构,传输曲线的线性部分对应于输入共模电压范围的斜率是1。仿真设置和结果如下:
图8输出共模范围仿真
在单位增益结构中,传输曲线的线性受到ICMR的。若采用高增益结构,传输曲线的线性部分与输出电压摆幅一致。图8为反相增益为10 的结构可用来测试输出CMR。设置同上,结果如下:
图9共模抑制比仿真
图9所示为运放共模抑制比的仿真电路结构,两个相同的电压源Vcm,与单位增益结
构的运放的两输入端连接,V1提供输入共模电平。对输出的结果取倒数可以得出CMRR,这可以用计算器完成原理见Allen运算放大器仿真。仿真设置如上,结果如下:
输入直流电压为1V时共模抑制比
扫描输入直流电压时得到的CMRR
图10 PSRR电源抑制比仿真
图10所示为运放的正电源抑制比的仿真电路结构,运放为单位增益结构,交流输入与电源串联,对其进行AC仿真后取倒数得出PSRR(思考仿真方法的原理,具体见Allen第6.6节)。仿真结果如下:
输入直流电压为1.2V时电源抑制比
输入直流电压变化时电源抑制比
图11 运放建立时间
图11为运放建立时间的仿真电路结构,输出加大摆幅的方波,观测输出的瞬态波形测量建立时间,方波输入信号分别从0V,3.3V变为1.65V。仿真结果如下图:
方波输入从0到1.65V的建立时间 方波输入从3.3V到1.65V的建立时间
图12运放压摆率的仿真电路结构
图12为运放压摆率的仿真电路结构,输入加大摆幅的方波,在这种情况下,输出受电路摆率的影响,而不是输出节点时间常数的影响。观测输出的瞬态波形测量压摆率,运放正输入端是0V到3.3V的方波信号。仿真结果如下
输出波形放大图
正压摆率
练习
完成上述电路分析的仿真,然后考虑改变放大器结构,比如电流源做负载的放大器、或者二级放大器结构,对电路的上述分析分别重新进行仿真,并总结出仿真结果。
注意:如果采用二级放大器,需要特别注意相位裕度,如果相位裕度不够需要考虑相位补偿,如米勒补偿。
附录:实验准备工作
使用lab1或lab2或lab3登录。
bash-2.03$ cp ~yswang/training/env/.bashrc . bash-2.03$ cp ~yswang/training/env/.cdsinit . bash-2.03$ bash
dragon:~ $ mkdir training1 dragon:~ $ cd training1/
dragon:~/training1 $ cp ~yswang/training/hspice_labs.tar.gz . dragon:~/training1 $ cp ~yswang/training/spice_labs.tar.gz .
hspice数据准备
dragon:~/training1 $ gzip -dc hspice_labs.tar.gz |tar xvf - dragon:~/training1 $ cd hspice_labs
dragon:~/training1/hspice_labs $ cp src/*.sp .
spectre数据准备
dragon:~/training1 $ gzip -dc spice_labs.tar.gz |tar xvf -
本文档可在http://albert-ys168.ys168.com 中的training目录下下载。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务