12013-11-0412013-11-04刘涛E-mail:ttlyz@sjtu.edu.cn数字集成电路理论与设计En22013-11-0422013-11-04声明本课件所引用任何素材,包括但不限于文字图片等,其版权均归原作者所有,这里不一一列出,一并致谢!32013-11-0432013-11-04第四章SPICE与MOS管模型42013-11-0442013-11-04主要内容SPICE概述HSPICE使用HSPICE语法MOS管模型52013-11-04SPICESimulationProgramwithIntegratedCircuitEmphasis1972年由UCBerkeley的电气工程和计算机科学系开发发展迅速,PSPICE,HSPICE等62013-11-04HSPICE最初由Meta-Software开发,现属于Synopsys工业界最广泛使用的IC设计工具模型较多,仿真精度高,收敛性强支持Bsim3v3、Bsim4等深亚微米级纳米级MOSFET主要应用于电路级仿真、分析,辅助调整电路参数,得到延时及功耗估计72013-11-04HSPICE使用流程1.用windows的记事本新建一个文件,并将其扩展名修改为.sp,例如改名为inv.sp;2.选中并右键选择打开方式,选写字板或记事本,然后编写hspice代码。3.用HSPICE进行仿真,并查看仿真结果注意:有些版本中,.sp文件必须在全英文路径下。82013-11-04HSPICE使用流程运行HSpuiA-2009.09(其它版本类似)点击OPEN,导入编写好的“inv.sp”文件92013-11-04HSPICE使用流程点击Simulate,开始仿真,将弹出一个运行框。仿真运行完毕,该框会自行消失。102013-11-04HSPICE使用流程点击主界面EditLL,查看.lis输出文件里面是否有error,有则修改代码,重新仿真112013-11-04HSPICE使用流程点击Avanwaves,查看仿真结果122013-11-04HSPICE使用流程如果软件的安装及网表代码的编写都正确,则会弹出如下两个框:132013-11-04HSPICE使用流程点击选中小窗口里仿真类型、需要输出的电流或电压节点,结果会在大窗口里显示。142013-11-04输入输出文件152013-11-04数量级的工程符号162013-11-04输入文件的例子172013-11-04输入文件的例子182013-11-04HSPICE的输入输入行格式•文件名、语句、等式的长度不能超过256字符;•上标和下标将被忽略;•对英文字符大小写不敏感•用加号(+)表示续行,此时加号应该是新续之行的第一个非空格字符;•星号(*)和美圆符号($)可以引出注释行,但*必须是每行第一个字母,而$一般跟在一个语句后,并与语句有至少一个空格。192013-11-04HSPICE的语句标题语句(.TITLE语句)•一般形式:.TITLEstringofupto72characters•例:POWERAMPLIFIERCIRCUITTEST•若用户不需要标题,则第一行必须空出,否则第一行的其它HSPICE语句被作为标题行,而不被执行。202013-11-04HSPICE的语句结束语句(.END)•一般形式:.ENDcomment•注意“.”不能少,它是结束语句整体的一部分。若一个HSPICE输入文件包含有几个HSPICE的运行,则每一个HSPICE运行的最后都要加上.END语句。212013-11-04HSPICE的语句注释语句•是用户对程序运算和分析时加以说明的语句。在列出输入程序时会打印出来,但不参与模拟分析。该语句可放在输入文件标题语句以后的任意位置加以注释。•一般形式:*commentonalinebyitself•或HSPICEstatement$commentonthesamelineasandfollowingHSPICEinput222013-11-04HSPICE的语句调用工艺库文件•.lib‘filepath/filename’entryname•.lib所调用的文件一般由芯片加工厂提供;•文件包含有所用工艺下所允许使用器件的模型参数;•文件是仿真计算的依据。•entryname是模型库的名称•同一工艺下可能会有多个不同的模型库;•分别对应于电路不同的工作环境(加工偏差);232013-11-04HSPICE的语句引用网表文件•在输入文件中用.include语句引用其它网表文件:•对于可重复利用的模块,写成子电路的形式,保存在单独的文件中供不同电路调用;•可以使用第三方原理图绘制工具来产生网表;•便于层次化模块化设计;•便于设计验证。•.include‘filepath/filename’242013-11-04HSPICE的语句使用子电路252013-11-04HSPICE的语句.model引导模型说明语句•.MODEL模型名元器件类型元器件参数•例如:nmos模型•.modelmod1nmosVTO=1.0KP=4.5E-5+LAMBDA=0GAMMA=0.4TOX=1.0E-7+NSUB=4.0E+15LD=0.06UCJ=2.0E-4MJ=0.5+CJSW=2.0E-10MJSW=0.4CGSO=1E-10+CGDO=1E-10CGBO=2E-9262013-11-04元件描述一般性规则元件名:以关键字母起始、不超过16个字符的元件标识;节点映射表:依次排列的接口节点;参数表:元件参数赋值,不写明则取默认值。272013-11-04无源元件及有源元件282013-11-04激励源Hspice的独立源分为直流源、交流源、瞬态源,分别在直流、交流、瞬态分析中起作用。直流源还在交流、瞬态分析之前的工作点分析中起作用。可用混合源同时包含直流与交流。292013-11-04信号源直流源•Vxxxnode1node2DC5V交流源•Vxxxnode1node2AC1V90混合•Vxxxnode1node2DC=5AC=190302013-11-04信号源正弦电压源•形式为:Vxxxnode1node2sin(VOVPFREQTDDFPHASE)•VO:直流部分的偏置值•VP:交流部分的振幅•FREQ:频率•TD:延迟时间•DF:阻尼系数•PHASE:初相位例如:V1absin(0.5V2V1000HZ000)312013-11-04信号源周期性方波电压源•形式如下:Vxxxnode1node2PULSE(V1V2tdt1t2pwperiod)•–V1初始值•–V2峰值•–td延迟时间•–t1上升时间•–t2下降时间•–pw脉冲宽度•–period脉冲周期322013-11-04HSPICE的语句分析及输出配置•使用.options语句配置仿真参数及输出格式;•使用.temp语句设置电路工作温度;•使用.global语句设置全局节点;•使用.param语句设置全局变量/参数值;•使用.ic和.nodeset语句设置仿真起始条件;•使用.connect语句设置多节点相连。332013-11-04HSPICE仿真控制选项可以通过.options语句来设置仿真及输出方式等•输出控制类•仿真精度类•算法与收敛控制类•硬件资料配置类•输入数据相关类342013-11-04HSPICE仿真控制选项输出控制类352013-11-04HSPICE仿真控制选项其它常用仿真控制选项362013-11-04HSPICE的语句.GLOBAL语句•一般形式:.GLOBALnode1node2node3…•输入文件若定义了.GLOBAL语句,则输入文件所有子电路中与.GLOBAL节点名相同的节点将都被自动定义成有连接关系。一般线路的电源、地被定义成.GLOBAL语句。372013-11-04参数定义一般定义代数表达式定义•代数表达式由常量、其它有意义参数、代数运算符、函数、元件模板等组成,用单引号包括。382013-11-04参数定义自定义函数在输出中定义参数•使用PAR(‘代数表达式’)直接定义输出参数392013-11-04参数定义参数的调用•网单文件中涉及到的数值,如器件参数表、工作温度等可直接用已定义参数或’代数表达式’替换。402013-11-04仿真配置改变使用.ALTER语句更改分析配置•在完成预设条件后需要改变仿真条件重新仿真的情况下可在原输入文件后使用.ALTER语句412013-11-04常用仿真分析类型直流分析:•对DC、AC和TRAN分析将自动进行直流操作点(DCOP)的计算•.DC:直流扫描分析;•.OP:直流操作点分析;•.PZ:极零点分析;•.SENS:直流小信号敏感度分析;•.TF:直流小信号传输函数分析。•在进行直流分析时可以用.NODESET语句设置节点仿真起始电压,加快仿真收敛速度。422013-11-04直流分析:•.DC语句•对指定的变量在指定的范围内进行扫描,每给一个变量的扫描点,就对电路进行一次直流分析计算。对哪个变量扫描,哪个变量就是自变量,即仿真图形里的横坐标。例如对MOS管的Vgs进行DC扫描,检测Ids,则仿真图形得到MOS管的转移特性曲线Ids-Vgs•.DCVin-0.50.50.01–表示对电压源Vin从-0.5V到0.5V进行线性扫描,步长为0.01V常用仿真分析类型432013-11-04直流分析:•工作点分析.OP•此语句规定计算电路的直流工作点。这时电路中的电感按短路、电容按开路处理。设置了该语句,仿真的输出生成文件里可观察到电路的完整直流工作点。•无论输入文件中有无.OP语句,程序在进行直流、交流和瞬态分析时,都要自动进行直流偏置点分析。常用仿真分析类型442013-11-04直流分析:•极/零点分析.PZ•供电路进行极点和零点分析的语句•.PZ语句的一般形式:.PZoutputinput•其中:–PZ表示进行极/零点分析–input表示输入源,可以是任何独立电压或电流源名–output代表输出变量,可以是任何节点电压V(n)或支路电流常用仿真分析类型452013-11-04直流分析:•直流灵敏度分析.SENS•对每一个规定的的输出变量相对于相关的电路参数做直流小信号灵敏度分析•每一次电路模拟中只能执行一个.SENS分析,若输入文件中有多个.SENS语句,则HSPICE只执行最后一个.SENS语句。•一般形式:.SENSov1ov2...其中:ov1ov2代表直流灵敏度分析中的分支电流或节点电压常用仿真分析类型462013-11-04直流分析:•直流小信号传输函数分析.TF•定义了直流小信号分析中输出与输入的比值,输入电阻值和输出电阻值.•每一次电路模拟过程中只能用一个.TF语句,若输入文件中有多个.TF语句,则HSPICE只执行最后一个.TF语句常用仿真分析类型472013-11-04交流分析:•交流分析是指输出变量作为频率的函数•.AC:交流扫描分析;•.NOISE:噪声分析;•.DISTO:失真分析;•.NET:网络分析;•.SAMPLE:采样噪声分析。常用仿真分析类型482013-11-04交流分析.AC:•一般在电路中只能设一个非零交流电源(AC源),交流分析时语句所对应的信号源就为该交流电源,无需再列出。•.ACLIN101100HZ200HZ–线性扫描,扫描频率初值是100HZ,终值是200Hz,中间共有101个扫描点。•.ACDEC201MEG100MEG–10倍频程扫描,扫描频率初值1MEG,终值100MEG,每10倍频程含20个扫描点。常用仿真分析类型492013-11-04瞬态分析:•瞬态分析是指计算各输出变量(电压、电流等)随时间变化的规律•0~25ns,步长0.1ns,25~40ns,步长1ns;从10ns开始输出结果。•UIC表示使用.IC语句设置的值做为仿真起始值,不进行OP计算常用仿真分析类型502013-11-04目前Hspice主要使用两种系统定义输出方式•.P