本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT
超大规模集成电路设计----CMOS组合逻辑门(六)
- 6.1 静态CMOS设计
- 6.1.1 互补CMOS
- 6.1.1.1 互补CMOS的静态特性
- 6.1.1.2 互补CMOS门的传播延时
- 6.1.1.3 确定互补CMOS门中晶体管尺寸
- 6.1.1.4 扇入与传播延时
- 6.1.1.5 降低大扇入电路的延时
- 改变晶体管尺寸
- 逐级加大晶体管尺寸
- 重新安排输入
- 重组逻辑结构
- 6.1.1.6 组合电路的性能优化
- 确定组合逻辑延时最小时的尺寸
- 最小延时组合逻辑块例题
- 6.1.1.7 CMOS逻辑门中的功耗
- 如何改善CMOS逻辑门的功耗
- 1. 逻辑重组
- 2. 输入排序
- 3. 分时复用资源
- 4.均衡信号路径减少毛刺
- 6.1.2 有比逻辑
- 基本概念
- 6.1.2.1 如何消除静态功耗及扩展摆幅至电源轨
- 6.1.3 传输管逻辑Pass-Transistor Logic
- 6.1.3.1基本概念
- 6.1.3.2差分传输管逻辑
- 6.1.3.3稳定有效的传输管设计
- 电平恢复
- 摆幅恢复传输管逻辑Swing-restored pass transistor logic
- 多阈值晶体管
- 传输门逻辑
- 传输门链的延时(重点)
- 6.2 动态CMOS设计
- 6.2.1 基本原理
- 优点:
- 缺点:
- 6.2.2 动态逻辑门的信号完整性问题
- 电荷泄露
- 电荷分享
- 电容耦合
- 时钟馈通
- 6.2.3 串联动态门
- 多米诺逻辑
- 解决多米诺逻辑的非反问题
- 方法一
- 方法二(普适)
- 方法三
- 补充:分支努力的计算
为什么要学习这一章:组合电路是进行逻辑计算的基础,在CMOS反相器的基础上探讨组合电路的种种特性是有必要的。标黄部分属于必须掌握的部分,黑体部分表示强调部分,有助于理解,对于普通字体部分,时间紧急的浏览者可以选择忽略,对于初学者,建议博文每部分都需要连贯阅读。
6.1 静态CMOS设计
6.1.1 互补CMOS
上面这就是互补CMOS逻辑,必须要有PDN和PUN。
NMOS是强0器件,PMOS是强1器件,NMOS传递1需要下降一个阈值电压,PMOS传递0需要增加一个阈值电压
==NMOS管串联表示与逻辑,并联表示或逻辑,所以对于NMOS管有串与并或,相应PMOS串或并与,但是要注意互补CMOS逻辑输出都是带非的。==比如下面这张图,NMOS是串联的,但是表示的是与非门。
下图表示的是这个逻辑表达式,
F
=
D
+
A
⋅
(
B
+
C
)
‾
F=\overline{{D+A\cdot(B+C)}}
F=D+A⋅(B+C)
6.1.1.1 互补CMOS的静态特性
对于不同的输入其VTC曲线是不一样的,A=B=0时有两个上拉器件,所以VTC曲线偏右。
6.1.1.2 互补CMOS门的传播延时
假如不考虑内部电容,输入数据不同导致电阻不同导致传播延时不同。
A
=
0
,
B
=
0
:
t
P
L
H
=
0.69
⋅
(
R
p
/
2
)
⋅
C
L
\begin{aligned}A{=}&0,B=0{:}\\&t_{PLH}=0.69{\cdot}(R_{p}/2){\cdot}C_{L}\end{aligned}
A=0,B=0:tPLH=0.69⋅(Rp/2)⋅CL
A
=
1
,
B
=
0
o
r
A
=
0
,
B
=
1
:
t
P
L
H
=
0.69
⋅
R
p
⋅
C
L
.
\begin{aligned}A=1,B=0&\mathrm{~or~}A=0,B=1:\\t_{PLH}&=0.69\cdot R_p\cdot C_L.\end{aligned}
A=1,B=0tPLH or A=0,B=1:=0.69⋅Rp⋅CL.
A
=
1
,
B
=
1
:
t
P
H
L
=
0.69
⋅
(
2
R
N
)
⋅
C
L
\begin{aligned}A=1,B=1&:\\t_{PHL}&=0.69\cdot(2R_{N})\cdot C_{L}\end{aligned}
A=1,B=1tPHL:=0.69⋅(2RN)⋅CL
即使我们考虑了内部电容,可以想到传播延时仍然受到输入数据的控制。
6.1.1.3 确定互补CMOS门中晶体管尺寸
如何让这个与非门有着和最小的反相器同样的上拉和下拉时间。 即要求PDN和PUN都具有和最小反相器同样大小的等效导通电阻。最小反相器的大小是给定的(在考试里面就是出题人给定的,在实际中就是公式或者用户给定的。
在与非门的讨论里面我们假设最小反相器NMOS: W/L=1:1 PMOS: W/L=2:1。那么与非门的宽长比设计就如上图所示,PMOS是2:1,NMOS也是2:1。
确定或非门同理,想要延时和反相器一致,就得保证这个组合逻辑门与反相器电阻一致。
6.1.1.4 扇入与传播延时
我们知道输出由高变低是所有的NMOS都工作,NMOS的电容和电阻也都加在延时里面了,而输出由低变高是所有的PMOS管都往上拉,上拉的PMOS管越多,上拉电阻越小,所以我们会发现上图随着Fan-in的增加,变化剧烈的是tpHL,因为扇入越大,NMOS数量就越多,高变低延时就会增加!所以我们一般不设计4个输入口以上的门电路。
同时高变低延时是扇入的二次方函数关系,具体方程为
t
p
H
L
=
0.69
R
N
(
(
1
+
N
)
N
2
C
)
t_{pHL}=0.69R_{N}(\frac{(1+N)N}2C)
tpHL=0.69RN(2(1+N)NC)
6.1.1.5 降低大扇入电路的延时
改变晶体管尺寸
加大晶体管尺寸,但是如果负载电容主要是intrinsic电容,即门本身的电容,则我们不应该再增大门了,这样即使减小了电阻也会增大电容.只有当负载以扇出为主时增大尺寸才有用.
逐级加大晶体管尺寸
t
p
H
L
=
0.69
(
R
1
⋅
C
1
+
(
R
1
+
R
2
)
⋅
C
2
+
(
R
1
+
R
2
+
R
3
)
⋅
C
3
+
(
R
1
+
R
2
+
R
3
+
R
4
)
⋅
C
L
)
t_{pHL}=0.69(R_1\cdot C_1+(R_1+R_2)\cdot C_2+(R_1+R_2+R_3)\cdot C_3+(R_1+R_2+R_3+R_4)\cdot C_L)
tpHL=0.69(R1⋅C1+(R1+R2)⋅C2+(R1+R2+R3)⋅C3+(R1+R2+R3+R4)⋅CL)从这个公式知道晶体管M1的电阻被算了四次,所以越往下,电阻应该越小越好,即门越大越好。
重新安排输入
简单来说就是哪个输入信号来的最慢就把这个信号放到离输出最近的地方,让其他先到的信号先把NMOS的门开起来,让开了的门电容先放电,等这个关键信号(也即最慢的信号)到了,其他电容已经放完了电,这个时候它再放就很快了。
重组逻辑结构
多输入延迟太大了,拆开来要快一点,要实现上面这种改变,可以利用逻辑表达式,加两次非即可拆开。
6.1.1.6 组合电路的性能优化
把反相器延时公式 t p = t p 0 ( 1 + C e x t γ C g ) = t p 0 ( 1 + f / γ ) t_p~=~t_{p0}(1+\frac{C_{ext}}{\gamma C_g})~=~t_{p0}(1+f/\gamma) tp = tp0(1+γCgCext) = tp0(1+f/γ)改写成 t p = t p 0 ( p + g f / γ ) t_p~=~t_{p0}(p+gf/\gamma) tp = tp0(p+gf/γ)
f
f
f为电气努力(electrical effort),也叫有效扇出,定义为外部负载与输入电容的比值。
p
p
p表示复合门和简单反相器的本征延时(空载延时)的比值。
p
p
p一般我们不是很关心,它与复合门本身的结构有关。常用
p
p
p值如下。
g
g
g称为逻辑努力(logic effort)。它有如下几种理解:
- 对于给定的负载,这个复合门需要比反相器更努力的工作才能得到与反相器类似的响应。
- 当这个逻辑门的输入与反相器具有相同的输入电容时,在产生输出电流方面它比反相器差多少。
- 一个逻辑门与反相器提供相同大小的电流时,它所表现的输入电容比反相器大多少。
假定反相器PMOS与NMOS的比值是2的情况下,常用门的逻辑努力如下。
那么任意门的逻辑努力到底该怎么求呢?
- 先确定最小尺寸的反相器PMOS和NMOS的尺寸比(一般是题目给我们这个尺寸,我们假定PMOS大小为2,NMOS大小为1),求出该最小尺寸反相器导通时NMOS和PMOS的电阻,假设NMOS电阻是Reqn,PMOS导通电阻是Reqp。注意,此处不要求知道Reqn:Reqp等于多少。
- 确定任意逻辑门的尺寸,使任意逻辑门在PUN网络工作时保证PUN的等效电阻和最小反相器的PMOS等效电阻一致为Reqp,使任意逻辑门在PDN网络工作时保证PDN的等效电阻和最小反相器的NMOS等效电阻一致为Reqn。记录下满足上面电阻要求的管子大小,将PUN的等效电阻记作Req_up,PDN的等效电阻记作Req_down。我们知道。那我们现在要做的就是合理调整PUN网络中的PMOS尺寸让Req_up=Reqp。同时要遵守一个法则,就是MOS管变大一倍,电阻缩小一半,电容扩大一倍。
- 最后要注意,逻辑努力是指算任意门一个端口的输入电容大小与最小反相器输入电容的比值的。
下面来看一个具体的例子
上图的反相器是最小尺寸的反相器,PMOS大小是2,NMOS大小是1,那么对于二输入与非门,我们首先要保证其PUN和PDN工作时电阻与最小反相器一致,那么二输入与非门的PUN中的每个PMOS管都要取大小2,然后保证PDN网络与NMOS电阻一致,所以二输入与非门中NMOS大小都是2。
接着我们们来看单个端口的输入电容,对于A输入来说如上图所示,它输入到了大小为2的PMOS和NMOS上,我们认为它们的电容大小都是2。所以对于A输入来说它的电容就是4。如图中红线框出来的。
最后根据逻辑努力的定义,得到与非门的逻辑努力
g
=
4
/
3
g=4/3
g=4/3
同理异或门的逻辑努力为
g
=
5
/
3
g=5/3
g=5/3
确定组合逻辑延时最小时的尺寸
通过任意组合逻辑块的延时可以表示成如下形式。
t
p
=
∑
j
=
1
N
t
p
,
j
=
t
p
0
∑
j
=
1
N
(
p
j
+
f
j
g
j
γ
)
t_p=\sum_{j\mathrm{~=~}1}^Nt_{p,j}=t_{p0}\sum_{j\mathrm{~=~}1}^N\left(p_j+\frac{f_jg_j}\gamma\right)
tp=∑j = 1Ntp,j=tp0∑j = 1N(pj+γfjgj) 其中
f
j
=
C
g
,
j
+
1
/
C
g
,
j
f_j=C_{g,j+1}/C_{g,j}
fj=Cg,j+1/Cg,j 和
γ
=
C
i
n
t
/
C
g
\gamma=C_{int}/C_g
γ=Cint/Cg
式中N表示组合逻辑块中子组合电路的个数,子组合电路可以是一个反相器,可以是一个与非门等等。
假如我们想让组合逻辑块的延时最小,即对上面这个公式求导并令其等于0,可以得到
f
1
g
1
=
f
2
g
2
=
0...
=
f
N
g
N
f_1g_1=f_2g_2=0...=f_Ng_N
f1g1=f2g2=0...=fNgN
我们把每一级子电路的
f
i
g
i
f_ig_i
figi定义成每一级子电路的门努力
h
i
h_i
hi,即门努力(gate effort)
h
i
=
f
i
g
i
h_i=f_ig_i
hi=figi
同时我们定义一个路径逻辑努力努力(path logic effort)
G
1
=
g
1
g
2
.
.
.
g
N
=
∏
1
N
g
i
G_1=g_1g_2...g_N=\prod_1^Ng_i
G1=g1g2...gN=∏1Ngi
再定义一个路径的有效扇出(路径的电气努力)
F
=
f
1
f
2
.
.
.
f
N
=
C
L
/
C
g
1
F=f_1f_2...f_N=C_L/C_{\text{g}1}
F=f1f2...fN=CL/Cg1
由于子电路可能是多个输入端口,整个组合逻辑块的初始输入电流一部分沿着我们分析的路径流动,一些离开了我们分析的路径。所以我们定义一个逻辑门的分支努力(branching effort)
b
=
C
o
n
−
p
a
t
h
+
C
o
f
f
−
p
a
t
h
C
o
n
−
p
a
t
h
b=\frac{C_{\mathrm{on-path}}+C_{\mathrm{off-path}}}{C_{\mathrm{on-path}}}
b=Con−pathCon−path+Coff−path
其中
C
o
n
−
p
a
t
h
C_{\mathrm{on-path}}
Con−path是我们分析的路径上的负载电容。
C
o
f
f
−
p
a
t
h
C_{off-path}
Coff−path是离开这条路径的连线上的电容。关于分支努力的详细说明,见本博文下方补充知识。
路径分支努力定义如下
B
=
∏
1
N
b
i
B=\prod_1^Nb_i
B=∏1Nbi
定义总路径努力
H
=
∏
1
N
h
i
H=\prod_1^Nh_i
H=∏1Nhi
再有了以上定义后我们进行如下推导。
- F = f 1 b 1 ⋅ f 2 b 2 ⋯ f N b N = ∏ 1 N f i b i = ∏ f i B F=\frac{f_1}{b_1}\cdot\frac{f_2}{b_2}\cdots\frac{f_N}{b_N}=\prod_1^N\frac{f_i}{b_i}=\frac{\prod f_i}B F=b1f1⋅b2f2⋯bNfN=∏1Nbifi=B∏fi
- H = ∏ 1 N h i = ∏ 1 N g i f i = G F B H=\prod_1^Nh_i=\prod_1^Ng_if_i=GFB H=∏1Nhi=∏1Ngifi=GFB
- 因为
h
i
=
f
i
g
i
h_i=f_ig_i
hi=figi对于每一个
i
i
i都相等,即每一个子电路的门努力都相等,又
H
=
∏
1
N
h
i
H=\prod_1^Nh_i
H=∏1Nhi,所以可以得到
h = H N h=\sqrt[N]{H} h=NH。 h = H N h=\sqrt[N]{H} h=NH是满足组合逻辑块延时最小的必要条件。
在
h
=
H
N
h=\sqrt[N]{H}
h=NH的条件下,路径延时的通式
t
p
=
∑
j
=
1
N
t
p
,
j
=
t
p
0
∑
j
=
1
N
(
p
j
+
f
j
g
j
γ
)
t_{p}=\sum_{j=1}^{N}t_{p,j}=t_{p0}\sum_{j=1}^{N}\left(p_{j}+\frac{f_{j}g_{j}}{\gamma}\right)
tp=∑j=1Ntp,j=tp0∑j=1N(pj+γfjgj)就可以变成最小延时
D
=
t
p
0
(
∑
j
=
1
N
p
j
+
N
(
H
N
)
γ
)
D=t_{p0}{\left(\sum_{j~=~1}^{N}p_j+\frac{N(\sqrt[N]{H})}\gamma\right)}
D=tp0(∑j = 1Npj+γN(NH))
这个公式中的
p
j
p_j
pj叫路径本征延时,
p
j
=
0.69
R
e
q
C
i
n
t
p_j=0.69R_{eq}C_{int}
pj=0.69ReqCint,其中
R
e
q
、
C
i
n
t
R_{eq}、C_{int}
Req、Cint是任意逻辑电路的等效电阻和本征电容,这两个乘积是个定值,因为假如我们对这个门扩大S倍,延时就变成了
p
j
=
0.69
1
S
R
e
q
S
C
i
n
t
=
0.69
R
e
q
C
i
n
t
p_j=0.69\frac1SR_{eq}SC_{int}=0.69R_{eq}C_{int}
pj=0.69S1ReqSCint=0.69ReqCint。
得到了最小延时表达式还不够,我们真正需要设计的是组合逻辑块中子电路的大小,那么我们该怎么求组合逻辑电路的大小呢?
- 首先回顾下尺寸系数 s s s的定义:假如一个门的尺寸系数为 s s s,那么这个门的所有端口的输入电容是参考门的输入电容的 s s s倍。这个参考门在前面推导反相器链的时候拿的是反相器举例,但是在下面的推导中我们认为参考门指的是同类型的门。即一个与非门它的参考门应该也是与非门,只不过这两个门大小比例是尺寸系数S
- 然后我们再回顾下逻辑努力 g g g的定义:它是指同样的驱动电流下,任意门所有端口的输入电容与最小反相器的输入电容的比值是 g g g。
- 所以对于一个任意门的参考门,它的输入电容
C
u
n
i
t
−
g
a
t
e
=
g
C
r
e
f
C_{unit-gate}=gC_{ref}
Cunit−gate=gCref,其中
C r e f C_{ref} Cref指的是参考反相器的电容。 C u n i t − g a t e C_{unit-gate} Cunit−gate指的是任意门的参考门。 - 假如某个门的尺寸系数为 s s s,则这个门的所有端口总电容大小为 C g = s C u n i t − g a t e C_{g}=sC_{unit-gate} Cg=sCunit−gate
现在我们看一下两级电路的例子。
C
g
2
=
(
f
1
b
1
)
C
g
1
C_{g2}=\left(\frac{f_1}{b_1}\right)C_{g1}
Cg2=(b1f1)Cg1
==
C
g
2
C_{g2}
Cg2指的是第二级电路的所有端口(包括研究路径和非研究路径上的)的输入电容。
f
1
f_1
f1是第一级电路的有效扇出,回顾下有效扇出的定义
f
=
C
e
x
t
/
C
g
f=C_{ext}/C_g
f=Cext/Cg,即外部负载电容与输入电容的比值。
令
C
e
x
t
=
f
1
C
g
1
C_{ext}=f_1C_{g1}
Cext=f1Cg1,
C
e
x
t
C_{ext}
Cext可以理解成第一级电路所有输出端口的所接负载的总电容。
C
e
x
t
b
1
\frac{C_{ext}}{b_1}
b1Cext就可以理解成第一级电路在所关心路径上的输出外接负载电容。即
C
g
2
=
C
e
x
t
b
1
=
(
f
1
b
1
)
C
g
1
C_{g2}=\frac{C_{ext}}{b_1}=\left(\frac{f_1}{b_1}\right)C_{g1}
Cg2=b1Cext=(b1f1)Cg1指的是第二级电路所有输入端口上所关心路径的输入电容。
看下面的图就可以得到解答。
C
g
1
f
1
=
C
g
2
+
C
g
3
C_{g1}f_1=C_{g2}+C_{g3}
Cg1f1=Cg2+Cg3
我们关心的路径如黄线所示,所以
C
g
2
=
(
f
1
b
1
)
C
g
1
C_{g2}=\left(\frac{f_1}{b_1}\right)C_{g1}
Cg2=(b1f1)Cg1
最小延时组合逻辑块例题
根据上面的推导我们得到这个式子。
6.1.1.7 CMOS逻辑门中的功耗
CMOS反相器功耗主要由负载电容,短路电流,阈值电压(亚阈值电流)影响。
CMOS组合逻辑门里面我们主要考虑开关频率的影响。
开关频率由逻辑功能、信号间的相关性、动态或虚假翻转(毛刺)决定。至于实际原理自行看书。
如何改善CMOS逻辑门的功耗
1. 逻辑重组
树形结构开关活动性比链式低,证明自行看书。
2. 输入排序
让翻转频率大的信号靠近输出。
3. 分时复用资源
没啥好处。
4.均衡信号路径减少毛刺
和第一个逻辑重组很像,但是逻辑重组主要是降低开关频率,这个主要是减少毛刺。
6.1.2 有比逻辑
基本概念
PUN或PDN被一个无条件负载器件替代(无条件即一直导通)的组合逻辑电路。由PDN网络和一个栅极接地的PMOS负载组成的网络叫伪NMOS门。
伪NMOS门输出能到VDD,但是到不了0,这会降低噪声容限,低电平输出取决于负载PMOS和PDN网络的相对电阻大小。
而且因为负载PMOS一直导通,会存在静态功耗。
由于输出电压摆幅及门的功能取决于NMOS和PMOS的尺寸比,所以叫有比电路。
通过对上图的分析,对于伪NMOS门,负载PMOS相对NMOS越大,越难下拉,那么输出的低电平就越高。
6.1.2.1 如何消除静态功耗及扩展摆幅至电源轨
图a中,PDN1和PDN2是互斥的,一个导通另一个就截止,假定PDN1导通,则一开始Out=VDD-Vthp,如果Out呢能够让M2导通,则/Out=1,/Out=1就把M1关断了,那么Out=0。
这种差分逻辑产生了一个正相输出一个反相输出,而且是同步的,避免了使用CMOS反相器将正相信号转成反相从而造成时延不同步。对比图如下
这种门缺点就是布线复杂,动态功耗较高。
6.1.3 传输管逻辑Pass-Transistor Logic
6.1.3.1基本概念
优点:==门少。==包括用于产生反逻辑B的CMOS反相器,整个电路一共4个MOS管。互补CMOS逻辑需要产生F=AB需要六个MOS管,四个MOS管用于与非门,两个MOS管用于反相器。
缺点:输入0产生0没问题,输入1产生的是VDD-Vtn,甚至还会因为体效应的原因Vtn升高导致输出电压更低。
假如所有的输入信号都为VDD,那么上图中a图的Y就会损失两个阈值电压,b图的Y会损失一个阈值电压,所以我们要尽量避免传输管逻辑的串联。
6.1.3.2差分传输管逻辑
类似于DCVLS,也是同相反相一起输出。
6.1.3.3稳定有效的传输管设计
电平恢复
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/afa40eff65c04742a2aea29a87108c07.png ==200x150)
加一个反馈晶体管Mr和一个由M1、M2组成的反相器就可以解决X点拉不到VDD的问题。
但是上面这个电路存在一个问题,如下图所示。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ff80f7a1bdca40d99ae96024d5d22128.png ==200x150)
当X一开始处于高电平,A=0, B从0翻转到1时,我们希望X也变成低电平,但这不是很容易做到的。
因为Mr和Mn的电阻大小决定了X的大小,如果Mr的电阻太小,X没法降到使M2导通的程度,那么Out就一直是低电平。
摆幅恢复传输管逻辑Swing-restored pass transistor logic
这是电平恢复器概念的改进。
多阈值晶体管
把管子的阈值改成0就不会存在电压降的问题了。但是阈值降低会增加亚阈值漏电。
传输门逻辑
能够得到轨到轨的输出,即输出为VDD到GND
传输门能实现异或逻辑,如下图所示。
传输门电阻由PMOS和NMOS电阻并联组成,差不多是个常数。看下图可知
传输门链的延时(重点)
根据Elmore近似公式,
t
p
(
V
n
)
=
0.69
∑
k
=
0
n
C
R
e
q
k
=
0.69
C
R
e
q
n
(
n
+
1
)
2
t_p(V_n)=0.69\sum_{k=0}^nCR_{eq}k=0.69CR_{eq}\frac{n(n+1)}2
tp(Vn)=0.69∑k=0nCReqk=0.69CReq2n(n+1)
式中Req是传输门等效电阻。
观察上式可得传播延时正比于
n
2
n²
n2,链中的开关数目增加延时也迅速增加。
我们知道这个延时与
n
2
n²
n2成正比, 还是太大了,我们希望小一点,最好的做法就是每隔m个传输门开关切断串联链,然后插入一个缓冲器,假定缓冲器延时
t
b
u
f
t_{buf}
tbuf。那么就会形成
n
m
\frac{n}{m}
mn段反相器链接,每段反相器链的延时
t
p
0
=
0.69
[
C
R
e
q
m
(
m
+
1
)
2
]
t_{p0}=0.69\biggl[CR_{eq}\frac{m(m+1)}{2}\biggr]
tp0=0.69[CReq2m(m+1)],所有段反相器链延时加起来为,
t
p
1
=
n
m
t
p
0
=
0.69
[
n
m
C
R
e
q
m
(
m
+
1
)
2
]
t_{p1}=\frac{n}{m}t_{p0}=0.69\biggl[\frac{n}{m}CR_{eq}\frac{m(m+1)}{2}\biggr]
tp1=mntp0=0.69[mnCReq2m(m+1)],整个电路的延时还要加上所有缓冲器的延时
(
n
m
−
1
)
t
b
u
f
\left(\frac nm-1\right)t_{buf}
(mn−1)tbuf,所以整个电路的延时为所有传输门子链的延时+所有缓冲器延时,为
0.69
[
C
R
e
q
n
(
m
+
1
)
2
]
+
(
n
m
−
1
)
t
b
u
f
0.69\left[CR_{eq}\frac{n(m+1)}2\right]+\left(\frac nm-1\right)t_{buf}
0.69[CReq2n(m+1)]+(mn−1)tbuf
观察这个总延时式子可知,延时不再与级数n成二次方比例,而是与n成线性关系。
6.2 动态CMOS设计
6.2.1 基本原理
这种电路能避免静态功耗。电路分为预充电和求值阶段。CLK为低,预充电管Mp导通,此时预充电,这个时候求值管Me关闭,无静态功耗。CLK为高,预充电管Mp关断,Me导通,此时是求值阶段。要注意的是PDN在求值阶段只能放电一次,放没了就没了。 还有如果求值阶段PDN关断,那么Out处于高阻,普通静态门可不会有高阻节点。
优点:
- 门少,只有N+2
- 无比逻辑,PMOS大小不影响逻辑功能和电平,只影响充电快慢。
- 门少了,开关速度快。
缺点:
- 虽然只有动态功耗,但是功耗还是比静态门大。
6.2.2 动态逻辑门的信号完整性问题
电荷泄露
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6df8bad05c7b427eaffedc34356d78c3.png ==300x400)
M1的反偏二极管和亚阈值漏电。 解决办法如下。
加个“充电器”–反相器和一个晶体管Mbl。
电荷分享
预充电阶段,Vout一开始是0,B=0,A从0变到1,CL就会与CB分享电荷导致Vout降低,如果这个电路后面接反相器,可能会导致后面的静态CMOS反相器产生静态功耗。
电容耦合
动态门的输出是通过高阻节点的电容来保持电平的,我们知道高阻节点很容易受到串扰,如图所示,Out2通过栅漏电容耦合反过来影响Out1。
时钟馈通
栅极端接时钟信号,而源极和漏极端通过信号时,由于存在栅源电容(Cgs)和栅漏电容(Cgd),时钟信号可能会耦合到源极和漏极端从而影响信号的现象。
6.2.3 串联动态门
一句话,串联动态门是不被允许的,会导致后级提前放电我们通常采用多米诺逻辑来改进这个缺点。
多米诺逻辑
==加一个静态反相器在输出上就好了。==但是这样的话,多米诺逻辑就只能实现非反逻辑了。
解决多米诺逻辑的非反问题
方法一
就是用德摩根定律,把有非的逻辑变成没有非,再使用多米诺逻辑。但是这种优化并不是总是可行。
方法二(普适)
双轨多米诺逻辑,Mf1和Mf2的作用是用来补偿电荷共享和电荷泄露的。
方法三
使用n-pCMOS
使用n-pMOS可以直接级联,但是要注意CLK的极性对于两块电路要反一下。
补充:分支努力的计算
对于A点的分支努力我们该如何计算。
b
1
=
C
N
A
N
D
2
+
C
N
O
R
2
C
N
A
N
D
2
=
(
2
+
r
)
+
(
1
+
2
r
)
2
+
r
=
3
(
1
+
r
)
2
+
r
\begin{aligned}b_1=\frac{C_{NAND2}+C_{NOR2}}{C_{NAND2}}=\frac{(2+r)+(1+2r)}{2+r}=\frac{3(1+r)}{2+r}\end{aligned}
b1=CNAND2CNAND2+CNOR2=2+r(2+r)+(1+2r)=2+r3(1+r)
上图各种门结构及其参数如下。
与非门的结构如下
或非门结构及参数如下