在sabersketch中对该电路执行TR分析,endtime=10m,timestep=10n,分析结果如下所示。
1.lm339两个输入管脚inp和inm波形
2.lm339输出管脚vout波形
整流电路的仿真
整流电路在电源设计中会经常用到,这里介绍一个单相整流电路仿真示例。
如下图所示:
四个二极管D1N4148构成整流桥,直流滤波电容C1=100u,负载电阻RL=1k。
交流输入为正弦电压,峰值电压为17V,频率为50Hz。
对该电路执行TR分析,设置endtime=200m,timestep=1u。
其分析结果如下图所示:
从上图可以看出,仿真结果正确。
问题:
1.如何测试输出电压Vout的纹波电压?
2.如何修改电路参数,可以使得Vout输出有下图的效果?
有兴趣的网友可以试试
数字脉冲发生器电路的仿真
脉冲电路在电路设计中会经常碰到,这里介绍一个简单的仿真示例。
如下图所示:
电路由与非门和阻容网络组成,其基本工作原理如下:
(a)假设上电瞬间节点in的电压对于非门来说为低电平,则节点mid电压为高电平,而节点out的电压为低电平。
(b)由于mid为高电平,则会通过2k电阻向电容C充电,n_67节点电压逐渐上升。
而非门的输入阻抗极高,所以in节点的电压基本与n_67节点一致,导致in节点的电压也上升。
(c)当in节点电压高于与非门的输入高门限时,非门输出反转,mid为低电平,导致out节点电压反转,输出为高电平。
(d)电容C通过2k电阻向mid节点放电,n_67节点电压下降,in节点电压也跟着下降。
当in节点电压低于非门的输入低门限时,输出再次反转,mid为低电平,导致节点out输出反转为高电平。
整个电路在a~d四个过程中往复运行,out节点上产生振荡方波。
需要注意的是,这个振荡电路的仿真和以前的不一样,电路的没有直接的参考地。
那么,这个电路的仿真能正确吗?
在Sabersketch中建立图1所示的原理图,然后选择DC,TR分析,EndTime=100m,TimeStep=100n,仿真器输出结果如下图所示。
从上图可以观察到,电路的运行方式与前面分析的一致,表明这个电路在没有直接参考地的情况下,也能够正确仿真。
而一般普通的模拟电路如果没有参考地,没法进行仿真分析。
造成这种情况的原因在于saber软件仿真混合信号电路的方法,saber软件在为原理图产生网表时,会自动在数字和模拟管脚连接的地方,插入一种被称为hypermodel的模板,以实现模拟到数字或者数字到模拟的过渡。
关于Hypermodel的概念和使用,可参考Saber软件自带的帮助文档,这里紧紧举个例子,便于大家观察Hypermodel的使用。
选择Edit菜单下的Saber/NetlisterSettings命令,会出现如下图所示的对话框:
按照上图所示设置Hypermodel栏,然后保存设置并重新执行Netlist命令。
然后对电路进行DC、TR分析,设置和以前一致,仿真结果如下图所示:
和前面的仿真结果比较,其输出的高低电平发生变化,这主要和使用的Hypermodel有关。
问题:
为什么在改变hypermodel设置以后,要执行netlist命令,而不直接进行分析?
译码电路的仿真
译码电路在数字电路设计中会经常碰到,这里介绍一个简单的仿真示例。
如下图所示:
为一个三八译码器电路,三路数字时钟输入的频率分别为1kHz,2kHz,4kHz,其中C路输入信号代表高位,A路代表低位。
在Sabersketch中建立该电路的原理图,然后选择TR分析,设置endtime=1m,timestep=1u。
其分析结果如下图所示:
从上图可以观察到,译码电路工作正常。
分频移相电路的仿真
在数字电路设计时,经常会有对某个信号进行分频或者移相的要求。
如下图所示的电路:
输入时钟频率为200kHz,通过计数器进行分频,其输出控制一个多路选择开关,从多路开关中输出六路信号,分别控制三个RS触发器的复位置位动作,实现三路信号的移相。
对该电路执行TR分析,设置endtime=60,imestep=1n其分析结果如下图所示:
从上图可以观察到,这个电路对输入时钟进行了6分频,并移相为三路互差120°的信号输出。
梯形波发生器电路的仿真
这里介绍一个例子,在Saber软件环境中对梯形波发生器电路进行分析验证。
如下图图所示:
从上图可以看出,电路由计数器、触发器、门电路、和电阻网络组成,输入时钟为500kHz。
其核心思想是控制计数器的输出,其输出电压经过电阻网络分压以后成阶梯上升和阶梯下降。
在Sabersketch中对该电路执行DC,TR分析,EndTime=100u,TimeStep=1n,仿真器输出结果如下图所示:
从上图可以观察到,输出电压在0~2V之间的梯形波。
问题:
1.修改VCC电压,能够改变输出电压波形吗?
为什么?
2.这个电路在实际设计时真的能使用吗?
三角波发生器电路的仿真
这里介绍一个Saber软件环境中实现对方波发生器电路进行分析验证的例子,设计示例如下图所示:
如上图所示电路由两个ne5532a构成,第一级ne5532a在vo1节点上输出方波,然后通过Rin和C2构成的积分电路,使得第二级ne5532a的输出为对方波积分的结果-三角波,并通过电阻R2反馈到第一级ne5532a的输出端,这样就形成了自激振荡的输出。
在Sabersketch中对该电路执行DC,TR分析,仿真器输出结果如下图所示:
从上图可以看出,输出端没有任何振荡波形输出,但实际电路是能够振荡的,其原因与振荡器的工作原理以及saber时域仿真算法有关系。
这里主要介绍一种解决振荡器仿真的方法。
在执行TR分析的时候,减小截断误差的值,具体情况如下图所示:
默认的TruncationError参数为0.005,现在将其改为1u;默认的SamplePointDensity1,现在将其改为2。
其他设置与前面一致,其分析结果如下图所示。
从上图可以看出,电路输出实现自激振荡,频率为2387Hz。
正弦波发生器电路的仿真
今天介绍一个在Saber软件环境中对正弦波发生器电路进行仿真验证的例子,电路如下图所示:
在Sabersketch中设置电容C2的ic=6,然后选择DC,TR分析,EndTime=50m,TimeStep=10n,仿真器输出结果如下图所示:
从上图可以看出,输出为正弦输出电压,频率约为930Hz,峰峰值约为20V。
问题:
为什么要设置C2的ic=6?
不设置ic值仿真结果会怎样?
有兴趣的网友可以去试试。
锁相环电路的仿真
在电路设计时,会碰到需要与某个输入信号同步的要求,在这种情况下,通常需要设计锁相环电路来实现对输入信号频率和相位的锁定。
今天介绍一个在Saber软件环境中实现对锁相环电路仿真验证的例子,设计示例如下图所示。
该电路实现的功能是对输入正弦信号进行测量,并在电路内部产生一个频率和相位均与输入信号相同的正弦信号。
从图中可以看出,输入正弦信号经过电压控制电压源采样(用于模拟变压器),输入到过零比较器,过零比较器输出方波做为数字鉴相器的参考输入,数字鉴相器的另一个输入来自输出正弦电压的采样,而其输出信号代表了两个输入信号之间的相位差。
数字鉴相器的输出经过滤波器、偏置和放大处理以后输出一个电压信号给压控振荡源,通过调节这个电压大小,就可以控制压控振荡源的输出信号在频率和相位上与输入正弦电压一致。
数字鉴相器是有底层电路构成的mocromodel模型,其工作原理与CD4046电路的鉴相器部分一致,CD4046电路工作原理如下图所示。
在Sabersketch中对该电路进行DC,TR分析,EndTime=500m,TimeStep=1n,仿真器输出结果如下所示。
鉴相器的输出以及经过滤波以后的波形
滤波器输出经过偏置、放大以后的波形
数字鉴相器的两路数字输入信号的波形
输入正弦信号采样和输出正弦信号波形
从上图可以看出,在经过200ms以后,输出信号与输入信号完全同频同相,实现了锁相环功能。
对该电路稍加修改,就可以实现锁相环的另一种运用-倍频功能。
swordman会在以后的blog中和大家讨论一种源于该电路的256倍频电路。
今天接着前面的内容,为大家介绍一个利用锁相环实现倍频电路的仿真例子,设计示例如下图所示。
从图中可以看出,在前面介绍的锁相环电路基础上,将输出信号通过一个计数器分频以后做为采样信号传会鉴相器的输入,就可以实现倍频功能了,倍频的倍数有计数器决定。
在Sabersketch中对该电路进行DC,TR分析,设置与前面一致,仿真结果如下所示。
鉴相器输出和滤波以后的波形
经过偏置、放大以后的波形
数字鉴相器两个输入端波形
输入和输出信号波形
从上图可以看出,输出信号实现了对输入信号的256倍频(输入信号频率为50Hz)。