2023年12月16日发(作者:)

上海银利电子有限公司

Pspice教程(基础篇)

Pspice教程课程内容:

在这个教程中,我们没有提到关于网络表中的Pspice的网络表文件输出,有关内容将会在后面提到!而且我想对大家提个建议:就是我们不要只看波形好不好,而是要学会分析,分析不是分析的波形,而是学会分析数据,找出自己设计中出现的问题!有时候大家可能会看到,其实电路并没有错,只是有时候我们的仿真设置出了问题,需要修改。有时候是电路的参数设计的不合理,也可能导致一些莫明的错误!

我觉得大家做一个分析后自己看看OutFile文件!点

上海银利电子有限公司

一.直流分析

直流分析:PSpice可对大信号非线性电子电路进行直流分析。它是针对电路中

各直流偏压值因某一参数(电源、元件参数等等)改变所作的分析,直流分析也

是交流分析时确定小信号线性模型参数和瞬态分析确定初始值所需的分析。模拟

计算后,可以利用 Probe功能绘出Vo- Vi曲线,或任意输出变量相对任一元件参

数的传输特性曲线。

首先我们开启Capture / Capture CIS.打开如下图所示的界面( Fig.1)。

( Fig 1)

我们来建立一个新的一程,如下方法打开! ( Fig.2)

( Fig.2)

上海银利电子有限公司

我们来选取一个新建的工程文件!

我们可以看到以下的提示窗口。(Fig.3)

(Fig.3)

我们可以给这个工程取个名字,因为我们要做Pspice仿真,所以我们要勾选第一个选项,在标签栏中选中!其它的选项是什么意思呢?

Analog or Mixed A/D

PC Board Wizard

数模混合仿真

系统级原理图设计

CPLD或FPGA设计

原理图设计

Programmable Logic Wizard

Schematic

接下来我们看到了Pspice工程窗口,即我们的原理图窗口属性的选择。(Fig.4)

(Fig.4)

上海银利电子有限公司

我们在Creat based upon an existing project 下可以看到几个画版工程选项!其中包括:新的空的画版,带层次原理图的画版等等。

我们可以来选择一个空的工程画版。(Fig.5)

(Fig.5)

这就是我们新的工程窗口设计界面。我们从窗口中可以看到相比Capture / Capture CIS多了几个新的工具栏。而且在工程管理器中,我们可以看到一个Pspice Resources选项!

我们先来熟悉一下这些快捷工具栏的作用!

好了,基本的Pspice的窗口已经设置好了!

我们可以开始来看看我们能用Pspice来做些什么东西?

测试笔选项

仿真设置窗口

上海银利电子有限公司

我们要先学会选择器件!

上海银利电子有限公司

原理图:

我们所用到的器件信息:

器件

电源

电阻

模型

V1

R1

R2

0

模型库

VDC/Source

R/Analog_p

R/Analog_p

0/Source

大家按照上述原理图搬放器件的时候,我们必须要注意到一个问题就是:

1.器件是从哪种库中调用出来的的!细心的读者可能可以留意到,在我们调用器件的时候,我们看见有两个电阻选项

一个是来自于R/Analog_P

一个是来自于R/Design Cache

注意:

这两个看上去是没有区别的!实际上我们在做仿真是就可以发现,在我们调用R/Design Cache的时候会出现报错的问题!产生这个错误的原因在于我们可能对器件做了更改,而在Cache中并没有更新而导致这样的问题出现!

解决好这个问题,我们一般可以采取将Design Cache的库除掉!这样以防止我们不慎调用时面的信息。

1. 地的选择?

地的选择不是在Place part,而是在Place ground中出现!点击小图标

上海银利电子有限公司

好了,现在我们来接着做下一步!设置我们的仿真信息:

我们点击

上海银利电子有限公司

(Fig.8)

我们先从Analysis中开始看起:

有四个标签窗口:Analysis type(分析类型); Sweep variable(扫描变量); Options(选项设置);

Sweep type(扫描类型)。

在Analysis type(分析类型)中我们选取DC Sweep.

在Option中,我们选取Primary Sweep.

在Sweep variable中可以看到很我关于选项:

Voltage Source

Current Source

电压源信息

电流源信息

Global parameter 全局参数

Model parameter 模型参数

Temperature 温度设置

在Sweep type中,我们可以做一些设置。(Linear; logarithmic, value line),具体如何设置!我们可以看看!

在我们这次仿真中,我们选择Linear就可以!在Star中添入0v,在End中添入15v,在Increment中,添入1v.然后点击

上海银利电子有限公司

我们可以点击Trace选项从菜单中!(如下图所示)

选择Add Trace,程序将会弹出一个Add Trace窗口!

在其中可以看到有两个标签 Simulation Output variables与 Functions and Macros。(Fig.9)

在这个窗口中,我们可以看到许多的变量,还有需要测量的信息函数!在操作的过程中,我们必须要注意到一点Trace Expression!比如我们要看最大的的值的时候,先选择Max()函数,再选择变量的类型。我们可以看到表达式,在Trace Expression中 [Max ( V2(V1))].这是一个最为基本的步骤!

我们来看看我们的仿真结果是不是领人满意?

仿真结果:(Fig.10)

上海银利电子有限公司

(Fig.10)

通过波形,我们可以做自己的分析!

二.交流分析

交流分析:PSpice可对小信号线性电子电路进行交流分析,此时半导体器件皆

采用其线性模型。它是针对电路性能因信号频率改变而变动所作的分析,它能够

获得电路的幅频响应和相频响应以及转移导纳等特性参数。

跟前面一样,我们新建一个工程test !

