Cadence学习笔记-第二章-瞬态仿真

瞬态仿真可能计算量最大,相比较直流工作点仿真和交流小信号仿真。(想当然的理解)

2.1 基本功能介绍

瞬态仿真会经常涉及到精度和速度的折中。
控制精度可以通过改变容差(?)、积分方式、步进大小等参数
但我只会moderate和conservative。。。

还可以对电路初始状态,输出数据保存量等条件参数设置。
这里可能要学习一下,虚拟机内存老是超,可能是自动保存了太多仿真结果。

2.2 仿真参数设置

2.2.1 基本参数设置

1、stop time 仿真时间设定
默认t=0开始,所以只需要设置终止时间。
单位是s,可以加个m、u、n、p

2、Accuracy Defaults 仿真精确度和速度设定

可选择三种仿真精确度:宽松的(liberal),适中的(moderate),保守的(conservative)

“liberal”的仿真速度最快,但是精确度最低。这种精度的仿真适合于数字电路或者是变化速度较低的模拟电路;
“moderate”作为仿真器默认的设置,其精确度类似于用 SPICE2 计算的仿真结果;
“conservative”具有最高的精确度但速度最慢,适合于敏感的模拟电路仿真。

上述三种系统默认的精度设置实际上包含容差(reltol),相对参考(relref),积分方式(integration method),最大时间步长(maxstep),截断误差比(lteratio)等参数,具体设定如表 2.1 所示。在仿真日志文件中,都可以看到相应的参数设置情况。

具体参数的意义,我估计我是用不到这一步。。。他后面会说,但我就不看了

2.2.2 高级参数设置
高级设置如图,有点复杂其实。
Cadence学习笔记-第二章-瞬态仿真_第1张图片

1、“Options”
“Spectre”仿真软件允许读者能够自定制仿真控制参数,包括时间步进,精确度,积分方式等高级设置。主界面能更改的参数其实很少,但是点进options,东西很多。

2、“SIMULATION INTERVAL PARAMETERS”

“start”:仿真开始时刻。仿真器默认开始时刻为 0s。
“outputstart”:输出波形时刻。如果用户仿真时间很长,而只需观察部分时间段内系统瞬态特性,可以通过该参数控制数据输出。(算是实用功能)

3、“TIME STEP PARAMETERS”

“step”:最小的时间步进。默认值为 0.001×(终止时刻-起始时刻),也就是说默认把过程变为1000步
“maxstep”:最大时间步进,根据“errpreset”中精度设定取得默认值
这个就不知道什么意思了。。。

4、“INITIAL CONDITION PARAMETERS” 初始条件,电容和电感属于储能元件,状态与时间有关,有时候需要设置初始条件。

用户可以利用设置节点状态的初始化语句(ic statement)或电容、电感等模型内的初始条件参数 (ic parameters) 两种方式为瞬态分析设置初始条件。
如果没有特殊设置,仿真器将采用直流分析(DC analysis)的结果作为初始条件。

“ic”:设定通过何种方式设置初始条件。
① ic=dc:忽略任何设置的初始条件,直接采用直流分析的结果。
② ic=node:忽略电容、电感等器件上设置的初始条件,而通过“ic statement”设置的初始条件将被采用。
③ ic=dev:忽略由“ic statement”设置的初始条件,电容、电感上的初始条件将被采用。
④ ic=all:两种初始条件都将被采用。当设置条件发生冲突时,“ic parameter”比“ic statement”的优先级更高。

也就是说可以通过两种方式设置初始条件,但是在这里只设置采用哪种方式。

一旦用户指定了初始条件,“Spectre”仿真器将通过一次直流分析来计算电路的实际初始状
态。在这个过程中,“Spectre”根据初始条件在相应的节点上施加一个电压源和电阻串联。当读
者通过“ic statement”来描述电路初始状态时,有可能存在不一致性问题。比如说在没有电容连
接到地的节点上设置电压或者是在没有电感连接的支路上设置初始电流。如果设置时发生不一致
问题,那么在计算时将发生电路状态突变。也就是说,电路将从实际的初始条件突变到设置的条
件。所以,用读者自定义初始条件时,应当避免上述情况,否则仿真器将会产生收敛性问题。

这里没大看懂,不过估计是用不到这功能。

在上文的说明中,提到了初始化语句“ic statement”和初始化参数“ic parameter”的概念。
“ic parameter”的设置很简单,如果用户打开一个电容的参数设置窗口可以看到“Initial
condition”。在其中填写初始的电容电压即可。注意,这里只能填写电压值。而如果是电感的初
始条件,需要设置的是电流值。

