T-spice简介2007.4.16SPICE模拟的基本概念电路模拟软件SPICE(SimulationProgramwithIntegratedCircuitEmphasis)最初是由美国加州大学波克利分校的电气工程和计算机科学系开发的,第一版于1972年完成,1981年SPICE2G.5完成,80年代初随即传入我国。被业界广泛使用,已经成为事实上的标准Spice的具体功能§电路级和行为级仿真§直流特性分析、灵敏度分析§交流特性分析§瞬态分析§电路优化(优化元件参数)§温度特性分析§噪声分析§傅立叶分析§MonteCarlo,最坏情况,参数扫描,数据表扫描§功耗、各种电路参数(如H参数、T参数、s参数)等可扩展的性能分析用SPICE进行电路模拟的种类对电路进行直流(.DC)、交流小信号分析(.AC)、瞬态分析(.TRAN)等分析,其它分析类型都是由此派生出来进行非线性直流分析(DCAnalysis)计算当直流电源电压(或电流)变化时电路中直流工作点的变化Spice的交流小信号分析是一种线性频域分析。程序首先计算电路的直流工作点,以确定电路中非线性器件的线性化模型,然后在用户指定的频率范围内,对此线性化电路进行频率扫描分析,故也称之为交流扫描分析。交流小信号分析能够计算出电路的幅频和相频响应,或频域传输函数。瞬态分析是一种非线性时域分析,它可以在给定激励信号(或没有任何激励)的情况下.计算电路的时域响应。瞬态分析时,电路的初始状态可由用户自行指定.如果用户不指定,则程序自动进行直流分析,用直流解做为电路初始状态..sp文件的整体结构(推荐)网表文件的构成网表文件中包括以元件关键字开头的元件语句,以”.”开头的控制语句和以“*”开头的注释语句。用元件语句指定电路的拓扑关系和元件值;用分析控制语句来规定电路的分析类型、模型参数和运行的控制。一、Tspice的网表输入规则1.输入行格式大小写的语义相同。输入的文件行的长度是任意的,但是,为了方便,常常把长的行打断,来改进可读性。在第一列用(+)号表示继续的行。注解提供电路的信息,但是并不作为正式电路描述的一部分来处理。注解通常用称为注解定义符的特殊字符来指示。即使没有注解定义符,T-spice总是把输入文件的第一行看作注解。其它的注解可以放在电路描述中的任何地方。注解可以出现在继续的行间,但是,空白行不可以出现在继续行间。一个注解行不需要加号。几种注解的式样为了与其它spice兼容,允许使用几种注解式样;在任一行的第一列加星号(*),美元号($),或分号(;),表示整行为注解。在任意一行第一列以外的地方加美元号($)或分号(;),但不是星号,表示该行的余下的部分是注解。c语言式样的注解,用定义符(/*)和(*/)包围,可以用在任何地方,但不能用于多字词命令(如.printtran)或变量的中间。一个c语言式样注解不局限于一行。2.名称在电路中的所有节点和元件必须用它们的名称来唯一地确认。节点和元件名称有以下特点:名称的长度无限制(但可能受硬件限制)。除制表号,空格号,分号(;),单引号(‘’),大括号({}),圆括号,正斜杠(/),以及等号(=)外,名称可以使用所有其它字符。美圆号($)可以出现在名称中但不能单独用做名称。名称为大小写敏感。例如名称VDD与Vdd和vdd不同。模型名称不能用数字开头。2.1保留名称Tspice使用gnd,GND,Gnd和0为默认系统地的保留节电名称。这些节点的所有例化体都连接在一起,被看作相同的节点,该节点的电位为0伏特。以下关键字(任意的大写和小写字母的组合)不能用作名称acbltbitibusbusidcexpinoiseoffonoiseparamspiepieipwlpolypulserrepeatroundroundingsffmsinsinitransfer2.2元件名称元件名以元件的关键字母开头。以X开头的名称表示一个子电路。M1表示一个MOS管,V1表示一个电压源一个特定元件可以在输入文件中用大写或小写字母表示,例如,m或M。但是同一元件的大小写必须在整个文件中保持不变。常用元件名关键字:2.3等级结构的名称等级结构的节点名称用来引用嵌套的子电路节点。节点名称中每个级别用句号(.)隔开。例如,在包含在电路xadder中的子电路xnand的内部节点ing用以下名称指定:Xadder.Xnand.ing3.数字和单位二、T-spice的分析控制语句2.1.title句法:.title[filetitle].title语句用来指定文件标题。除了用.title语句指定文件标题外,文件的第一行不管是什么内容,都将被认为是文件标题而被忽略。2.2.end.endl.ends.end语句:表明电路描述的结束。输入文件在.end命令以后的文字将被忽略。在T-spice输入文件中的.end命令是任选的,加入这个命令是为了与通用的spice的兼容性。.endl语句:表明库定义结束。.endl命令必须与.lib命令相伴随。.ends语句:表示子电路定义结束。.ends语句命令必须与.subckt命令相伴随2.3.global.gIobal命令指定有全局作用域的节点。在子电路定义块的内外,全局节点被认为是同一个节点。地(0,gnd,Gnd,或GND)自动定义为同一个全局节点句法:.globalnode1[node2…]node1,node2,…为全局节点2.4.ic.ic语句指定电路元件的初始条件句法:.icv(para1)=val1[v(para2)=val2]para1:合法的节点名如果.tran语句没有指定uic选项,则.ic指定的元件初始条件将无效。例:对于节点a,b,c,指定初始电压为5伏特(相对于地):.ica=5,b=5,c=52.5.temp.temp语句指定电路的模拟温度句法:.tempTT:温度(单位:℃,默认值为27)2.6.include.include命令把指定的文件中的内容包含到输入文件中。句法:.includefilenamefilename为要包含的文件名称。文件必须在当前日录,或在T-spice的搜寻目录中。可以使用绝对路径或相对路径。例:.includeml2_125.md把1.25um的cmos流程组件模型文件包含到输入文件。2.7.lib.lib命令可以在spice输入文件或spice包含文件中使用,也可以在库文件中使用。在输入文件中,.lib命令指定一个要包含的库文件或库节。在库文件中,.lib命令表示一个库节的开始。句法:.libfile[section]file:库文件名称。文件必须存在于当前目录或T-spice搜寻路径。section:在库文件中定义的库节名称。2.8.model.model命令指定元件模型参数句法:.modelnametype[level=L][paremeter=x…]name:模型名称type:元件类型level:模型级别,具有多级别的元件模型要加级别选项(如MOS晶体管)LEVEL=1常用于数字电路,精度低、速度快LEVEL=2考虑了衬底电荷对电流的影响parameter:参数表对于每个标准元件模型是预定义的例:.modelnchnmoslevel=1指定一个名称为nch的N-MOSFET模型。2.9.op.op命令执行dc工作点计算,会在输出文件中列出一些直流参数和各节点的工作点电压与支路电流、静态功耗。句法:.op执行AC分析,建立电路对小信号输入频率的依赖关系。先计算DC工作点,再在DC工作点上建立线性化的小信号模型,最后测量在频率范围上的电路响应。句法:.actypepointsfstartfstoptype可以取:LIN(线性地变化频率)OCT(8倍程地变化频率)DEC(十倍程地变化频率)例:.acLIN1001K100K表示从1KHZ到100KHZ均匀取100个点对电路进行交流分析2.10.ac2.11.dc执行DC转移特性分析,研究电路中某些点的电压或电流随另一些点的电压或电流变化的函数关系。在指定范围内扫描电流源或电压源,进行转移特性分析,并记录输出。句法:.acsourcevstartvstopvinc[sourcevstartvstopvinc[sourcevstartvstopvinc]]例:.dcvin030.02vdd240.5转移特性分析将按一下步骤进行:第一步,vdd设为2伏特,vin在制定的范围内扫描。第二步,vdd增加到2.5伏特,vin再次在制定的范围内扫描。如此反复进行,vdd直到达到上限。2.12.tran.tran命令执行电路的大信号时间域(瞬态)分析,确定电路对于初始条件和随时间变化的激励的响应。句法:.trantsteptstop[tstart][uic]tstep:允许的最大时间步距tstop:总模拟时间tstart:输出开始时间。在这个时间以后才开始执行.printtran命令。默认值为0如果指定了uic,则spice使用.ic语句指定的参数作为电路初始瞬态条件进行分析,否则spice将首先进行直流工作点分析,并使用这个工作点作为电路的初始状态。2.13.print.print命令打印指定的输出变量如果未指定输出文件名称,结果写到模拟窗口句法:.print[mode][“filename”][arguments]mode:分析模式,有tran,dc,ac,noise“filename”:输出文件名称。必须加双引号。Arguments:变量,指要打印的信息。可取一个或多个数值,取决于mode.printtraninouti1(r2)id(M2)打印瞬态分析结果。瞬态分析结果包括在节点in和out上的电压,流进元件r2的节点1和元件M2的端点drain的电流。2.14.probe.probe命令产生二进制输出句法:.probe[mode][“filename”][arguments]mode:分析模式,有tran,dc,ac,noise。如果省去mode,.probe用于所有的分析类型“filename”:指定二进制输出文件名称。默认的文件后缀是.dat。文件名称必须加双引号。arguments:指定要包括到输出文件中的绘图变量。若省去,T-spice把所以节点的电压和电压源电流都包括在输出文件。例:.probetranv(2)把节点2的瞬态电压保存到二进制文件中2.15.param.param命令定义参数和参数值参数可以用在表达式中代替数值放在子电路定义块中的参数只在子电路定义中有效放在子电路定义块外面的参数全局有效参数必须要使用前定义句法:.paramparameter=x[parameter=x…].parampi=‘4*atan(1)’tf=‘6*sin(pi/2)’.tran‘tf*0.01’‘tf’2.16.option句法:.optionfield=x[field=x…]field有很多选项,若field为:probefilename:指定由命令产生的二进制文件名称,默认后缀为.dat。probesdbfile:指定输出spice网表的S-edit设计文件名称probetopmodule:指定输出spice网表的S-edit设计文件模块名称三、Tspice的元件语句元件语句指定了所描述的器件类型,它所连接的节点以及其物理特性。元件语句用关键字开头。许多语句带有选项和变量。关键字必须在语句的第一列,前面不能有空格。选项和变量间必须用空格或续行号分隔。3.1电容电容是一个两端元件。电容语句中不指定模型。句法:Cnamenode1node2C[M=m]name:电容名称node1:正极node2:负极C:电容量M:倍增因子,表示并联的电容数(默认:1)例:cwirew1gnd82f该例定义一个82毫微微法拉的