前面的操作步骤一样!

原理图如下(Fig.11)

(Fig.11)

所用到的器件为:

器件

电源

电阻

模型

V1

R1

模型库

VAC/Source

R/Analog_p

上海银利电子有限公司

电感

电容

L1

C1

0

L/Analog_p

C/ Analog_p

0/Source

现在我们来对Simulation Setting来进行设置!设置如下(Fig.12)

(Fig.12)

这个设置跟我们在DC中的设置很相似!从窗口中我们可以看到一些最为基本的设置信息!

我们的扫描类型为线性,值从500至100k, Total 的值为200!Total的含义就是我们取值的点为200个!

大家可以看到,我们也可以做噪声分析.(大家可以设置一下,做个初步的了解)

Output File Options选项的作用 (将我们的波形和参数信息包括测量点的信息放于到输出文件信息中),在这一小节中,我们会要谈到如何去了解输出文件!

波形图:(Fig.13)

上海银利电子有限公司

(Fig.13)

如果发现波形不是很好,我们可以修改一下,让显示的效果比较突出!

如何修改仿真波形参数呢?

点击Edit Profile,就可以回到我们的仿真参数设置参数窗口!我们可以根据自己的需要来重新来设置仿真参数!然后再来运行一下仿真结果。点Run命令或,我们可以看到后面的工具栏由灰色锁定状态变为可用的状态!同时也会弹出一个小小的数据显示信息框。

从上面我们可以看到具体的信息!

现在我来介绍一下这个具体的小工具栏的用途!

上海银利电子有限公司

:定位光标的下一个最高点和最低点

:波形最大值测量

:命令窗口快捷图标

对于波形的分析,我想大家可以自己试试看看能不能得到相应的结果?

通过软件的测量,我们可以求出最大的谐振频率为 f=7.0503kHz ,最大电流为 i=20mA

我们可以通过计算器计算一下数据的精度和可性度是多少的范围!

三.参数分析

我们在做电路设计的时候可以经常遇到一些问题就是,选择一个合适的器件能够给我们可靠的波形,以达到我们的要求!在这个过程中我们必须可能要修改一下电路中的器件的参数信息!比如R,C,等等。但我们不可能改一次做一次仿真,这样的时候我们就要用到参数分析了!

参数分析就是针对电路中的某一参数在一定范围内作调整,利用PSpice分析得到清晰易懂的结果曲线,迅速确定出该参数的最佳值,这也是用户常用的优化方法。如果严格一点说,前面所讲的直流分析是随电源值步进,交流分析是随频率值步进也是参数分析。

在做Pspice仿真的时候,我们该怎样做呢?

我们用做交流分析电路的原理图来做一个参数分析!

上海银利电子有限公司

不过这张电路图我们要做一个小小的修改!请大家自己修改一下!如下图所示:(Fig.14)

从图中,我们可以看到多了一个Parameters的文字!这个就是参数的标识符号(我自己命名的),它从哪里来呢?

Param/Special库文件中调用而来的!

好了!现在我们要做什么呢?我们怎么让它做我们的变量符号名呢?

我们点击后,将这个文本文字放到工作平面台上!然后选中这个串文本文字,点击鼠标右键就选择编辑其属性。如下图所示:

将会显示出属性窗口,我们现在开始编辑属性窗口信息!

点击New Row

上海银利电子有限公司

点击Apply选项!ok!

这样我们就搞定了关于如何定义这个参数与R1之间的关系!

修改完成后的原理图:(Fig.14)

现在我们需要做什么?

接下来修改一下Simulation Setting.!(修改如下图所示)

上海银利电子有限公司

好了!让我们来看看仿真波形!点击运行按钮!

出现提示窗口

我们可以看到提示出有R的参数变化信息!这个变化信息告诉了我们一些什么呢?

R参数的变化,主要有四个波形显示出来,温度为27度!后面我们还会要谈到关于温度的变化分析!现在我们不谈!点击ok!呵呵!让我们看看Pspice为我们做了些什么?是不是真的有四个波形显示出来!

上海银利电子有限公司

仿真出来的波形:

可能大家看的不是很清楚!可以调整一下横轴!调整后的波形如下所示:

到此关于参数分析的内容到此为至!大家可以通过自己的电路知识来分析一下关于这个R参数对电路的影响!这样能够对参数变化对电路的影响有更加深的认识!

四.瞬态分析

瞬态分析:PSpice可对大信号非线性电子电路进行瞬态分析,也就是求电路的时域响应。它可在给定激励信号情况下,求电路输出的时间响应、延迟特性;也可在没有任何激励信号的情况下,求振荡波形、振荡周期等。瞬态分析运用最多,也最复杂,而且是计算机资源耗费最高的部分。

我们用一个一阶的RC电路来进行分析!

先让我们来绘制一张原理图!

上海银利电子有限公司

器件

信号源

电阻

电容

模型

V1

R1

C1

0

模型库

VPULSE/Source

R/Analog_p

CAnalog_p

0/Source

首先,我们要来认识一下关于信号源泉的问题!

我们可以发现信号源有几个参数,这几个参数代表的什么意思呢?

参数

V1

V2

TD

TR

TF

PW

PER

含义

初始值

幅值

延迟时间

上升时间

下降时间

脉冲宽度

周期

现在我们来设置Simulation Setting,在设置Simulation Setting中,Analysis Type选项选Time

Domain (Transient ).设置参数如下图所示!

上海银利电子有限公司