在表 2.2 中,给出了有关器件端口的指代符号。
Cadence学习笔记-第二章-瞬态仿真_第2张图片
“ic statement”的格式是:ic signalName=value .举例如下:
ic Voff=0 X3.7=2.5 M1:int_d=3.5 L1:1=1u
上句表示的是:
在节点 Voff 上的初始电压是 0V;
在子电路 X3 的第 7 号节点上电压值为2.5V;
在 MOS 管 M1 的漏端电压是 3.5V;
在电感 L1 上流过的初始电流是 1μA;

详细部分可以查Cadence文档

“skipdc”:选择跳过直流分析。在没有直流分析的情况下,电路的初始解将采用通解,或是从由“readic”定义的文件中读取初始条件。如果“readic”没有定义,那么将从“ic statement”中获取初始条件。不论是否跳过直流分析,器件上的初始条
件肯定都会被采用。如果一个节点没有被赋予初始条件,将自动被仿真器设置为 0。该参数同样也会引起仿真器收敛性问题。推荐不使用该参数。具体选择项可详见“Spectre Circuit Simulator Reference → 3. Analysis Statements”
具体详见什么什么的,就不去见了,估计也用不到。。。

“readic”:从文件中读取初始条件。

不知道是不是有这么个文件,找了找没找到,先不看了。

5、“CONVERGENCE PARAMETERS” 收敛参数

当电路在仿真时存在无限快的响应速度(例如一个电路节点不存在任何电容),“Spectre”仿真器可能会产生收敛性问题。为了避免这种问题,需要设置“cmin”参数给该节点设置一个合理的对地电容值。

比较容易理解,但是值得思考的是平时学电路没有考虑过这种问题。。。对每个节点增添对地电容,实际上应该是给充放电加了一个易于处理的时间,但对于实际电路活动应该还是很小,不影响电路功能,但是方便了算法,大概先这么理解。。。

“readns”:从文件中读取电路瞬态仿真的初始估计解。
“cmin”:设定每个节点对地的最小电容。
当对一个电路进行多次仿真时,建议使用“write”和“readns”参数。并且将两者的文件名命名相同。这将使直流分析的收敛的速度加快。

不大懂,只知道设置了个参数,这里readns大概是输入一个文件?

6、“STATE FILE PARAMETERS” 状态文件参数
状态文件(State File)主要有两个用处:
A、 将保存下来的状态文件用于后续的仿真分析中。比如在一次瞬态分析中,保存下终止时刻的信息,在下一次瞬态分析中,能够以该时刻作为起始点继续做后续时间端的分析。
B、 用户能够利用状态文件自动完成初始条件的更新。

上面说的write文件,就是这里的
“write”:将瞬态分析的初始状态解写到指定的文件中去。
“writefinal”:将瞬态分析的最终解写到指定文件中去。
“ckptperiod”:在指定的周期去作周期性的分析。

说实话,不太懂,再说一句,应该用不到

7、“INTEGRATION METHOD PARAMETERS” 积分方式参数

该参数用于设计人员根据仿真速度和仿真精确度选择合适的积分方式。“Spectre”仿真器提
供 3 种不同的积分方式:“backward-Euler”,“Trapezoidal”,“The second-order Gear”。根据这 3
种方式一共组合出 6 中模式,分别为“euler”,“traponly”,“trap”,“gear2only”,“gear2”,“trapgear2”。

各有特点,有的可以实现高精度,有的对容差容忍度很小,有的速度较快。适用于不同的电路,比如对于高
Q的谐振器,需要选用特定的算法。但是我估计也不太能用的到。

8、“ACCURACY PARAMETERS” 精确度参数

“relref”:相对收敛标准的参考,而默认值是从“errpreset”得到。包括几个选项,具体就不看了
“lteratio”:比率系数,用于计算 Newton 容差中的 LTE 容差。也不太懂。。。

9、“ANNOTATION PARAMETERS” 注释参数

“states”:统计学分析。在实际芯片生产过程中,工艺的变化会影响到产品的性能。
而统计学分析则帮助设计师把握这种工艺和性能之间的关系。在设计时,如果采用
的器件模型带有统计分析参数,既是说这些模型中带有表征工艺误差的数据,就可
以进行统计学分析。这种分析的实质是对工艺参数设置不同的数值后多次仿真,就
可以找出设计对工艺的依赖程度。这种统计学分析也被称作蒙特卡罗分析

10、OUTPUT PARAMETERS

