设计一·四路与非电路的Hspice 设计。 设计二·一位全加器电路的Hspice 设计。
专 业 电子科学与技术 学 号
学生姓名
指导老师 汪再兴
设计一·四路与非门的设计
一·设计目的:
1、学习使用电路设计与仿真软件HSPICE ,练习用网表文件来描述模拟电路,并熟悉应用HSPICE 内部元件库;
2、熟悉用MOS 器件来设计四位逻辑输入与非门电路。
二·原理(说明) 1.与非门
与非门是与门和非门的结合,先进行与运算,再进行非运算。与运算输入要求有两个,如果输入都用0和1表示的话,那么与运算的结果就是这两个数的乘积。如1和1(两端都有信号),则输出为1;1和0,则输出为0;0和0,则输出为0
2.4路与非门结构及原理:
A
B
C D
当输入端A 、B 、C 、D 中只要有一个为低电平时,就会使与它相连的NMOS 管截止,与它相连的PMOS 管导通,输出为高电平;仅当A 、B 、C 、D 全为高电平时,才会使四个串联的NMOS 管都导通,使四个并联的PMOS 管都截止,输出为低电平。
4路与非门mos 管的电路图:
三·设计过程:
Hspice 要进行仿真的时候,应事先编写好网表文件,再通过导入网表文件进行仿真。
输入的网表文件(.sp )包含以下内容:
(1)电路网表(子电路和宏,电源等) (2)声明所要使用的库 (3)说明要进行的分析 (4)说明所要求的输出
输入的网表文件和库文件可以由原理图的网表生成器或者文本编写产生。输入的网表文件中的第一行必须是标题行,并且.ALTER 辅助模型只能出现在文件最后的.end 语句之前,除此之外,其他语句可任意排列。
通过文本编写好的网表文件如下 4NAND CMOS
.OPTIONS LIST NODE POST .OP
.TRAN 200P 60N
M1 OUT 4 VCC VCC PCH L=1U W=20U M2 OUT 5 VCC VCC PCH L=1U W=20U M3 OUT 6 VCC VCC PCH L=1U W=20U M4 OUT 7 VCC VCC PCH L=1U W=20U M5 1 4 0 0 NCH L=1U W=20U M6 2 5 1 1 NCH L=1U W=20U M7 3 6 2 2 NCH L=1U W=20U M8 OUT 7 3 3 NCH L=1U W=20U VCC VCC 0 5
V1 4 0 PULSE .2 4.8 2N 1N 1N 5N 10N V2 5 0 PULSE .2 4.8 2N 1N 1N 5N 20N V3 6 0 PULSE .2 4.8 2N 1N 1N 5N 10N V4 7 0 PULSE .2 4.8 2N 1N 1N 5N 20N C OUT 0 .01p
.MODEL PCH PMOS LEVEL=1 .MODEL NCH NMOS LEVEL=1 .END
将网表文件导入HSpui 中进行仿真,得到lis 等文件,并用Avanwaves 软件进行观察结果。 结果图如下:
四·仿真分析
延迟分析:
在网表文件中添加下列语句
.measure tran tpdr trig v(4) val=2.5 rise=1 targ v(out) val=2.5 fall=1 .measure tran tpdf trig v(4) val=2.5 rise=1 targ v(out) val=2.5 fall=1 .measure tpd param='(tpdr+tpdf)/2' 并在.lis 文件中查看结果,结果如下:
****** transient analysis tnom= 25.000 temp= 25.000 ***** tpdr= 340.1950p targ= 2.8402n trig= 2.5000n
tpdf= 340.1950p targ= 2.8402n trig= 2.5000n tpd= 340.1950p
功耗分析:
在网表文件中添加.op 语句,并在仿真结果.lis 文件中查看: **** voltage sources
subckt element 0:v1 0:v2 0:v3 0:v4 0:vcc volts 200.0000m 200.0000m 200.0000m 200.0000m 5.0000 current 0. 0. 0. 0. -226.4388n power 0. 0. 0. 0. 1.1322u
total voltage source power dissipation= 1.1322u watts
设计二·一位全加器的设计
一.原理(说明)
在计算机中2个二进制数之间的加减乘除算术运算都是由若干加法运算实现的. 全加器是算术逻辑运算的重要组成部分, 对其深入探索研究有重要的意义。一位全加器及其表达式在将2个多位二进制数相加时, 除了最低位以外, 每位都应该考虑来自低位的进位, 即将2个对应位的加数和来自低位的进位3个数相加, 实现这种运算电路即是全加器. 设A 是加数,B 是被加数,CI 是来自低位的进位,S 是本位的和,CO 是向高位的进位. 根据二进制数加法运算规则和要实现的逻辑功能, 得出一位全加器真值表,
全加器除了两个1位二进制数相加以外,还与低位向本位的进位数相加. 表为全加器的真值表。
由真值表可得出逻辑函数式
式中,A i 和B i 是两个相加的1为二进制数,C i-1是由相邻低位送来的进位数,S I 是本位的全加和,C I 是向相邻高位送出的进位数。
一位全加器将A 、B 和进位输入Cin 作为输入,计算得到和Sum 以及最高位的进位输出Cout 。每一位得到的和与进位输出都直接受其上一位的影响,其进位输出也会影响下一位。最终,整个全加器的和与输出都受进位输入Cin 的影响。
二.设计过程
接下来用Cadence 软件包,采用MOS 管机构,对各个门电路进行设计,并最终整合成整个一位全加器。 2输入异或门的电路图
3输入或门的电路图
2输入与门的电路
最终形成的顶层电路图
三.运用Hspice 进行仿真。
接下来根据电路图,写出各个部分的Hspice 的网表文件,并运用hipice 的子电路思想,整合整个一位全加器电路的网表文件,并添加激励,产生最后结果并验证
一位全加器的Hspice 网表文件。 ADDER703
.GLOBAL vdd!
.OPTIONS LIST NODE POST .OP
.TRAN 1N 8u
.subckt or3 a b c y
m0 net10 a 0 0 nch L=1U W=20U m1 y net10 0 0 nch L=1U W=20U m2 net10 c 0 0 nch L=1U W=20U m3 net10 b 0 0 nch L=1U W=20U
m4 net14 b net033 net033 pch L=1U W=20U m5 y net10 vdd! vdd! pch L=1U W=20U m6 net10 c net14 net14 pch L=1U W=20U m7 net033 a vdd! vdd! pch L=1U W=20U .MODEL NCH NMOS LEVEL=1 .MODEL PCH PMOS LEVEL=1 .ends or3
.subckt and2 a b y
m0 y net10 0 0 nch L=1U W=20U
m1 net10 a net3 net3 nch L=1U W=20U m2 net3 b 0 0 nch L=1U W=20U
m3 y net10 vdd! vdd! pch L=1U W=20U m4 net10 b vdd! vdd! pch L=1U W=20U m5 net10 a vdd! vdd! pch L=1U W=20U .MODEL NCH NMOS LEVEL=1 .MODEL PCH PMOS LEVEL=1 .ends and2
.subckt xor2 a b y
m0 y a net27 net27 nch L=1U W=150U m1 net27 b 0 0 nch L=1U W=150U m2 y net11 0 0 nch L=1U W=150U m3 net11 b 0 0 nch L=1U W=150U m4 net11 a 0 0 nch L=1U W=150U
m5 net11 b net020 net020 pch L=1U W=5U m6 net020 a vdd! vdd! pch L=1U W=5U m7 net018 net11 vdd! vdd! pch L=1U W=5U m8 net018 a y y pch L=1U W=5U m9 net018 b y y pch L=1U W=5U .MODEL NCH NMOS LEVEL=1
.MODEL PCH PMOS LEVEL=1
.ends xor2
xi3 net13 net10 net7 cout or3
xi5 b cin net7 and2
xi4 cin a net10 and2
xi2 a b net13 and2
xi1 net14 cin sum xor2
xi0 a b net14 xor2
VA a gnd PULSE 0 5 0N 1N 1N 1u 2u
VB b gnd PULSE 0 5 0N 1N 1N 2u 4u
VC cin gnd PULSE 0 5 0N 1N 1N 4u 8u
V1 vdd! 0 dc=5
.END
将网表文件导入到hspui 软件中进行仿真,再用Avanwaves 软件观察结果。 一位全加器的Hspice 结果截图。
结果如下:
四·仿真分析
延迟分析:
在网表文件中添加下列语句:
.measure tran tpdr trig v(a) val=2.5 rise=2 targ v(sum) val=2.5 fall=2 .measure tran tpdf trig v(a) val=2.5 rise=2 targ v(cout) val=2.5 fall=2 .measure tpd param='(tpdr+tpdf)/2'
结果:
adder703
****** transient analysis tnom= 25.000 temp= 25.000 ***** tpdr= -1.9985u targ= 2.0020u trig= 4.0005u
tpdf= 1.0013u targ= 5.0018u trig= 4.0005u
tpd=-498.5775n
功耗结果:因为之前有添加.OP 语句,所以可以直接从lis 文件中查看到 voltage sources
subckt
element 0:v1 0:va 0:vb 0:vc
volts 5.0000 0. 0. 0.
current -145.3239p 0. 0. 0.
power 726.6195p 0. 0. 0.
otal voltage source power dissipation= 726.6195p watts
总结:
这次课设真可谓步步艰辛,整个课设的过程中,遇到了许多的困难,主要因为之前没有接触过HSPICE ,在网表文件的编写遇到了很大的困难,好在在团队的努力下,查阅资料,网上搜索相关教学,通过调用子电路的方式,完成了整个课设。同时让我感受到我在这次课设中我只是学到了Hspice 软件的一点皮毛,它的强大之处,还需要我继续的学习,才能领悟。
同时,也让我深刻体会到,团队精神,团队合作的重要性,如果没有大家齐心协力的努力,我想这个课设将无法完成。这也是我以后更加需要学习的地方。
课设虽然只是暂时的,但是学习与探索精神却必须是我们都要具备的思想,学海无涯,继续学习,才能更好的提高我们的自身素质,锻炼我的意志,让我们能在以后步入社会的生活中走得更远,走的更好。