我们来先分析一下波形的形状。输入的波形为矩形波,而输出波形为三角波形!而且是个积分电路!为什么?(t=RC=8000*1e-7=80ms,这样大家可以年看到一个最为关键的问题,整个电路会出现上升的趋势,这样就可以看见了波形应该是来来回回的上升的过程!)其实大家刚刚学会如何设置参数分析方法,可以试着改变R的参数,改变参数看看波形会变的如何!我觉得大家有兴趣可以去研究一下!

仿真波形(如下图):

如果大家修改一下参数,因为时间时钟周期为20ms所以我们改变一下参数,把阻值改为200欧,看看电路什么样子?

是不是电路根我们分析的一样!其实这个过程大家可以自己去体会!现在真是感慨今天的EDA,真是好工具,多好啊!可以减少我们的工作,轻轻松松就可以做自己的设计!(I enjoy it

very much ! LoL@)

对于有源器件,我们再附录中将会提到,请大家自己去看附录!查找自己想要的内容!

上海银利电子有限公司

Pspice教程(进阶篇)

在这一篇中我们要学的东东有很多!不过我相信大家会很快学会Pspice的!没什么好说的,让我们打开我们的工具Pspice吧!

我们要讲的内容不多,就以下几外啦!

1. 最坏情况分析.

2. 蒙特卡洛分析

3. 温度分析.

4. 噪声分析

5. 傅利叶分析

6. 静态直注工作点分析

一.最坏情况分析

什么叫最坏呢?我想什么情况都是最坏的时候吧!呵呵,这么介绍大家可能都知道!具体点说吧!我们在绘制电路的时候所用的器件不可能完完全全都是准确的!由于制造工艺上的问题,我们可能用到的器件参数不像我们在仿真中出现的哪么好!这样就存在着一个误差的问题!怎样在Pspice中表现出来呢?这个问题Pspice最就想到了!

容差分析包括主要的两个内容:蒙特卡洛分析和最坏情况分析。

最坏情况(Worst Case)是指电路中的元件参数在其容差域边界点上取某种组合时所引起的电路性能的最大偏差。最坏情况分析(Worst Case Analysis)就是在给定电路元器件参数容差的情况下,估算出电路性能相对标称值时的最大偏差。如存在最大偏差时都能满足设计要求,那当然是最佳方案。WCase分析是一种统计分析。

最坏的情况用数学表达式就是:

dV∆V|其余X不变=V|xi-V|标称值

=dX∆X如果有N个器件出现这样的误差,则我们可以这样用数学函数表达:

VXn=δVδV1δV2VX1+VX2+......+nVXn

δX1δX2δXnVXi表示第i个变量的容差,VV为容差的最大变化值!这样n个变量将进行n+2次电路情况分析!

上海银利电子有限公司

容差介绍

①DEV 器件容差 是指各元器件统一使用的容差,该容差可以相互独立变化。

②LOT 批容差 是指各元器件的容差可以同时变化,即它们的值同时变大或变小。

③组合容差 组合使用时,元器件首先按LOT容差变化,然后再按DEV容差变化。

电路图的绘制:

在进行容差分析前,我们必须要小注意到一个小小的问题!

什么呢?就是我们的偏置电阻真都是没有容差值的!我们必须要手动加入容差值才行!

双击电阻R6,然后进入属性设置窗口!在Tolerance选项中加入该值,如图所示:

器件

电源

模型

VCC

VEE

原件库

VCC/Source

VCC/Source(图中只是更改了名字)

电阻

三极管

电容

GND

R

Q2N2222

C

0/Source

R/Analog_P

Q2N2222

C/Analog_P

上海银利电子有限公司

好!现在来设置开始仿真信息!如图下所示:

具体的设置信息很简单!我们要设置输出信息为V(OUT1)然后选择Vary devices that。。选项设为both DEV and LOT,具体DEV 和LOT做什么用?我们在做仿真的时候可能会遇到一些器件的容值误差可能相同,可能不相同的情况!这样我们就必须调用LOT(批量容差),DEV(独立器件上的容差值的不同)。

我们来点击More Settings选项,来看看这个又是干什么?

Monte Carlo/Worst-Case Output File Options选项:

这里主要设置的是关于如何Output File文件信息,数据的输出和数据的输入信息的变化!这

上海银利电子有限公司

样我们可以看到具体的参数信息的变化!

List model Parameter values in the output file先选项的作用就是将器件的参数变化信息放入Output file文件中!这样我们可以对电路做细仔的分析。

大家可能存大着一个疑问就是,DEV 和 LOT可能不同!你单单只设定Tolerance,怎么可以表达这个信息呢?

这个问题其实很容易解决的! 我们可以调用Rbreak电阻,它更我们平时调用的,有什么区别呢?我们对其可以进行Pspice的模型编辑!

调出一个来看看这个Rbreak。

上海银利电子有限公司

波形很差!我们可以看到有三条线!分别表示的是,正常的小波形输出,含有容值误差分析选项!还有就是最大的误差值输出!

我们可以从波形中,看到R差值对电路的影响!

二.蒙特卡洛分析

蒙特卡洛分析:此分析使用统计模拟方法,在给定电路元件参数容差的统计分布

规律的情况下,用一组伪随机数求得元器件参数的随机抽样序列,估算出电路性

能的统计分布规律,如电路性能的中心值、方差,以及电路合格率、成本等等。

用此结果作为是否修正设计的参考,增加了模拟的可信度。

我们做蒙特卡罗分析仍然用以上的原理图!

具体的设置方法如下:

上海银利电子有限公司

我们具体的说说一下关于Monte Carlo options具体含义:

Number of :代表着测量次数为5次

Use :采用均匀分布