“Spectre”仿真器一般情况下会把所有仿真数据都保存下来。但有时候并不需要所有的数据量。
“Spectre”允许用户选择保存需要的数据。当然,如果需要得到更精确的结果,也可以增大数据输出量。可以如下几种方式来控制数据保存量:略。。。

这里本来有一些问题,因为我的仿真结果总是会全部保存然后占用很多空间然后不知道怎么处理,我以为是默认设置全部保存了,但是看了看这里,又看了看仿真设置,发现也没有异常的设定,很迷惑。。。

11、NEWTON PARAMETERS

“maxiters”:在每个时间步最多进迭代多少次。
“restart”:如果有任何条件发生变化,是否从最开始重新计算直流解。如果不重新计算,将直接采用上一次的初始猜测。
不太懂

12、CAPTAB PARAMETERS

“captab”: 电容列表参数,界面如图 2.7 所示。在完成一次“Spectre”仿真后,用户能够得到有关电路负载电容的信息。在瞬态分析中,用户能够通过“infotimes”参数来指定在某些时刻点保存电路中的电容信息。如果没有特殊指定,仿真器将默认保存终止时刻的电容列表。如果点击该参数,会显示对该参数的细节设置。

仍然不懂,不过也没必要看现在。。。
他给了一个例子,差不多能看懂,虽然不知道是干嘛的,遇到了再说,估计遇不到。。。

2.3 常用于瞬态仿真的激励信号源及其参数设置

这里介绍几种常用于瞬态仿真的激励源。包括脉冲信号、分段信号、指数信号、正弦信号等。这些激励源都可以在“analogLib”中找到。

2.3.1 脉冲信号“vpulse”
“vpulse”信号用于产生周期性方波。在模拟电路设计中,可用于做为 MOS 管开关的控制信号,也可用来表示电源上电或者电源跳变过程等。
该参数列表包括两部分“Property”和“CDF Parameter”。

“Property”部分在从“analogLib”中选中信号源后由系统自动填写
Cadence学习笔记-第二章-瞬态仿真_第3张图片
延迟时间不知道是干嘛用的。。。也许就是为了不让他从0开始变化?

2.3.2 分段信号“vpwl”

当用户需要自己定义线性分段波形是是可以利用“vpwl”信号源。它允许用户能够定义分段时刻和该时刻的电压值。该信号源的设置参数和“vpulse”信号基本相同。

没用过,看例子貌似是定义一些点,会自动把点连接起来,形成线性的电压。

2.3.3“vexp”

指数信号,给了一个例子,体会一下:
Cadence学习笔记-第二章-瞬态仿真_第4张图片
Cadence学习笔记-第二章-瞬态仿真_第5张图片
值得注意的是,第二段并不是只与第二段参数有关,而是在第一个指数变化的基础上乘了另一个指数变化,不太直观,说实话,因为从第一段之后,后面就越来越难以控制了。

2.3.4“vsin

正弦信号也是一种在瞬态仿真中常用的信号。在该信号的参数中,“Damping factor”的单位是“1/s”。正弦信号也是在交流小信号分析(AC Analysis)中重要的激励源。用户需要区别的是瞬态信号激励和交流信号激励不同的含义。
Cadence学习笔记-第二章-瞬态仿真_第6张图片
阻尼因子定义了一个指数的衰减,如下图:
Cadence学习笔记-第二章-瞬态仿真_第7张图片

2.3.5“vsource”

“vsource”激励源是一种通用型电压源,可以用于完成上述所有激励源的功能。在其中“source type”菜单中选择所需要的激励源即可,同时按前述的方式填写各激励源的关键参数。

特点大概是不需要更改电路结构。

2.4 瞬态仿真实例

采用最简单的 RC 充放电电路来完成一次瞬态仿真,该电路图如图 2.15 所示。电阻和电容都采用“analogLib”中的理想电阻模型和理想电容模型。激励源是“vpluse”周期性方波。采用“conservative”的精度。由于没有设置初始条件,仿真器会先执行直流分析,将其结果作为初始解,仿真去结果如图 2.16 所示。
Cadence学习笔记-第二章-瞬态仿真_第8张图片
注意这里,初始条件是直流分析,这里看到,初始条件是Vo=0,也就是说这里的直流分析是把Vin=0带入了,得到直流结果,作为初始条件,
大概前面所说的直流分析作为初始条件都是这样吧。。。

总的来说,瞬态仿真目前只需要moderate还是conservative,里面乱七八糟的设置不太需要理解,因为还用不到
对于激励源,也不太用的到自定义形状的源,用正弦和方波比较多。

你可能感兴趣的:(Cadence,模拟电路)