HSPICE实现环形振荡器【内附代码】

HSPICE实现环形振荡器【内附代码】

**写在前面:笔者还是正在学习的研究生,在这里主要想记录一些在课程、科研中解决的一些问题,以便回顾。若有错误的地方,也希望大家指出呀~欢迎大家讨论!

振荡器

振荡器是将直流电转变为交流电的过程,用来产生一定频率的交流信号,是有源器件,多用于锁相环中。

环形振荡器

环形振荡器,是由三个非门或更多奇数个非门输出端和输入端首尾相接,构成环状的机器。
在这里插入图片描述
图中所展示的是一种频率可调的环形振荡器,通过增加控制晶体管,控制充放电速度,改变振荡器频率。

HSPICE仿真

我首先仿真了三级反相器首尾相接形成的环形振荡器。振荡周期为200ps。因为没有增加控制器件,所以充放电波形比较对称。

注意!环振的起振是通过在电源初增加小的扰动即可实现,而不是给某个节点加初始电压,因为环振没有输入输出!(这个问题困扰了我好久在这里插入图片描述
接下来,我在第二级反相器上,给nmos串联了4个同样尺寸的nmos,用于调节振荡频率。开始我只串联了1个nmos,但仿真波形差异不大。所以多串了几个。。后面思考:应该也可以通过在节点接电容来改变频率。

通过波形可以发现充放电所需时间不同,放电明显比充电时间要长。这就是因为多串了几个nmos,相当于加长了沟道。同时,节点的输出幅度不是全摆幅(从0到Vdd)。周期在260ps左右。
在这里插入图片描述

HSPICE代码

我使用的是TSMC 0.18um的工艺库,2019版HSPICE。

注意!第一行*标题行一定要加!记得修改库地址哦
【三级反相器环振】
**buffer
.param Supply = 1.8
.lib ‘C:\synopsys\Hspice_L-2016.03-2\mm018.L’ TT * Set 0.18um library

.opt scale=0.1u

mp0 out0 in Vdd Vdd pch l=2 w=6 ad=30 pd=6 as=30 ps=6
mn0 out0 in Gnd GND nch l=2 w=3 ad=15 pd=3 as=15 ps=3
mp1 out1 out0 Vdd Vdd pch l=2 w=6 ad=30 pd=6 as=30 ps=6
mn1 out1 out0 Gnd GND nch l=2 w=3 ad=15 pd=3 as=15 ps=3
mp2 in out1 Vdd Vdd pch l=2 w=6 ad=30 pd=6 as=30 ps=6
mn2 in out1 Gnd GND nch l=2 w=3 ad=15 pd=3 as=15 ps=3

c in gnd 0.1f

vdd vdd gnd pwl(10P 0 100P 1.8)
.tran 0.01n 5u

.op
.option captab = 1

.OPTION POST=2 TNOM=27 NOMOD LIST METHOD=GEAR
.end

【频率可调环振】
*buffer_2
.param Supply = 1.8
.lib ‘C:\synopsys\Hspice_L-2016.03-2\mm018.L’ TT * Set 0.18um library
.opt scale=0.1u

mp0 out0 in Vdd Vdd pch l=2 w=6 ad=30 pd=6 as=30 ps=6
mn0 out0 in Gnd GND nch l=2 w=3 ad=15 pd=3 as=15 ps=3

mp1 out1 out0 Vdd Vdd pch l=2 w=6 ad=30 pd=6 as=30 ps=6
mn1 out1 out0 n1 GND nch l=2 w=3 ad=15 pd=3 as=15 ps=3
mn12 n1 vctrl n2 gnd nch l=2 w=3 ad=15 pd=3 as=15 ps=3
mn13 n2 vctrl n3 gnd nch l=2 w=3 ad=15 pd=3 as=15 ps=3
mn14 n3 vctrl n4 gnd nch l=2 w=3 ad=15 pd=3 as=15 ps=3
mn15 n4 vctrl gnd gnd nch l=2 w=3 ad=15 pd=3 as=15 ps=3

mp2 in out1 Vdd Vdd pch l=2 w=6 ad=30 pd=6 as=30 ps=6
mn2 in out1 Gnd GND nch l=2 w=3 ad=15 pd=3 as=15 ps=3

c in gnd 0.1f

vdd vdd gnd pwl(10P 0 100P 1.8)
vctrl vctrl gnd 1.1

.tran 0.01n 5u
.op
.option captab = 1

.OPTION POST=2 TNOM=27 NOMOD LIST METHOD=GEAR
.end

结语

debug的过程终是痛苦的,但当波形跑出来的那一刻,还是很有成就感的!希望大家都有所收获!

欢迎讨论!

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值