Random number: 选项为随机函数信息,可以出现的突发情况对电路的影响!

Save data: 对数据的保存,全部保存这些信息!

让我们来看看波形怎么:

Ok!仔细看看波形怎么样!

如果我们在进行容差分析的时候,最坏的情况都能满足我们的要求!这个电路一定可取的!

三.温度分析

现在我们来对温度进行设置!

图中所有的元件参数和模型参数都设定为其常温下的值(常温隐含值为27Spice℃),在进行

上海银利电子有限公司

基本分析的同时,可以用温度分析指定不同的工作温度。比如,电视机应在-10℃、+40就要做不同温度分析。若同时指定了几个不同的工作温度,则对每一个温度都℃能正常运行,此时,要进行一次相应的电路分析。当温度低于绝对零度(-273℃)时不能模拟。

好!现在我们来对温度参数变化进行设置,同样的再进行分析前我们也要设置容差值!我们就采用设好的值!

在设置值之前,让我们来看看这个设置有哪些东西?

Run the simulateion at temperature:设置温度的信息,以x温度开始运行电路!

Repeat the simulateion for each of the temp:设置温度变化信息,我们可以手动输入自己想要的波形,同时也可以对比温度对波形的影响!

我自己设置的值如下:

上海银利电子有限公司

点击确定!

让我们来看看仿真波形如何!

我们可以发现温度对波形有影响。可以从以上的信息中,我们可以基本上对电阻的变化对电路波形的影响!同样我们也要注意电路影响的因素不仅仅就一个信息!有可能是很多综合因素!

我们可将R6的电阻进行替换,采用Rbreak,我们可以对Rbreak进行Pspice模型进行编辑!

Save bias point(保存偏置点的信息) 与 Load Bias point (读取偏置点的信息)可以根据我们所要做的分析对电路做出具体的信息点保存和解读!

上海银利电子有限公司

四.噪声分析

噪声分析也是一个大头!也不能忘了!现在我们来做一下噪声分析!

噪声分析就是针对电路中无法避免的噪声所做的分析。它是与交流分析一起使用的。电路中所计算的噪声通常是电阻上产生的热噪声、半导体器件产生的散粒噪声和闪烁噪声。PSpice程序AC分析的每个频率点上对指定输出端计算出等效输出噪声,同时对指定输入端计算出等效输入噪声。输出和输入噪声电平都对噪声带宽的平方根进行归一化,噪声电压的单位是

V/Hz,噪声电流的单位是A/HZ。

得出来不怎么好看是吧!呵呵,只要不影响我的分析就OK了!

五.傅利叶变换

傅里叶分析是在大信号正弦瞬态分析时,对输出的最后一个周期波形进行谐波分析,计算出直流分量、基波和第2~9次谐波分量以及失真度。

这次分析只是对两个电压做傅利叶分析

点击Fourier,出现如下图所示的波形:

我们还是用对数来表达可能看的清楚

怎么修改呢?

如下

上海银利电子有限公司

所Scale选项改为Log,这样就可以轻松搞定了!软件真是好啊!这也想到的哦!

变换后的波形如下图所示:

六.静态(直流)工作点分析

在电子电路中,确定静态工作点是十分重要。因为有了它便可决定半导体晶体管等的小信号线形化参数值。一般作网表输入的时候,我们通常会用到OP这个命令! 输出的是各节点电压、各个电压源流过的电流和总(消耗)功率。

我们还是用这个原理图来做静态分析:

选设置好要测量的量

上海银利电子有限公司

我们勾选的选项,第一个是什么意思呢?对非线性器件与半导体器件做静态点的信息做保存

对于小信号直流增益计算。其它的两个我就不详解,我想大家能够了解到了通过这么长时间的学习!

对于静态分析,我们是看不见波形的,而是要见数据的,波形只是提供一个感性的认识,而不能向数据那样提供给我们很详细的数据说明信息。这样,我们就必须要学会看outfile的数据信息,要学会分析!

静态工作点分析数据表(一)

在这个表中,列出所示节点的数据,实际上我们也可以直接看原理就可以了!

上海银利电子有限公司

大家看下图:

这些红色的数据就是节点的数据,但要能显示这些数据,我们必须要点击

上海银利电子有限公司

好,然后让我们来看看其它的信息是什么含义呢?

**** 09/24/05 10:28:44 ******* PSpice 10.2.0 (Jan 2004) ******* ID# **************

** Profile: "SCHEMATIC1-lesson four" [ d:12lession four-pspicefilesschematic1lesson

]

**** CIRCUIT DESCRIPTION

******************************************************************************

** Creating circuit file "lesson "

** WARNING: THIS AUTOMATICALLY GENERATED FILE MAY BE OVERWRITTEN BY

SUBSEQUENT SIMULATIONS

(这个是什么呢?就是一个简单的说明文件!仿真多了,有时候自己都不记得哪个文件是自己想要的,原来的文件信息的目录放在哪?电路原理图的名称叫什么?这里都给我们列举出来了!)

注意:这只是一个自动保存文件,可能因为你的仿真参数的改变,重新仿真后,这个信息会更新!所以还是要手动保存一下。

*Libraries:

* Profile Libraries :

* Local Libraries :

.LIB "../../../lession four-pspicefiles/lession "

* From [PSPICE NETLIST] section of C:CadenceSPB_ file:

.lib ""

这一段的信息列出的是关于库文件的信息,我想大家都比较明白,不多说了!

*Analysis directives:

.OP

.TF V([OUT2]) V_V4

.PROBE V(alias(*)) I(alias(*)) W(alias(*)) D(alias(*)) NOISE(alias(*))

.INC ".."

选择分析的函数,在这里我们看到了

. TF V([OUT2]) V_V4,熟悉吧!这个就是我们在设置静态分析时候我们设置的信息,在这里我们也可以看到还有原理图的网络信息文件。

上海银利电子有限公司

**** INCLUDING ****

* source LESSION FOUR

V_V4 N00899 0

+SIN 0 10mv 500k 0 0 0

R_R2 N002721 0 1k

Q_Q1 N00769 N00623 VEE Q2N2222

Q_Q2 N00623 N00623 VEE Q2N2222

C_C1 OUT1 OUT2 5p

Q_Q3 OUT1 N00897 N00769 Q2N2222

R_R5 N00897 N00899 1k

R_R3 OUT1 VCC 10k

V_V2 VCC 0 +12Vdc

R_R4 OUT2 VCC 10k

V_V3 VEE 0 -12Vdc

Q_Q4 OUT2 N002721 N00769 Q2N2222

R_R6 N00623 VCC R_R6 20k

.model R_R6 RES R=1 DEV=+-5%

**** RESUMING "lesson " ****

.END

这个就是我们电路图的网络描述的语句!我们可以看到模型的结点是N+编号的形式表示的!我想这个编号一定有含义的!但跟我们所说的内容无关,不谈!

提醒:大家每每做不同分析的时候可能会生成不同的OutFile文件信息,我个人认为:大家必要自己去看看,因为那些数据才是我们需要的信息。

上海银利电子有限公司

数字电路

数字电路设计:

PSpice A/D可以对模拟和数字混合电路进行分析,可以输出数字(逻辑)信号或者模拟信号。PSpice中由于增加了数字电路分析,使其分析功能更加完整,应用更加广泛。

在这里我们做一个简单一介绍,希望通过抛砖引玉能让大家对Pspice的功能有更加深刻的了解和认识。

我们先来绘制一张图:

器件名

信号源

与非门

与门

或非门

它的数学表达式:

模型

DSTM

7400

7408

7402

模型库

Digstim1/SOURCESTM

7400/7400

7408/7408

7402/7402

Y=A•AB+B•AB

问题,我们现在怎么来仿真呢?

最麻烦的就是设置信号源的信号时钟

我们将鼠标放在DSTM处,然后点击鼠标右键!选择其编辑模型(Edit Pspice Model)!

上海银利电子有限公司

会弹出一个新的窗口:如图

在这个地方,我们要选择我们信号的类型,具体如何大家可以看一目了然,不过大家要注意一下就是名字最好取一个比较便于记忆的!在此我们选择Clock。

点击后出现一个新的窗口,如下图所示:

按如图所要的设置一下!这是一个时钟属性设置窗口!我们根据频率(Frequency and duty cycle)的要求来设置我们的时间!有时我们也可以设置一下按照时间,选择(Period and on time)就可以了!第一个是工作频率(Frequency),第二个就是占空比(Duty Cycle) ,第三个就是初始值(Initial value),第四个就是时间延时(Time delay)。设置好后,点OK!

DSTM2的设置过程如上所示,不过时间频率要改一下,改为4Mhz最好!

上海银利电子有限公司

设置完毕了,然后来设置一下Stimulation Setting的设置文件。

如下图所示:

点击后我们可以看看波形如何,我们也可以分析一下具体的内容,看看是不是真的这样!

波形图如下:

我们可以很名显的看出来这个函数为一个同或。

我们可以用逻辑函数来求一下这个函数,式子如下:

Y=A•AB+B•AB

=AB(A+B)

=AB•AB

=AB+AB

上海银利电子有限公司

现在我们大家来看看这个数字仿真出来的outfile文件的内容是什么?

**** 09/26/05 09:45:23 ******* PSpice 10.2.0 (Jan 2004) ******* ID# ***********

** Profile: "SCHEMATIC1-Sz" [ D: ]

**** CIRCUIT DESCRIPTION

*****************************************************************************

** Creating circuit file ""

** WARNING: THIS AUTOMATICALLY GENERATED FILE MAY BE OVERWRITTEN

BY SUBSEQUENT SIMULATIONS

*Libraries:

* Profile Libraries :

* Local Libraries :

.STMLIB "../../../sz-pspicefiles/"

* From [PSPICE NETLIST] section of C:CadenceSPB_ file:

.lib ""

*Analysis directives:

.TRAN 0 5us 0

.PROBE V(alias(*)) I(alias(*)) W(alias(*)) D(alias(*)) NOISE(alias(*))

.INC ".."

以上的内容跟我们在平时做仿真是一样的结论。我们可以这样去理解输入表格!

将它理解为一个程序!这个部分的功能就是程序的声明部分。

**** INCLUDING ****

* source SZ

X_U2A N00345 N00324 N00426 $G_DPWR $G_DGND 7408 PARAMS:

+ IO_LEVEL=0 MNTYMXDLY=0

X_U2B N00324 N00363 N00451 $G_DPWR $G_DGND 7408 PARAMS:

+ IO_LEVEL=0 MNTYMXDLY=0

U_DSTM1 STIM(1,0) $G_DPWR $G_DGND N00345 IO_STM

STIMULUS=STM1

X_U3A N00426 N00451 Y $G_DPWR $G_DGND 7402 PARAMS:

+ IO_LEVEL=0 MNTYMXDLY=0

U_DSTM2 STIM(1,0) $G_DPWR $G_DGND N00363 IO_STM

STIMULUS=STM2

X_U1A N00345 N00363 N00324 $G_DPWR $G_DGND 7400 PARAMS:

+ IO_LEVEL=0 MNTYMXDLY=0

**** RESUMING ****

.END

在这一部分我们看到的内容,主要是电路中的网络表格!

相当于程序部分中的函数框架结构

上海银利电子有限公司

* D: written on Mon Sep 26 09:41:52 2005

* by Stimulus Editor -- Serial Number: ********** -- Version 10.2.0

;!Stimulus Get

;! STM1 Digital STM2 Digital

;!Ok

;!Plot Axis_Settings

;!Xrange 0s 2us

;!AutoUniverse

;!XminRes 1ns

;!YminRes 1n

;!Ok

.STIMULUS STM1 STIM (1, 1) ;! CLOCK 2Meg 0.5 0 0

+ +0s 0

+ +250ns 1

+ Repeat Forever

+ +250ns 0

+ +250ns 1

+ EndRepeat

.STIMULUS STM2 STIM (1, 1) ;! CLOCK 4Meg 0.5 0 0

+ +0s 0

+ +125ns 1

+ Repeat Forever

+ +125ns 0

+ +125ns 1

+ EndRepeat

这一部分的理解更加的简单!我们怎么去理解它呢?我们可以把它理解成为程序中的一些子函数!不过这些子函数都是些信号源的函数!

**** 09/26/05 09:45:23 ******* PSpice 10.2.0 (Jan 2004) ******* ID# *********

** Profile: "SCHEMATIC1-Sz" [ D: ]

**** Digital Gate MODEL PARAMETERS

******************************************************************************

D_08 D_02 D_00

TPLHMN 7.000000E-09 4.800000E-09 4.400000E-09

TPLHTY 17.500000E-09 12.000000E-09 11.000000E-09

TPLHMX 27.000000E-09 22.000000E-09 22.000000E-09

TPHLMN 4.800000E-09 3.200000E-09 2.800000E-09

TPHLTY 12.000000E-09 8.000000E-09 7.000000E-09

TPHLMX 19.000000E-09 15.000000E-09 15.000000E-09

在这时列出的数据是我们在仿真时对于门电路模型参数的描述。具体的如:

TPLMN所代表的含义是什么?我们可以通过查阅相关的Pspice资料来获得!以后书中会加入相关的参数资料!

上海银利电子有限公司

**** 09/26/05 09:45:23 ******* PSpice 10.2.0 (Jan 2004) ******* ID# *********

** Profile: "SCHEMATIC1-Sz" [ D: ]

**** Digital IO MODEL PARAMETERS

******************************************************************************

IO_STM IO_STD

DRVL 0 104

DRVH 0 96.4

AtoD1 AtoD_STD

AtoD2 AtoD_STD_NX

AtoD3 AtoD_STD

AtoD4 AtoD_STD_NX

DtoA1 DtoA_STM DtoA_STD

DtoA2 DtoA_STM DtoA_STD

DtoA3 DtoA_STM DtoA_STD

DtoA4 DtoA_STM DtoA_STD

TSWHL1 1.511000E-09

TSWHL2 1.487000E-09

TSWHL3 1.511000E-09

TSWHL4 1.487000E-09

TSWLH1 3.517000E-09

TSWLH2 3.564000E-09

TSWLH3 3.517000E-09

TSWLH4 3.564000E-09

TPWRT 100.000000E+03 100.000000E+03

JOB CONCLUDED

各个I/0口的情况!

**** 09/26/05 09:45:23 ******* PSpice 10.2.0 (Jan 2004) ******* ID# 1111111111

** Profile: "SCHEMATIC1-Sz" [ D: ]

**** JOB STATISTICS SUMMARY

******************************************************************************

Total job time = .16

对电路的整体描述!

上海银利电子有限公司

附录A:

Simulation Seetings

基本分析完成了,我们现在要回过头来好好的看看我们的仿真窗口!为什么呢?会设置才能将我们的仿真分析做好啊!是不是?呵呵!

说了这么多的东西!一直都没有系统的对Simulation Setting做个好的介绍!

这个General菜单选项:

Simulation: 仿真信息的配置名称

Input:

|-------Poject Name 工程文件路径和名称

|-------Schematic filename文件名

|-------Schematic 原理图

Output

|-------Output 输出文件信息

波形信息

笔记,诠释

|-------Waveform data

Notes:

上海银利电子有限公司

Analysis就不细讲,因为在后面的课程中会仔细的谈到如何应用!

下一个Configuration File

在这个窗口下,我们可以加载其它的仿真出来的信息,这样可以帮助我们去分析很多东东!点击Browse,可以加入其它的仿真文件信息,点Edit,我们可以调出波形编辑工具Simulation

Editor这样我们可以看到波形,对波形做出仔细的分析!

注意:这个工具通常在我们分析数字信号才能出现!

上海银利电子有限公司

Options

这个地方用来干吗呢?实际这个地方就是我们对我们的仿真做设置的的信息地方!从Category中我们可以看出来,其实对不同器件的仿真,我们可能有不同的要求!要做出最好的波形极为关键!不过我个人觉得这些参数最好不要更改,设为默认值就ok了!大家有兴趣的可以自己去改变一下其值!

可能大家在参数分析的过程中,已经看到了关于温度的信息,不知还记得吗?Default nominal

Temperature的设置栏中,我们可以看到一般我们将默认的器件温度设为27度!这里可以改一改看看,看看温度对器件的影响有多大!不过这里一但更改则是全局的变化了!你在做其它的仿真的时候值也会变为你所设定的温度!

上海银利电子有限公司

Data Collection

Data Collection简单的说就是 数据采集!这里面包括的信息有电压,电流,电源,数字信号,噪声。同时我们也可以将这些数据输出格式为CSDF格式!

Common Simulation Data Format (CSDF)

Probe Window

上海银利电子有限公司

这个选项我们一直没有涉及过!其实要我们仿真的时候可能已经看到有个工具栏选项在Capture中!

上海银利电子有限公司

函数名称

Bandwidth(1,db_level)= x2-x1

语法

{

1|Searchforward level(max-db_level,p) !1

Searchforward level(max-db_level,n) !2;

}

{

1|Search forward level(max-3,p) !1

Search forward level(max-3,n) !2;

}

{

1|Search forward(begin_x,end_x) level(max-3,p) !1

Search forward(begin_x,end_x) level(max-3,n) !2;

}

作用

测量带宽

Bandwidth_Bandpass_3dB(1)= x2-x1

测量低于YMax-3dB处的带宽

测量X轴的范围

Bandwidth_Bandpass_3dB_XRange(1,begin_x,end_x)=

x2-x1

CenterFrequency(1, {

db_level) = 1|Search forward level(max-db_level,p) !1

(x1+x2)/2 Search forward level(max-db_level,n) !2;

}

CenterFrequency_XRange(1,db_level,begin_x,end_x)=

(x1+x2)/2

ConversionGain(1,2) = y1/y2

{

1|Search forward(begin_x,end_x) level(max-db_level,p) !1

Search forward(begin_x,end_x) level(max-db_level,n) !2;

}

ConversionGain(, )

{

1|Search forward max !1;

2|Search forward max !2;

}

寻找中心频率

在一定的X范围内测量出中心频率

测量增益

ConversionGain_XRange(1,2,begin_x,end_x) = y1/y2

ConversionGain_XRange(, ,, ) 轴范围内{ 测量其增1|Search forward(begin_x,end_x) max !1; 益

2|Search forward(begin_x,end_x) max !2;

}

{

1|Search forward level(max-3,p) !1;

}

高端截止频率

高端截止频率时的X值

低端截止频率

Cutoff_Highpass_3dB(1) = x1

Cutoff_Highpass_3{

dB_XRange(1, 1|Search forward (begin_x,end_x) level(max-3,p) !1;

begin_x,end_x) = }

x1

Cutoff_Lowpass_3dB(1) = x1

{

1|Search forward level(max-3,n) !1;

}

上海银利电子有限公司

Cutoff_Lowpass_3{

dB_XRange(1, 1|Search forward (begin_x,end_x) level(max-3,n) !1;

begin_x,end_x) = }

x1

DutyCycle(1) = {

(x2-x1)/(x3-x1) 1|Search forward level (50%, p) !1

Search forward level (50%, n) !2

Search forward level (50%, p) !3;

}

DutyCycle_XRange(1,begin_x,end_x)

= (x2-x1)/(x3-x1)

{

1|Search forward (begin_x,end_x)level (50%, p) !1

Search forward (begin_x,end_x)level (50%, n) !2

Search forward (begin_x,end_x)level (50%, p) !3;

}

Falltime_NoOvershoot()

{

1|Search forward level(90%, n) !1

Search forward level(10%, n) !2;

}

Falltime_StepResponse()

{

1|Search forward x value (0%) !1

Search forward x value (100%) !2

Search forward /Begin/ level (y1+0.1*(y2-y1),n) !3

Search forward level (y1+0.9*(y2-y1),n) !4;

}

Falltime_StepResponse_XRange(

name>,,)

{

1|Search forward (begin_x,end_x) x value (0%) !1

Search forward (begin_x,end_x) x value (100%) !2

Search forward /Begin/(begin_x,end_x) level

(y1+0.1*(y2-y1),n) !3

Search forward (begin_x,end_x) level (y1+0.9*(y2-y1),n) !4;

}

低端截止频率时的X值

占空比

在X轴的某个范围内的占空比

求下降时间(无过冲)

Falltime_NoOvershoot(1) = x2-x1

Falltime_StepResponse(1)=x4-x3

阶跃脉冲时的下降时间

Falltime_StepResponse_XRange(1,begin_x,end_x)=x4-x3

阶跃脉冲时的下降时间在X的范围内

GainMargin(1,2) = GainMargin(, )

0-y2 {

1|Search forward level (-180) !1;

2|Search forward xval (x1) !2;

}

Max(1) = y1 {

1|Search forward max !1;

}

求相位最大为-180度时的增益值

最大值

上海银利电子有限公司

Max_XRange(1,begin_x,end_x)=y1

Min(1) = y1

{

1| search forward (begin_x,end_x) max !1 ;

}

{

1| search forward min !1;

}

{

1| search forward (begin_x,end_x) min !1 ;

}

NthPeak(, )

{

1|Search forward #3# n_occur:peak !1;

}

求出在某X范围内的最大值

求其最小值

求取某X范围内的最小值

Min_XRange(1,begin_x,end_x)=y1

NthPeak(1,

n_occur) = y1

Overshoot(1) = Overshoot()

(y1-y2)/y2*100 {

1|Search forward max !1

Search forward xval(100%) !2;

}

Overshoot_XRange(1,begin_x,end_x)

= (y1-y2)/y2*100

Overshoot_XRange(,,)

{

1|Search forward (begin_x,end_x) max !1

Search forward (begin_x,end_x) xval(100%) !2;

}

求过冲时的了大值

求过冲时的最大值(在某X值

的范围内)

求出峰峰值

求出两个值的差异

Peak(1, n_occur) = {

y1 1|Search forward #3# n_occur:peak !1;

}

