文章目录
一、1bit全加器
在进行多位数相加过程中,每一位都是带进位相加的,所以必须使用全加器。这时只要依次将低位的进位输出接到高位的输入,就构成了多位加法器。
全加器是一种由被加数、加数和来自低位的进位数三者相加的运算器。基本功能是实现二进制加法。
全加器的真值表如下:
逻辑表达式:
S
=
A
ˉ
B
ˉ
C
i
n
+
A
ˉ
B
C
i
n
ˉ
+
A
B
ˉ
C
i
n
ˉ
+
A
B
C
i
n
=
A
⊕
B
⊕
C
i
n
S =\bar{A}\bar{B}C_{in}+\bar{A}B\bar{C_{in}}+A\bar{B}\bar{C_{in}}+ABC_{in}=A⊕B⊕C_in
S=AˉBˉCin+AˉBCinˉ+ABˉCinˉ+ABCin=A⊕B⊕Cin
C
o
u
t
=
A
ˉ
B
C
i
n
+
A
B
ˉ
C
i
n
+
A
B
C
i
n
ˉ
+
A
B
C
i
n
=
A
B
+
B
C
i
n
+
A
C
i
n
=
A
B
+
C
i
n
(
A
⊕
B
)
C_{out}= \bar{A}BC_{in}+A\bar{B}C_{in}+AB\bar{C_{in}}+ABC_{in}=AB+BC_in+AC_{in}=AB+C_{in} (A⊕B)
Cout=AˉBCin+ABˉCin+ABCinˉ+ABCin=AB+BCin+ACin=AB+Cin(A⊕B)
二、性能指标
在数字芯片的设计过程中,功耗,性能,面积,即Power, Performance, Area (PPA),是衡量一个设计好坏的指标。下面实验只从性能和面积进行分析。
对于性能,一般是通过CMOS电路的延迟进行分析,延迟用参数
t
p
H
L
和
t
p
L
H
t_{pHL}和t_{pLH}
tpHL和tpLH进行分析。对于面积,一般是通过CMOS电路的MOS管的个数进行分析。
谈及性能,还需要了解关键路径的概念。关键路径是指设计中从输入到输出经过的延时最长的逻辑路径。优化关键路径是一种提高设计工作速度的有效方法。一般地,从输入到输出的延时取决于信号所经过的延时最大路径,而与其他延时小的路径无关。关键路径影响着一个电路所能正常工作的最大频率。
三、CMOS电路的设计准则
在进行CMOS电路设计过程中,除了需要考虑电路功能的实现,还需要关注MOS管参数的选择,特别是对于NMOS和PMOS管宽长比的选择,它是集成电路设计中非常重要的一个参数,对电路的速度、功耗、延时以及输出波形的上升和下降时间有着非常重要的影响。为了进一步提高CMOS电路的性能,需要使得电路的上升和下降时间尽可能得接近,本次电路设计保持PMOS和NMOS的沟道宽长比之比为3:1。一般情况下,MOS管的沟道长度一般选择工艺的最小尺寸即180nm,因此在本次电路设计中,只需要关注MOS管沟道宽度即可。
在CMOS组合逻辑电路中n个MOS管并联,其宽长比通常保持与等效反相器中对应的MOS管一致,而n个MOS管串联,其宽长比应变为等效反相器中对应MOS管的n倍。如图1与门CMOS电路,本次设计中反相器NMOS的宽长比为500nm/180nm,PMOS的宽长比为1500nm/180nm,因此其他电路的设计PMOS和NMOS管的宽长比之比需要保持3:1的比例。如图1中的红框为NMOS的下拉电路,为两个NMOS串联,因此宽长比应该为反相器NMOS宽长比的两倍,即为1000nm/500nm。如图1中的蓝框为PMOS的上拉电路,为两个PMOS管并联,因此宽长比应该与反相器的PMOS管的尺寸一致,即为1500nm/500nm。
四、1bit全加器的设计与实现
1. 基础门电路的设计和实现
根据全加器的逻辑表达式
S
=
A
ˉ
B
ˉ
C
i
n
+
A
ˉ
B
C
i
n
ˉ
+
A
B
ˉ
C
i
n
ˉ
+
A
B
C
i
n
=
A
⊕
B
⊕
C
i
n
S =\bar{A}\bar{B}C_{in}+\bar{A}B\bar{C_{in}}+A\bar{B}\bar{C_{in}}+ABC_{in}=A⊕B⊕C_in
S=AˉBˉCin+AˉBCinˉ+ABˉCinˉ+ABCin=A⊕B⊕Cin
C
o
u
t
=
A
ˉ
B
C
i
n
+
A
B
ˉ
C
i
n
+
A
B
C
i
n
ˉ
+
A
B
C
i
n
=
A
B
+
B
C
i
n
+
A
C
i
n
=
A
B
+
C
i
n
(
A
⊕
B
)
C_{out}= \bar{A}BC_{in}+A\bar{B}C_{in}+AB\bar{C_{in}}+ABC_{in}=AB+BC_in+AC_{in}=AB+C_{in} (A⊕B)
Cout=AˉBCin+ABˉCin+ABCinˉ+ABCin=AB+BCin+ACin=AB+Cin(A⊕B)
由上述表达式可以发现S输出可以通过两个异或门实现,而进位输出C_out有两种实现方式,分别为AB+BC_in+AC_in和AB+C_in (A⊕B)。可以得到目前一位全加器所需要的门电路有与门、或门以及异或门。若采用门电路的方法实现一位全加器,先搭建所需门电路。
1)与门的实现
与门为
C
=
A
B
=
A
B
‾
‾
C=AB=\overline{\overline{AB}}
C=AB=AB,可以得到图2与门的CMOS电路,需要6个MOS管。
2)或门的实现
与门为
C
=
A
+
B
=
A
+
B
‾
‾
C=A+B=\overline{\overline{A+B}}
C=A+B=A+B,可以得到图3与门CMOS电路,需要6个MOS管。
对于三输入的或门输出
D
=
A
+
B
+
C
=
A
+
B
+
C
‾
‾
D=A+B+C=\overline{\overline{A+B+C}}
D=A+B+C=A+B+C,可以得到图4三输入或门CMOS电路,需要8个MOS管。
3)异或门的实现
异或门为
C
=
A
⊕
B
=
A
ˉ
B
+
A
B
ˉ
=
A
ˉ
B
+
A
ˉ
B
‾
‾
=
(
A
+
B
ˉ
)
(
A
ˉ
+
B
)
‾
C=A⊕B=\bar{A}B+A\bar{B}=\overline{\overline{\bar{A}B+\bar{A}B}}=\overline{(A+\bar{B})(\bar{A}+B)}
C=A⊕B=AˉB+ABˉ=AˉB+AˉB=(A+Bˉ)(Aˉ+B),可以得到图5异或门CMOS电路,需要12个MOS管。
2. 1bit全加器的实现
1)电路一
S
=
A
⊕
B
⊕
C
i
n
S =A⊕B⊕C_in
S=A⊕B⊕Cin
C
o
u
t
=
A
B
+
B
C
i
n
+
A
C
i
n
C_{out}=AB+BC_in+AC_{in}
Cout=AB+BCin+ACin
利用上面封装好的门电路并根据上述公式实现1bit全加器可以得到图6电路图(a)。可以得到该实现方法需要2个异或门、3个与门和1一个三输入的或门(或者两个或门),总共需要2×12+3×6+1×8=50个MOS管。以关键路径角度来看,该电路比较对称,对于输出Sum,关键路径就是两个异或门,对输出
C
o
u
t
C_{out}
Cout,关键路径就是一个与门和一个三输入的或门。
2)电路二
S
=
A
⊕
B
⊕
C
i
n
S = A⊕B⊕C_in
S=A⊕B⊕Cin
C
o
u
t
=
A
B
+
C
i
n
(
A
⊕
B
)
C_{out} =AB+C_{in} (A⊕B)
Cout=AB+Cin(A⊕B)
利用上面封装好的门电路并根据上述公式实现1bit全加器可以得到图6电路图(b)。可以得到该实现方法需要2个异或门、2个与门和一个或门,其中输出S和
C
o
u
t
C_{out}
Cout复用了一个异或门,总共2×12+2×6+1×8=42个MOS管。以关键路径角度来看,对于输出Sum,关键路径还是两个异或门,对于输出
C
o
u
t
C_{out}
Cout,关键路径是一个异或门、一个与门和一个或门。
3. 测试电路实现
基于上述两种全加器进行测试电路的设计,如图7,添加A、B、Cin三个脉冲激励源和一个1.8V直流电压Vdc,观察输入和输出波形。
A: Voltage1 = 1.8V Voltage2 = 0V Period = 100ns Pluse_width = 50ns Rise_time = 1ps Fall_time=1ps delay_time = 0s
B:Voltage1 = 1.8V Voltage2 = 0V Period = 200ns Pluse_width = 100ns Rise_time = 1ps Fall_time=1ps delay_time = 0s
Cin:Voltage1 = 1.8V Voltage2 = 0V Period = 400ns Pluse_width = 200ns Rise_time = 1ps Fall_time=1ps delay_time = 0s