标签归档:Simulation

仿真

Spectre 仿真 20ms 以上读取数据的问题

这是最近在 Cadence ADE 下面做电路仿真时碰到的一个问题,在经过长时间的瞬态仿真 ( >20ms )后,ADE 无法直接 plot 出节点的波形(或者调用 calculator 也只能得到一部分的数据波形)。

具体的原因大致是由于手上的 Cadence DFII 的版本默认将仿真数据的 PSF 文件设为了 sst2 格式,因而在数据的支持上存在这一 bug。为此,需要将默认的 psf 文件格式修改为 psfbin,即在启动 ADE 之前在 Cadence 的 CIW 窗口键入:

envSetVal(“spectre.envOpts” “simOutputFormat” ‘string “psfbin”)

这样即可消除长时间瞬态仿真的数据问题。

上面的解决方法来源于:http://www.cadence.com/Community/forums/p/14387/25050.aspx

ocean 仿真特定 corner 组合的方法

之前在电路设计中常利用 ocean 脚本来做 corner 的仿真,一般设置时都会包含所有的 corner,像下面的脚本,就把电阻、电容、mos 管的模型中的所有 cornenr 的组合都包括了。

foreach( corner_res list("ff_res" "ss_res")
foreach( corner_mim list("ff_mim" "ss_mim")
foreach( corner_fet list("ff_fet" "ss_fet" "fs_fet" "sf_fet")

)))

但有时,我们并不需要仿真所有的工艺角的组合,而只是希望仿真特定的几组 cornenr 的情况,例如只需要电阻、电容、mos 管的 model 同时在 ff 和 ss 的情况,这时就可以通过类似下面的 Ocean 脚本来进行仿真。

foreach( (corner_res corner_mim corner_fet) '("ff_res" "ss_res") '("ff_mim" "ss_mim") '("ff_fet" "ss_fet")

)

Cadence ADE 中如何实现特定时刻的 AC/STB 仿真

对于一些时变电路,由于没有固定的稳态工作点,因此无法直接对其进行交流(AC)或环路稳定性(STB)仿真分析。此时,常用的方法是利用 PSS 分析找到电路的周期稳态,再用 PAC 或 PSTB 来分析等效的交流特性或环路的稳定性。

但 PSS 的周期稳态求解过程常常需要比较多的迭代时间,与此同时,有时我们仅仅需要的是电路某时刻的特性,因此可以考虑在 Cadence ADE 中直接用 tran+ac/stb 的方式来实现特定时刻的 ac/stb 仿真,具体的方法如下:
继续阅读

关于输出阻抗的仿真

关于电路的输出阻抗,一般可以用spice中的.tf语句在仿真中加以查看,但.tf仿真一般只有输出阻抗在dc或者说零频下的值,那么要如何来查看输出阻抗的频率响应?

其实还是按照计算输出阻抗的方法,在输出节点加上一个ac=1的交流电流信号,通过ac分析来看此节点的电压,实际就是输出接点的阻抗。我们可以以之前谈到的关于super-source-follower电路为例来做些讨论。

下面左图为super-source-follower的电路,我们通过如下的spice语句定义其激励源(包括直流的输入电压和ac的交流电路)


vin in 0 1.25
iout 0 out ac 1
.ac dec 100 10 10g

这样通过smart-spice的.ac的仿真,可以得到如右边所示的阻抗特性,与之前对super-source-follower的分析一致,高频下反馈环路增益下降导致阻抗的上升,之后应该是寄生电容的影响

继续阅读

MOSFET 的 C-V 曲线仿真方法

在电路设计中,常见到利用 MOS 电容做去耦电容(也有利用来做miller补偿的电容),因此对 mosfet 的 c-v 特性曲线有必要进行确认。

关于具体的 c-v 曲线的仿真方法,首先可以从电容的定义(或者说特性)来确定测试方法,这也是 ee240 里面提到的仿真方法。

下图是实现 MOSFET C-V 曲线的仿真的具体电路(图中加上的电容 C1 仅为方便比较)
mosfet c-v曲线仿真电路

在输入节点加入一个电压,做 AC 分析,同时扫描其 DC 值,考虑电容特性:ac 下 i/v=2*pi*f*C;如果令交流电压 v ac=1,选择频率 2*pi*f=1,这时得到的交流电流大小就是电容值,相应的 smart-spice 脚本如下:

vin in 0 ac 1
.ac DEC 10 '0.05/3.14159265' '0.5/3.14159265' sweep vin -2.5 2.5 0.05
.measure ac i_nmos find i(V1) at '0.5/3.14159265'
.measure ac i_cap find i(V3) at '0.5/3.14159265'

注:AC 分析似乎没法对单独的频率点进行分析,所以上面还是对一段频率扫描,最后只取了我们所要的频率点的结果

继续阅读

CMRR 与 PSRR 的仿真

共模抑制比(CMRR:comon-mode-rejection-ratio)和电源抑制比(PSRR:power-supply-rejection-ratio)是运放性能的重要指标,关于他们的具体仿真方法,在Allen书中都有相关的介绍。
最近发觉对这些仿真电路的原理有点模糊(主要还是对于CMRR的仿真电路),在这里拿出来重新温习一下

下图是共模抑制比仿真电路,通过AC小信号分析(两个Vcm相同,都取 AC 1),分析Vo输出的信号

共模抑制比仿真电路
由电路分析看到: Vout=Adm*(V1-V2)+Acm*(V1+V2)/2
代入: V1=Vcm; V2=Vout+Vcm
可以推出:Vout/Vcm=Acm/(1+Adm-Acm/2),近似为:Acm/Adm=1/CMRR
故此,在前述的仿真,输出Vout的倒数即为CMRR

继续阅读