Period(1) = x2-x1 Peak(, )

{

1|Search forward level (50%, p) !1

Search forward level (50%, p) !2;

}

PhaseMargin(1,2) = PhaseMargin(, )

y2+180 {

1|Search forward level (0) !1

2|Search forward xval (x1) !2

}

PowerDissipation_mW(1, Period) =

(y1-y2)*1000/(x1-x2)

PowerDissipation_mW(s(*),

)

{

1|Search forward xvalue(100%) !1

Search backward /x1/ xvalue(.-Period) !2;

}

求出在同一个X值的值时Y值的差异

Pulsewidth(1)

x2-x1

= {

1|Search forward level (50%, p) !1

求脉冲的宽度

上海银利电子有限公司

Search forward level (50%, n) !2;}

Pulsewidth_XRange(1,begin_x,end_x)

= x2-x1

{

1|Search forward (begin_x,end_x)level (50%, p) !1

Search forward (begin_x,end_x)level (50%, n) !2;

}

求出脉冲宽度(在某X的范围)

求出Q点的波形的带宽值

Q_Bandpass(1, {

db_level) = 1|Search forward level(max-db_level,p) !1

((x1+x2)/2)/(x2-x1) Search forward level(max-db_level,n) !2;

}

Q_Bandpass_XRange(1, db_level,

begin_x,end_x) =

((x1+x2)/2)/(x2-x1)

{

1|Search forward

level(max-db_level,p) !1

Search forward

level(max-db_level,n) !2;

}

Risetime_NoOvershoot()

{

1|Search forward level(10%, p) !1

Search forward level(90%, p) !2;

}

Risetime_StepResponse()

{

1|Search forward x value (0%) !1

Search forward x value (100%) !2

Search forward /Begin/ level (y1+0.1*(y2-y1),p) !3

Search forward level (y1+0.9*(y2-y1),p) !4;

}

Risetime_StepResponse_XRange(

name>,,)

{

1|Search forward (begin_x,end_x) x value (0%) !1

Search forward (begin_x,end_x) x value (100%) !2

Search forward /Begin/(begin_x,end_x) level

(y1+0.1*(y2-y1),p) !3

Search forward (begin_x,end_x) level

(y1+0.9*(y2-y1),p) !4;

}

SettlingTime(,)

{ 1|Search forward x value (0%) !1

Search forward x value (100%) !2

Search backward /x2/

(y1+(1-SBAND_PERCENT/100)*(y2-y1)) !3;

}

SettlingTime_XRange(

求出在我(begin_x,end_x) 点的波形带宽值(在(begin_x,end_x) 一定X轴的范围内)

求上升时间的值(无过冲时)

Risetime_NoOvershoot(1) = x2-x1

Risetime_StepResponse(1)=x4-x3

求上升时间值(在阶跃响应的情况下)

Risetime_StepResponse_XRange(1,begin_x,end_x)=x4-x3

在某X范围时求上长时间值(阶跃响应的情况下)

SettlingTime(1,

SBAND_PERCENT)= x3-x1

在设定的时间内采用阶跃响level 应(在无特殊要求的情况下)

在某段时SettlingTime_XRan

上海银利电子有限公司

ge(1,

SBAND_PERCENT, begin_x,end_x)=

x3-x1

name>,,,) 间内设定 { 调入阶跃 1|Search forward (begin_x,end_x) x value (0%) !1 响应时间

Search forward (begin_x,end_x) x value (100%) !2

Search backward /x2/ (begin_x,end_x) level

(y1+(1-SBAND_PERCENT/100)*(y2-y1)) !3;

}

lewRate_Fall()

{

1|Search forward x value (0%) !1

Search forward x value (100%) !2

Search forward /Begin/ level (y1+0.25*(y2-y1),n) !3

Search forward level (y1+0.75*(y2-y1),n) !4;

}

SlewRate_Fall_XRange(,,)

{

1|Search forward (begin_x,end_x) x value (0%) !1

Search forward (begin_x,end_x) x value (100%) !2

Search forward /Begin/(begin_x,end_x) level

(y1+0.25*(y2-y1),n) !3

Search forward (begin_x,end_x) level

(y1+0.75*(y2-y1),n) !4;

}

SlewRate_Rise()

{

1|Search forward x value (0%) !1

Search forward x value (100%) !2

Search forward /Begin/ level (y1+0.25*(y2-y1),p) !3

Search forward level (y1+0.75*(y2-y1),p) !4;

}

SlewRate_Rise_XRange(,,)

{

1|Search forward (begin_x,end_x) x value (0%) !1

Search forward (begin_x,end_x) x value (100%) !2

Search forward /Begin/(begin_x,end_x) level

(y1+0.25*(y2-y1),p) !3

Search forward (begin_x,end_x) level

(y1+0.75*(y2-y1),p) !4;

}

Swing_XRange(

name>,,)

{

1| search forward (begin_x,end_x) min !1

search forward (begin_x,end_x) max !2 ;}

求出波形的下降斜率是多少

SlewRate_Fall(1)=(y4-y3)/(x4-x3)

SlewRate_Fall_XRange(1,begin_x,end_x)=(y4-y3)/(x4-x3)

求出波形的下降斜率是多少(在X轴的范围内)

SlewRate_Rise(1)=(y4-y3)/(x4-x3)

求出波形的上升斜率

SlewRate_Rise_XRange(1,begin_x,end_x)=(y4-y3)/(x4-x3)

求出波形的上升斜率是多少(在设定的X轴范围内)

Swing_XRange(1,begin_x,end_x)=y2-y1

列出X的最大值与最小值之间的差值