常用分析
- 1. 概述
- 2. 直流初始化和工作点分析
- 2.1 电路初始化(.ic)
- 2.2 初始状态语句
- 初始条件语句.IC 和.DCVOLT
- 节点电压设置语句.NODESET
- 2.2 直流工作点分析(.op)
- 基本语法
- 示例
- 2.3 直流扫描分析 (.dc)
- 基本语法
- 示例
- 2.4 其他类型的直流分析
- 3. 瞬态分析(.TRAN)
- 基本语法
- 示例
- 4. 其他仿真分析相关语句
- .alter 语句
- 数据驱动的分析(.data)
- .option 语句
1. 概述
输入网表文件中的第二个重要内容就是指定分析的类型。
对电路性能进行分析,进而对电路设计起到指导性作用,这是电路仿真的意义所在。
HSPICE提供的电路的性能分析包括:直流分析(直流工作点、直流扫描分析、灵敏度分析、小信号输出函数分析等);交流分析(交流小信号分析、小信号失真分析、交流噪声分析等);瞬态分析(瞬态分析、傅里叶分析等)及蒙特卡罗(Monte Carlo)分析和最坏情况(WAST CASE)、温度特性等分析。
从工具手册目录来看,HSPICE涵盖各种类型的分析,如下所示:
一些更加具体的分析类型如下:
电路的分析类型描述语句由定义电路分析类型的描述语句和一些控制语句组成,如直流分析(.OP),瞬态分析(.TRAN)等分析语句,以及初始状态设置(.IC),选择项设置(.OPTIONS) 等控制语句。
HSPICE 中的所有分析语句和控制语句都必须以“.”开头,各语句间的次序可随意且可多次设置。
2. 直流初始化和工作点分析
HSPCIE能够进行的直流仿真包括以下内容:
2.1 电路初始化(.ic)
在执行 .op
,.dc
扫描,或者是.ac
,.tran
分析的时候,HSPCIE的第一步都是设定所有节点的直流工作点。为此,工具会执行以下工作之一:
初始化是仿真的基础。HSPICE中的任何仿真都是从已知节点电压(或对未知电压的初始估计)和一些支路电流开始,然后迭代地找到精确的解。
接近精确解的初始估计值增加了收敛解的可能性和减少仿真时间。
在瞬态分析中,如果.tran
命令中没有指定UIC
参数,HSPICE就会先使用电路的直流等效模型来计算直流工作点,然后将得到的直流工作点作为初始估计值去计算瞬态分析中的下一个时间点。
尽管 Hspice 会用默认估计值对电路初始化,某些时候需要人为设置某些节点的初始值,以使电路求解能够收敛或进入期望的工作状态,这些初始值的设定是通过 .ic
和.nodeset
命令来实现。
(对于有源器件而言,为了让你发挥特性,除了给定输入信号之外,还要给定额外的电源让其处于工作状态。在不加输入信号的时候,电路所处的状态就是初始状态,初始状态不同,有源器件的特性也是不同的。比如,MOS管的输出特性曲线、转移特性曲线,为了使用MOS管的放大作用,就需要利用偏执电路来使其处于特定的状态,这个特定的状态应该就是这里的"直流工作点"。)
2.2 初始状态语句
设置初始状态是为在电路模拟中计算偏置点而设定一个或多个电压 (电流) 值的过程。在模拟非线性电路、振荡电路及触发器电路的直流或瞬态特性时,常出现解的不收敛现象,当然实际电路不一定没有解。其原因是偏置点发散或收敛的偏置点不能适应多种情况。设置初始值最通常的原因就是在两个或更多的稳定 工作点中选择出一个,使模拟顺利进行。
初始状态的设置除了在元器件描述语句中使用的 IC=…
以外,还可用 .IC
和 .DCVOLT
及 .NODESET
语句来实现。
初始条件语句.IC 和.DCVOLT
.IC
语句或.DCVOLT
语句是用来设置瞬态分析初始条件的,并取决于.TRAN
语句中是否规定了参数 UIC
。该语句有两种不同的解释。
1.当.TRAN
语句中规定了UIC
参数时,HSPICE不去计算初始直流工作点, 而用.IC
语句中规定的节点电压计算电路中的初始条件。这和每个器件语句中规定的 IC 参数是完全等效的,但更为方便。这时仍规定一些 IC=…值,在器件语句中规定的 IC=…值优先于.IC
语句的值被考虑。由于在瞬态分析前没有计算直流偏置(初始瞬态)解,如果要用这些值来计算器件的初始条件,就应在.IC
语句中仔细设定各点的直流电压值。
2.当.TRAN
语句中未规定 UIC
参数时,HSPICE 在瞬态分析前先计算直流工作点。这时.IC
语句中指定的节点电压仅当作求解直流工作点时相应的节点初始值。而在瞬态分析时,对这些节点的电压限制就取消了。
一般形式:
.IC V(node1) = val1 V(node2)= val2…
.DCVOLT V(node1) = val1 V(node2) = val2 …
节点电压设置语句.NODESET
.NODESET
语句是用来帮助直流解的收敛,并不影响最后得到的工作点(对多稳态电路除外)。一旦由该语句在指定的节点上给出了规定的电压后,HSPICE先按这些节点电压来求解直流工作点,在解收敛后就去掉这些约束条件继续选代,直到算得真正的解为止。所以,.NODESET
语句提供了节点电压的“猜测值”。此语句对双稳态或非稳态电路的直流计算收敛可能是必须的,它可以使电路摆脱“停顿”状态,而进入所希望的状态。在模拟过程中 NODESET 电压仅被用在第一步迭代中。
一般形式:
.NODESET V(node1) = val1 V(node2)= val2 …
.NODESET node1 val1 node2 val2 …
在初始条件的设置中共有三种形式:IC = ..
.、.IC
和.NODESET
。在电路模拟中,若有这三种或三种语句共存时,HSPICE 进行电路特性分析时优先考虑的次序是
(1) IC = … (2) .IC (3) .NODESET。
如.IC
语句和.NODESET
语句共存时,.IC
语句将取代.NODESET
语句。
2.2 直流工作点分析(.op)
模拟电路中的直流工作点也叫静态工作点,是指三极管放大电路中,交流输入信号为零时,电路处于直流工作状态,这些电流、电压的数值可用BJT特性曲线上一个确定的点表示,该点习惯上称为静态工作点Q 。
设置静态工作点的目的就是要保证在被放大的交流信号加入电路时,不论是正半周还是负半周都能满足发射结正向偏置,集电结反向偏置的三极管放大状态。
通过改变电路参数就可以改变静态工作点,如果静态工作点设置的不合适,对交流信号放大的时候就可能会出现饱和失真(静态工作点偏高)或者是截止失真(静态工作点偏低)。
基本语法
HSPICE中进行计算电路直流工作点的语句是.op
,基本语法格式如下:
① 对于需要计算直流工作点的分析,如瞬态分析,无论是指定了 .op
语句,工具都会事先去计算直流工作点;
② 每一仿真中,只能包含一个.op
语句
③ 使用.op
语句可以输出电路节点电压,内容和使用.SAVE
命令保存的节点电压是一样的,都是保存在*.ic0
文件中。一般情况下,使用 .op
的命令的时候,就不要再使用 .save
命令了,避免冲突。
示例
如果只是用.op
,不带任何参数的情况下,工具会计算并保存全部直流工作点信息。
2.3 直流扫描分析 (.dc)
对指定的变量在指定的范围内进行扫描,每给一个变量的扫描点,就对电路进行一次直流分析计算。对哪个变量扫描,哪个变量就是自变量,即仿真图形里的横坐标。例如对MOS管的Vgs进行DC扫描,检测Ids,则仿真图形得到MOS管的转移特性曲线Ids-Vgs。
使用.DC
语句可以进行的直流分析包括如下内容:
基本语法
示例
例 5 是对电阻 xval 和温度进行组合扫描,从 1k 到 10k, 步长 0.5k 扫描电阻 xval, 从 25℃到125℃线性地取 5 个点扫描温度。
2.4 其他类型的直流分析
3. 瞬态分析(.TRAN)
瞬态分析是与时间有关的电路特性分析,计算电路各输出变量(电压、电流等)随时间变化的规律。
电路一般由电压源或者电流源驱动。电压源连接到电路,需要一定的时间才能达到稳定状态。换句话说:电压或者电流需要一些时间才能达到所需要的值。这个过渡的时间或者瞬态时间在微秒到几毫秒的范围内。在这个过渡时间内对电路和电压行为的研究称为瞬态分析。
HSPICE的瞬态分析流程如下:
基本语法
TSTOP 是终止时间,START 是初始时间,如果省去 START,HSPICE 用缺省值 0.0。 瞬态分析总是从时间为零开始,在时间为零到 TSTART 的时间间隔内,瞬态电路分析仍进行(为了达到一个稳态),但没有输出,而且瞬态分析值没有存储起来。 在 TSTART 和 TSTOP 间隔内进行的计算才被存储并输出。
示例
4. 其他仿真分析相关语句
除了前面介绍的基础的仿真分析类型外,还可以使用.alter
,option
等命令来对仿真内容进行修饰。
.alter 语句
.ALTER
语句的功能是使用不同的参数和数据再次进行电路仿真。
.ALTER
语句中不能包含.PRINT
、.PLOT
、.GRAPH
等任何输入输出命令,但可以包含所有用于分析的语句,如.DC
、.AC
、.OP
、.TRAN
、.FOUR
、.DISTO
、.PZ
、.TF
等。
.ALTER
子模块必须紧跟文件的结尾并出现在.END 语句前
示例:
将输出负载电容从0.75pF变为1.5pF,然后重复上述过程
.ALTER
中可以包含的内容如下:
数据驱动的分析(.data)
在扫描分析中,还可以使用.data
命令来定义样式更加丰富的扫描数据。
.data
命令的基本语法格式:
扫描分析时的数据调用:
示例:
.option 语句
option
语句的应用范围其实非常广,可以对HSPICE仿真的各个过程进行控制,比如对输入输出的内容和格式进行控制,对仿真的精度和速度进行控制等等。
当然,对于不同类型的分析,.option
也会有一些控制选项,如下所示,这里暂时不展开了,后续有需要的时候再看。
基本语法:
.option opt1 [opt2 opt3 ...]
部分选项示例: