第3章 基于HSPICE的集成电路仿真 图31HSPICE工具的基本仿真流程 HSPICE仿真器是Synopsys公司的电路级仿真工具,采用和标准SPICE描述一致的输入文件。在兼容标准SPICE的基础上,还提供更强大的集成电路仿真分析能力。本章将介绍与HSPICE仿真器相关的流程、工具的使用以及基本电路分析的方法。 3.1流程及规则简介 HSPICE工具的基本仿真流程如图31所示。启动后,HSPICE工具会运行一些脚本文件、检查license、读取配置文件步骤,这几个步骤用户一般不需要干预。此时用户需要输入网表文件,如果网表文件中包括库文件引用,则HSPICE工具同时会读入库文件。然后HSPICE工具分析电路的工作点,进入用户需要的分析仿真。仿真完毕,输出结果并清理文件。HSPICE输入网表文件通常采用.sp文件,输出文件有.st0运行状态文件、.lis输出列表文件、.tr瞬态分析文件、.sw直流分析文件、.ac交流分析文件等。.st0运行状态文件和.lis输出列表文件内容在每次HSPICE运行后均有出现,其他的输出文件根据SPICE程序中选择的分析类型而出现,并且可以在波形显示工具中显示,如Avanwaves、Cscope等波形显示工具。 SPICE网表(程序)输入文件和库输入文件可以由一个电路网表转换器或用一个文本编辑器产生。值得一提的是,HSPICE等EDA工具一般都是基于Linux或UNIX平台的,因此注意网表输入文件的扩展名并不是强制的。SPICE网表输入文件一般遵循与标准SPICE相同的规则,并且提供了强大的功能以及一些具有自身特色的选项。一些基本注意事项如下。 (1) 网表输入文件的第1条语句必须是标题行,最后一条语句必须是.end语句,它们之间的语句次序是随意的,除非是续行(行首有+符号的行)必须接在要接下去的行后面。注释行以*开头,可加在文件中的任何地方。 (2) HSPICE采用自由格式输入。语句中的域由一个或多个空格、一个Tab、一个逗号、一个等号或一个左/右圆括号分开。 (3) 除UNIX、Linux系统中的文件名外,不区分大小写字母。 (4) 每行语句长度一般限于80个字符以下。 (5) 一条语句若在一行写不下,可以用续行号继续下去。续行以+作为第1个非数值、非空格字符。 (6) 网表输入文件不能被“打包”,也不能被压缩。 (7) 网表输入文件中不要采用特殊的控制字符。 (8) 电路信息以及波形输出需要在option中增加如下声明。 .option list node post 其中,list选项表示打印网表元器件、节点连接以及元器件值、电压源和电流源以及参数等; node选项表示HSPICE将打印节点交叉引用对照表,对照表列举每个节点以及连接节点的元器件; post选项表示保存仿真结果以便由交互的波形查看工具显示仿真结果。 (9) 模型文件可以采用.lib进行引用。例如: .lib './library/mix025.lib' TT 在这个例子中,mix025.lib是选取的某个集成电路工艺的SPICE模型文件,引用时需要注意带上路径; TT是选择的模型文件中的section,section用于表明模型的工艺角(Corner)。 3.2HSPICE工具的使用 HSPICE可采用命令行或图形界面的方式执行。在UNIX或Linux系统命令提示符($)下执行$是UNIX或Linux的命令提示符。 $ hspice demo.sp 其中,demo.sp是输入文件,在这种情况下不生成.lis文件,报表文件的内容打印到屏幕上。 $ hspice i demo.sp o demo.lis 在这种情况下,将报表生成以输出文件名demo命名的.lis文件。在Windows操作系统中,启动HSPICE相对方便的方式是采用图形界面,如图32所示,在Design文本框中输入SPICE输入文件。 图32HSPICE仿真图形界面 单击Simulate按钮执行仿真,之后采用AvanWaves或Cscope(CosmosScope)软件显示波形,分别如图33和图34所示,双击相应节点就可以显示波形。在HSPICE工具各个版本中,图形界 图33AvanWaves波形查看软件界面 图34Cscope波形查看软件界面 面会有一些差异,但操作方式是大同小异的。Cscope(CosmosScope)的显示功能要比AvanWaves丰富些。在HSPICE的后续版本中,Linux平台不再支持AvanWaves。 3.3HSPICE基本电路分析 下面以如图35所示的电路为例,说明HSPICE的几种基础仿真: 直流仿真、交流仿真、瞬态仿真。 图35一个基本的共源极放大器 此电路为电流源作负载的共源极放大器,采用电流镜实现电流源,偏置为电阻与电流镜实现的简单偏置电路,放大器的输出驱动一个5pF的电容负载。电路连接的各节点号(节点0到节点4)已标注在图中,其中电路的地节点(gnd)连接到默认节点0的大地节点(ground)。放大器中所有晶体管的尺寸为W=5μm,L=1μm; NMOS晶体管的参数为: VTH=0.7V,Kn=110μA/V2,λ=0.04V-1,γ=0.4; PMOS晶体管的参数为: VTH=0.7V,Kn=50μA/V2,λ=0.05V-1,γ=0.6; 电阻的阻值为100kΩ。 3.3.1直流仿真分析 针对图35电路,采用子电路描述的方式,将放大器AMP作为一个子电路进行描述。 图35电路的直流仿真SPICE描述如下。 * DC analysis for AMP * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 5.0 .OP .DC Vin 0 5 0.1 .print dc V(2) .plot dc V(2) *.probe dc V(2) .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.6 PHI=0.8 .end MOSFET器件模型采用MOS1模型。放大器子电路名称为AMP,其端口名为out、in、vdd和gnd。在例化时,例化名为X1,对应的端口的连线分别为节点2、节点1、节点4和节点0。 .OP是分析直流工作点语句。该语句在进行电路直流工作点计算时,电路中所有电感短路,电容开路。值得注意的是,在一个HSPICE模拟中只能出现一个.OP语句。 采用HSPICE执行仿真,将产生直流工作点分析(.OP)和直流扫描分析(.DC)结果。HSPICE首先会统计元器件模型参数以及电路中诸如MOS晶体管、电阻、电容、独立源等各个元器件的参数,然后分析电路中各个元器件的工作点。这些都会打印到屏幕上或在.lis文件中显示出来。 关于电路中各MOS晶体管工作点的部分报表如图36所示。从中可以得知诸如漏极电流(id)、各端口之间的偏压等工作点信息,进而可以得知gm、gds、gmb等小信号参数数值。还可以发现,M2和M3处于饱和区,而M1处于线性区。为什么M1处于线性区而不是饱和区呢?这是因为在上述SPICE描述中,输入处(节点1)的独立源Vin施加的直流电压值是5V,即M1的VGS=5V,这样使M1进入了线性区。结合后续的直流扫描,可以将Vin直流值设置在1~1.12V,如1.07V。重新进行HSPICE仿真,晶体管工作点的部分报表如图37所示,可见所有晶体管都处于饱和区,这是电路设计所期望的。这样可以通过HSPICE仿真的,OP报表结果,分析电路的直流工作点,调整电路设计以便符合设计目标。 图36静态工作点分析得到的电路中MOSFET工作点情况(Vin=5V) 图37Vin=1.07V时的MOSFET工作点情况 直流分析针对Vin从0V变化到5V,步长为0.1V。通过直流扫描分析,可以得到此放大器的输入/输出特性。执行.print dc V(2)语句后,会在.lis文件或屏幕上打印输出节点2的电压随Vin直流扫描电压变化的数据,如图38所示。图39所示为执行.plot dc V(2)语句得到的采用文本方式显示的图35电路的直流扫描结果。 图38节点2的电压随Vin直流扫描电压变化的数据(部分) 图39采用文本方式显示的直流扫描结果 为了绘制曲线波形图,SPICE需要执行PROBE命令,而在HSPICE中,为了得到更好的曲线波形显示效果,需要增加.option list node post控制语句,执行直流扫描后会产生.sw(或.sw0)文件,就可以配合使用一些图形后处理工具绘制波形图。图310所示为采用AvanWaves打开.sw(或.sw0)文件查看的直流扫描结果。 采用Cscope(CosmosScope)打开结果文件,如图311所示。在Cscope中执行File→Open→Plotfiles菜单命令,弹出Open Plotfiles对话框,选择HSPICE(*.tr*,*.ac*,*.sw*,*.ft*)文件类型,打开.sw(或.sw0)文件查看直流扫描结果,如图311(a)所示。在Signal Manager对话框的子栏中双击v(2),就可以显示节点2的电压随直流扫描电压的变化曲线。执行Graph→Color Map菜单命令,或者在Cscope波形图上右击,在弹出的快捷菜单中选择Color Map,选择Map 2波形配色方案,可以将背景改为白色,如图311(b)所示。同样,也可以通过右击波形曲线,在弹出的快捷菜单中选择Color,改变波形曲线颜色,同时还可以增加Measurement光标,显示效果如图311(c)所示。 图310采用AvanWaves查看直流扫描结果 图311采用Cscope查看直流扫描结果 图311(续) 从这些不同形式的输出结果中可以看出,输入为1~1.12V的区域是此放大器的高增益区。这里详细展示了几种输出控制形式以及波形显示工具,它们对于输出数据的显示与处理各有千秋,视需要选用。后面采用Cscope作为主要的输出波形工具,其他形式的输出结果就不一一赘述了。 【例31】采用某工艺厂家提供的0.25μm CMOS工艺模型文件(mix025.lib)对图35放大器进行HSPICE仿真。输入VGS从0V变化到5V,考查输入/输出特性。 解前面讲述的SPICE描述采用MOS1的MOSFET模型。在集成电路设计过程中,需要根据工艺厂家提供的器件模型开展电路设计。这样需要在SPICE仿真中进行工艺库文件的定义,在HSPICE中,采用以下语句进行工艺库文件定义。 .LIB 'libfilename' section 其中,section是工艺库的工艺角。工艺角用于说明集成电路制造工艺中出现的偏差。例如,对于MOS器件可能出现的工艺角为: 典型(typical); NMOS是快速晶体管且PMOS是快速晶体管(fast NMOS,fast PMOS); NMOS是慢速晶体管且PMOS是慢速晶体管(slow NMOS,slow PMOS); NMOS是快速晶体管且PMOS是慢速晶体管(fast NMOS,slow PMOS); NMOS是慢速晶体管且PMOS是快速晶体管(slow NMOS,fast PMOS)。section的名称没有强制规定,具体名称需要查阅特定工艺厂家的模型文件说明。 电路的SPICE描述如下。 * DC analysis for AMP using 0.25um CMOS process * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd nch w=5u l=1.0u M2 out 3 vdd vdd pch w=5u l=1.0u M3 3 3 vdd vdd pch w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP 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 DC V(2) .option list node post .lib './mix025.lib' TT .end mix025.lib文件要带路径进行说明。这里和仿真用的SPICE描述文件处于同一路径下。TT是工艺的典型工艺角名称,表示典型的Corner。NMOS和PMOS器件模型名称要查阅mix025.lib工艺文件及说明,这里分别为nch和pch。执行HSPICE仿真后,使用Cscope打开.sw0文件,得到采用此0.25μm工艺放大器的输入/输出特性曲线,如图312所示。可以看出,采用不同的工艺,放大器的输入/输出特性发生了变化,为了使放大器处于高增益区,输入可偏置在0.75V。 图312在某0.25μm CMOS工艺下的直流扫描HSPICE仿真输入/输出特性曲线 3.3.2交流仿真分析 根据直流分析的结果,将图35放大器电路的输入直流工作点Vin设置为1.07V,然后对电路进行交流小信号分析。针对图35电路的交流仿真SPICE描述如下。 * AC analysis for AMP * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP 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.6 PHI=0.8 .end .AC语句根据计算的直流工作点,将电路中的非线性元器件(如MOSFET)采用小信号模型进行等效,然后分析电路的频率特性,如幅频特性、相频特性。在本例中,.AC DEC 20 100 100MEG语句表示100Hz~100MHz进行交流扫描分析,每10倍频程扫描20个点。为了能够得到交流仿真的结果,在放大器的输入端施加的输入信号必须包含交流输入成分,如Vin 1 0 DC 1.07 AC 1.0表示在节点1和节点0之间施加的输入电压源Vin的直流偏置为1.07V,而交流输入为1V(单位1)。 采用HSPICE执行仿真,将产生交流小信号分析(.AC)结果文件。采用Cscope打开.ac0结果文件。此处HSPICE描述打印输出节点(节点2)的幅频特性曲线(上)和相频特性曲线(下),幅频特性曲线中输出以分贝(dB)为单位,相频特性曲线的输出单位为度(°),如图313所示。可见随着频率的增加,在高于3dB频率以上,幅频特性以每10倍频程20dB下降,而相频特性从180°(反相)开始发生相移,最大相移约为90°。放大器的3dB带宽约为104kHz。 图313HSPICE交流仿真结果 3.3.3瞬态仿真分析 为了了解在施加瞬态输入激励(如正弦信号)的情况下电路随时间变化的瞬态行为,对图35电路进行瞬态仿真。这里,首先考查在输入端施加偏置为2.0V、振幅为1.0V、频率为100kHz的正弦信号时的电路行为。瞬态仿真SPICE描述如下。 * TRAN analysis for AMP * * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 2.0 sin(2.0 1.0 100K) .OP .TRAN 0.1u 30u .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.6 PHI=0.8 .end 在本例中,.TRAN 0.1u 30u语句表示瞬态仿真的结束时间为30μs,步长为0.1μs,起始时间为0时刻。同样,为了能够得到瞬态仿真结果,在放大器的输入端施加的输入信号必须包含瞬态输入成分,如Vin 1 0 DC 2.0 sin(2.0 1.0 100K)。 采用HSPICE执行仿真,将产生瞬态分析(.TRAN)结果文件。采用Cscope打开.tr0结果文件。在本例中,偏置为2.0V,振幅为1.0V,频率为100kHz的正弦信号输入时的瞬态仿真结果如图314所示。可见当输入信号v(1)幅度很大时,放大器达到了饱和,因而在输出端输出信号v(2)不能得到输入的放大信号。 图314HSPICE瞬态仿真结果(偏置为2V,幅度为1V) 当输入调整为小信号时,并注意偏置值的选取,根据直流仿真的结果,选择1.07V的偏置,正弦信号的幅度为0.0001V,即Vin 1 0 DC 1.07 sin(1.07 0.0001 100K),得到的瞬态仿真结果如图315所示。 图315HSPICE瞬态仿真结果(偏置为1.07V,幅度为0.0001V) 通过瞬态仿真,可见此时放大器处于正确的偏置下,输入偏置为1.07V,输出偏置约为2.045V,这与采用直流扫描得到的输入/输出特性曲线是可以对应得上。在此偏置下,可以对输入正弦信号进行放大。由仿真波形图可知,小信号增益约为50倍(34dB)。与图313的交流仿真结果进行对照,可以发现在100kHz时的增益结果是一致的,同样,相位的结果也是一致的。 【例32】进行NMOS放大器的HSPICE仿真。如图316所示的NMOS放大器,VGS=1V, 图316电阻作负载的NMOS共源极 放大器 VDD=5V,RD=10kΩ。已知NMOS放大器的参数为: W=5μm,L=1μm,VTH=0.7V,Kn=110μA/V2,λ=0.04V-1。进行SPICE仿真: 输入VGS从0V变化到5V,考查输入/输出特性; 在VGS=1.0V的偏置下,并且在驱动CLD=1.0pF的电容负载情况下,考查电路的幅频特性与相频特性; 在VGS=1.0V的偏置下,叠加幅度为0.01V,频率为100kHz的正弦信号,考查输出的瞬态特性。 解电路的SPICE描述如下。 * DC, AC and TRAN analysis for AMP in chapter 3 M1 out in gnd gnd MOSN w=5u l=1.0u RD out vdd 10K CLD out gnd 1p Vdd vdd 0 DC 5.0 Vgnd gnd 0 DC 0.0 Vgs in 0 DC 1.0 AC 1.0 sin(1.0 0.01 100KHZ) .OP .DC Vgs 0 5 0.1 .AC DEC 20 100 1000MEG .TRAN 0.1u 30u .save all .plot dc V(out) .plot dc I(Vdd) .plot ac V(out) .plot ac VP(out) .plot tran V(in) .plot tran V(out) .probe .OPTION list node post *model .MODEL MOSN NMOS VTO=0.7 KP=110U +LAMBDA=0.04 GAMMA=0.4 PHI=0.7 .end 电路的静态工作点报表如图317所示,可见当输入VGS为1.0V时,输出约为4.7059V。 图317电路的静态工作点报表 计算一下当输入VGS为1.0V时输出的电压值。希望将NMOS晶体管偏置在其饱和区,因此,根据MOS晶体管饱和区漏极电流公式,并忽略沟道长度调制效应,VGS=1V,VTH=0.7V,有 ID=12KnWL(VGS-VTH)2=12×110×10-6×5×10-61×10-6×(1-0.7)2 =24.75×10-6A=24.75μA 则 VDS=VDD-RDID=5-10×103×24.75×10-6=4.7525V 这与仿真结果4.7059V很接近。 直流扫描分析的HSPICE仿真结果如图318和图319所示。图318是放大器的电压转移特性仿真结果,可以看到高增益区在0.7~1.8V的输入范围内。 图318放大器的电压转移特性HSPICE仿真结果 图319电源电流IDD随输入变化的HSPICE仿真结果 图319是电源电流IDD随输入变化的仿真结果,IDD与流经NMOS晶体管的电流大小相等,方向相反。可见当输入VGS=1.0V时,支路电流与计算结果相仿。 交流分析的HSPICE仿真结果如图320所示。 图320放大器的幅频特性和相频特性的HSPICE仿真结果 当NMOS晶体管偏置在饱和区时,NMOS放大器的增益可以表示为 Av=-gm(RD‖ro) 从图317的工作点报表中可知,晶体管M1的gm≈196.06μA/V,ro=1/gds=(1/990n)Ω,RD=10kΩ,由此计算得到直流增益Av≈1.95≈5.8dB。可见仿真结果和计算结果一致。 还可以计算一下放大器的3dB带宽,从图317的工作点报表中可知,晶体管M1的ro=1/gds=(1/990n)Ω,RD=10kΩ,那么3dB带宽为 BW3dB=1/[2π(RD‖ro)]=15.9×106Hz 可见仿真结果和计算结果一致。 瞬态分析的HSPICE仿真结果如图321所示。可以看出,当输入施加振幅为0.01V的正弦信号时,输出振幅接近0.0194V,可见增益接近1.94,并且输出信号与输入信号的关系是反相的。这与前述的直流、交流仿真结果及计算结果是一致的。 图321输入节点和输出节点的瞬态分析HSPICE仿真结果 3.4HSPICE电路分析进阶 直流仿真(包括工作点和直流扫描)、交流小信号仿真以及瞬态仿真是电路分析中最常用的基本仿真分析手段,可以得到绝大部分电路的基本电路特性,如数字逻辑门电路的电压转移特性、噪声容限、速度、功耗、时序等特性,而对于诸如放大器的模拟电路,通过这3种仿真手段,构造不同的仿真电路,可以得到直流工作点、输入/输出特性、小信号增益、幅频特性、相频特性、瞬态特性,进而得知相位裕度、带宽、压摆率(转换速率)等特性。下面介绍更多的HSPICE仿真分析手段,借助这些分析手段可以更详细地掌握电路的更多特性细节。 3.4.1噪声仿真分析 在HSPICE中进行噪声仿真,采用.NOISE和.AC语句控制电路噪声分析。噪声分析将产生电路中每个元器件每个频率点的噪声贡献。 针对图35放大器进行噪声仿真。器件模型采用某工艺厂家提供的0.25μm CMOS工艺模型文件(mix025.lib)。在进行噪声仿真之前,应使放大器处于正确的偏置下,根据前述的直流扫描结果,采用此0.25μm CMOS工艺器件的放大器在输入为0.6~0.8V时是高增益区,这里设置输入为0.75V。采用0.25μm CMOS工艺的放大器电路(见图35)的噪声仿真分析的SPICE描述如下。 * Noise analysis for AMP * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd nch w=5u l=1.0u M2 out 3 vdd vdd pch w=5u l=1.0u M3 3 3 vdd vdd pch w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 0.75 AC 1.0 .OP .AC DEC 20 100 100MEG .NOISE v(2) Vin DEC 20 100 100MEG .plot ac VDB(2) VP(2) .probe noise onoise inoise .OPTION list node post .lib 'mix025.lib' TT .end 进行噪声分析的语句为.noise v(2) Vin DEC 20 100 100MEG,输出节点为节点2,等效输入参考噪声的独立源为Vin。按照每10倍频程20个点进行仿真,起始频率为100Hz,结束频率为100MHz。 输出噪声分析结果的语句为.probe noise onoise inoise,表示产生输出等效噪声以及输入等效噪声的结果。 采用HSPICE执行仿真,噪声分析的结果包含在交流分析结果文件中。采用Cscope打开.ac0结果文件。单击Signal Manager结果文件信号列表中的inoise(mag)和onoise(mag),将显示等效输入参考噪声和输出参考噪声曲线。如图322所示,在约10kHz处的输出噪声和等效输入噪声分别为17.447μV/Hz和182.61nV/Hz。另外,在HSPICE仿真的.lis报表中或直接打印到屏幕的结果中,可以找到HSPICE噪声分析起止频率区间内的输出噪声和等效输入噪声的总积分噪声值,如图323所示。 图322HSPICE噪声仿真结果 图323噪声仿真报表结果 3.4.2零极点仿真分析 在HSPICE中采用.PZ语句进行零极点仿真。可以不用说明.OP语句,这是由于HSPICE在进行零极点分析之前会自动进行工作点的分析。HSPICE中的.PZ语句格式为 .PZ ov srcname 其中,srcname是独立电压源或电流源名称; ov可以是节点电压或支路电流。图35电路的零极点仿真分析的SPICE描述如下。 * PZ analysis for AMP * * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 1.07 AC 1.0 .OP .PZ v(2) Vin .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.6 PHI=0.8 .end 进行零极点分析的语句为.pz v(2)Vin,进行从输入信号电压源Vin到输出节点2之间的传递函数的零极点分析。 采用HSPICE执行仿真,在HSPICE仿真的.lis报表中或直接打印到屏幕上的结果中,可以找到零极点仿真分析结果的报表,如图324所示。可见存在一个主极点,在-656.0246krad/s(-104.4096kHz)。这和交流仿真中得到的3dB带宽频率为104kHz的结果是相符合的。在非常远处-65.4557Grad/s(-10.4176GHz)还有一对零极点,并且在传递函数中互相抵消。这是因为HSPICE是分别计算传递函数中的分子和分母,因此会把结果报告出来。 图324零极点仿真报表结果 3.4.3传递函数仿真分析 在HSPICE中采用.TF语句计算工作点下的传递函数以及直流小信号输入输出电阻。同样地,执行传递函数仿真会自动进行电路的工作点分析,因此可以不必说明.OP语句。图35电路的传递函数仿真分析的SPICE描述如下。 * TF analysis for AMP * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 1.07 .OP .DC Vin 1.0 1.12 0.01 .TF V(2) Vin .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.6 PHI=0.8 .end 从前面的直流仿真结果可以得知,此放大器当输入处于1.0~1.12V时为高增益区。因此,这里直流扫描也限定在这个范围内,以便在传递函数仿真报表中可以聚焦这个输入偏置范围内传递函数的特性。执行HSPICE仿真后,传递函数仿真报表如图325所示,可见当输入为1.07V时,放大器的增益为-67.1153,负号表示反相放大,输入电阻为1.000e+20Ω(即认为是无穷大),输出电阻为304.8651kΩ。 图325传递函数仿真报表结果 回顾一下此放大器直流工作点的仿真结果,当输入为1.07V时,如图37所示,可知MOS晶体管M1的gm=220.1475μS,gds=1.5059μS,M2的gds=1.7742μS,根据工作点分析结果,可以计算得到 rout=ro1‖ro2=1/(gds1+gds2)=1/(1.5059μS+1.7742μS)≈304.869kΩ |Av|=gm·rout=220.1475μS×304.869kΩ≈67.116 可见与传递函数仿真分析的结果能很好地对应。同时,这些结果和交流分析中的增益以及带宽等特性都能很好地对应上。传递函数仿真分析可以将不同输入偏置下的小信号增益以及输入输出电阻采用报表的形式直接打印出来,可以快速获知电路的特性。 3.4.4灵敏度仿真分析 在HSPICE中采用.SENS语句分析电路特性相对于电路参数的敏感性。图35电路的灵敏度分析的SPICE描述如下。 * SENS analysis for AMP * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 1.07 .OP .SENS V(2) .SENS I(X1.M1) .print dc V(2) I(X1.M1) .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.6 PHI=0.8 .end 在这个例子中,分析了节点2以及子电路X1中M1的偏置电流随电路参数的变化情况,执行HSPICE仿真后,灵敏度仿真报表如图326所示。其中,考查v(2)对于输入电压在1.07V处的灵敏度,当输入电压变化1个单位,那么v(2)就会变化67.1153,这正好符合当偏置Vin=1.07V时的直流小信号增益。 图326灵敏度仿真报表结果 3.4.5参数扫描仿真分析 HSPICE提供功能强大的扫描仿真(Sweep)手段。下面初步介绍Sweep的基本用法。 HSPICE允许在直流、交流及瞬态等仿真中增加扫描仿真。例如,可以对温度TEMP进行扫描,以便考查电路特性和温度之间的关系。在.DC、.AC及.TRAN等仿真语句后增加扫描说明,格式为 start stop incr> 也可以对参数进行扫描分析。同样地,在.DC、.AC及.TRAN等仿真语句后增加扫描说明,格式为 start stop incr> 针对图35电路,分别考查以下情况: ①进行-40~100℃的温度扫描,考查输入/输出特性以及交流小信号特性; ②改变偏置中电阻R1的阻值,考查偏置对电路输入/输出特性的改变情况; ③改变负载电容,考查瞬态特性的变化。参数扫描仿真分析的SPICE描述如下。 * sweep analysis for AMP * AMP subcircuit .subckt AMP out in vdd gnd .param rbias=100k cload=5p M1 out in gnd gnd MOSN w=5u l=1.0u M2 out 3 vdd vdd MOSP w=5u l=1.0u M3 3 3 vdd vdd MOSP w=5u l=1.0u R1 3 gnd rbias .ends *X1 2 1 4 0 AMP {rbias=50k} .param rbias=100k cload=5p X1 2 1 4 0 AMP CL 2 0 cload Vdd 4 0 DC 5.0 Vin 1 0 DC 1.07 AC 1.0 sin(1.07 0.0001 100KHZ) .OP .DC Vin 0 5 0.1 sweep temp -40 100 20 *.DC Vin 0 5 0.1 sweep rbias 20k 200k 20k .AC DEC 20 100 100MEG sweep temp -40 100 20 .TRAN 0.1u 30u sweep cload 1p 10p 1p *.print dc V(2) *.plot dc V(2) .probe DC V(2) .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.6 PHI=0.8 .end 其中,.DC Vin 0 5 0.1 sweep temp -40 100 20和.AC DEC 20 100 100MEG sweep temp -40 100 20语句分别同时进行温度扫描的直流仿真和交流小信号仿真,温度范围是-40~100℃,步长是20℃。执行HSPICE仿真,随温度变化的直流仿真和交流仿真结果如图327所示。 图327随温度变化的直流仿真和交流仿真结果(-40~100℃) 在输出结果的基础上,可以进一步测量随温度变化特性的曲线。这里,以交流仿真输出的幅频特性为例,绘制低频增益与温度之间的关系。在已经打开.ac0文件并且绘制出v(2)的幅频特性曲线的基础上,在Cscope中执行Tools→Measurement菜单命令,弹出如图328所示的界面,选中dB(v(2))曲线,在X value文本框中输入100,单击Apply按钮,便可绘制出100Hz低频交流小信号增益与温度之间的关系曲线。 图328绘制100Hz低频交流小信号增益与温度之间的关系曲线 如果需要考查电阻R1的阻值对电路输入输出特性的改变情况,那么.DC语句描述如下。 .DC Vin 0 5 0.1 sweep rbias 20k 200k 20k 上述语句表示进行0~5V的直流扫描,步长为0.1V; 同时进行变量参数rbias扫描,范围是20~200kΩ,步长为20kΩ。这里要注意,首先要定义变量参数rbias。执行HSPICE仿真,得到如图329所示的v(2)的特性曲线。执行Tools→Measurement菜单命令测量特性曲线的阈值,在Measurement窗口中单击Measurement项右侧的按钮,选择General中的Threshold(At Y),然后在Y value文本框中输入2.5,单击Apply按钮,得出如图329所示的Thresh_2.5(v(2))结果。 图329随偏置电阻变化的直流仿真结果曲线 如果需要考查负载电容对瞬态特性的影响,那么.TRAN语句描述如下。 .TRAN 0.1u 30u sweep cload 1p 10p 1p 上述语句表示进行30μs的瞬态仿真,步长为0.1μs,同时负载电容cload从1pF变化到10pF,步长为1pF。这里要注意,首先要定义变量参数cload。执行HSPICE仿真,打开.tr0文件并绘制v(2),得到如图330所示的特性曲线。执行Tools→Measurement菜单命令测量特性曲线的阈值,在Measurement窗口中单击Measurement项右侧的按钮,选择Levels中的Peak to Peak,然后单击Apply按钮,得出如图330所示的瞬态波形的峰峰值与cload之间的关系曲线PK2PK(v(2))。 图330随负载电容变化的瞬态仿真结果曲线 3.4.6工艺角仿真分析 在3.3节例31中介绍过,实际的工艺厂家模型文件会提供不同工艺角,以便描述工艺的偏移情况。在HSPICE仿真中,可以采用.ALTER语句更换工艺中不同的工艺角,这样就可以对工艺的偏移对电路性能造成的影响进行仿真分析。以直流仿真为例,进行不同工艺角仿真分析的SPICE描述如下。 * DC analysis for AMP under corners * AMP subcircuit .subckt AMP out in vdd gnd M1 out in gnd gnd nch w=5u l=1.0u M2 out 3 vdd vdd pch w=5u l=1.0u M3 3 3 vdd vdd pch w=5u l=1.0u R1 3 gnd 100K .ends X1 2 1 4 0 AMP CL 2 0 5p Vdd 4 0 DC 5.0 Vin 1 0 DC 5.0 .OP .OPTION list node post .lib 'mix025.lib' TT .ALTER .lib 'mix025.lib' SS .ALTER .lib 'mix025.lib' FF .end 执行HSPICE仿真后,由于进行了3个工艺角的仿真,在工作目录中产生了.sw0~.sw2这3个直流扫描结果文件。用Cscope工具打开这些文件,如图331所示。然后在每个信号列表中双击v(2),得到输出节点相对于Vin的直流扫描结果,如图332所示,可以发现输入/输出特性出现了 图3313个直流扫描结果文件 图3323个工艺角的直流仿真结果 变化,在不同的工艺角下高增益区间是不一样的,也就是说对于这样的放大器,在工艺发生变化时,实现放大功能需要改变输入偏置。这说明图35这样的简单共源极放大器对工艺的容忍程度较差。 3.5本章小结 本章描述了基于HSPICE的集成电路仿真方法。HSPICE是业界作为提交数据的标准电路级仿真工具之一。HSPICE在兼容标准SPICE的基础上,提供更强大的集成电路仿真分析能力。同时,HSPICE采用和标准SPICE描述一致的输入文件,其仿真更具有“原汁原味”SPICE的特点。因此,学习和掌握HSPICE有助于深刻理解集成电路的电路级仿真分析。 HSPICE也在一直发展更新,更多HSPICE功能请读者参考相关的HSPICE用户手册及参考文档。