超大规模集成电路设计----CMOS反相器(五)

本文仅供学习,不作任何商业用途,严禁转载。绝大部分资料来自----数字集成电路——电路、系统与设计(第二版)及中国科学院段成华教授PPT

超大规模集成电路设计----CMOS反相器(五)

为什么要学习这一章:CMOS反相器充斥着组合电路和时序电路的各个角落。在本篇博文中,我们将首先对CMOS反相器的静态和动态特性进行分析,然后再分析各种负载强度下,我们应该如何合理地设计反相器。最后我们对CMOS反相器的功耗进行分析。标黄部分属于必须掌握的部分,黑体部分表示强调部分,有助于理解,对于普通字体部分,时间紧急的浏览者可以选择忽略,对于初学者,建议博文每部分都需要连贯阅读。

5.1 静态CMOS反相器综述

5.1.1 静态CMOS反相器优点

为什么我们要用CMOS反相器,它究竟有什么魔力

  1. 输出摆幅为电源轨。
  2. 输出逻辑电平与器件相对尺寸无关,晶体管可做到当前工艺下的最小,为无比逻辑。
  3. 静态时,输出点与VDD或GND有一个有限电阻的通路,具有低输出阻抗,所以对噪声不敏感。
  4. 输入电阻极高,理论上可以有无穷大的扇出。
  5. 稳态情况下电源线和地线无直接通路,没有电流(忽略漏电流),意味着没有静态功率。
    在这里插入图片描述
    在这里插入图片描述

5.1.2 静态CMOS反相器的VTC曲线

具体推导看书即可,这里直接给出VTC曲线。
在这里插入图片描述
要记住不同的输入电压,对应NMOS管和PMOS管的工作状态

5.1.3 静态CMOS反相器瞬态响应简要分析

在这里插入图片描述
t P H L = f ( R o n , C L ) = 0.69 R o n C L t_{PHL}=f(R_{on},C_L)=0.69R_{on}C_L tPHL=f(Ron,CL)=0.69RonCL,从这个式子我们可以看出,反相器的速度取决于MOS管的等效电阻和负载电容,那么究竟该如何降低这个传播延时呢,后续我们将进行讨论。

5.2 CMOS反相器稳定性评估——静态特性

V O H = V D D V O L = G N D V_{OH}=VDD V_{OL}=GND VOH=VDDVOL=GND,在这一前提下,我们来推导 V M , V I H , V I L V_M,V_{IH},V_{IL} VM,VIH,VIL及噪声容限的精确值。即我们分析反相器的稳定性是通过分析反相器的噪声容限来实现的。

5.2.1 开关阈值 V M V_M VM

V M V_M VM 定义在 V i n = V o u t V_{in}=V_{out} Vin=Vout的点,反映在VTC曲线上就是y=x这条直线与VTC曲线的交点横坐标。
因为当输入电压在开关阈值附近时,PMOS和NMOS均处于饱和状态,所以可以得到下面这个式子
k n V D S A T n ( V M − V T n − V D S A T n 2 ) + k p V D S A T p ( V M − V D D − V T p − V D S A T p 2 ) = 0 k_nV_{DSATn}\bigg(V_M-V_{Tn}-\frac{V_{DSATn}}{2}\bigg)+k_pV_{DSATp}\bigg(V_M-V_{DD}-V_{Tp}-\frac{V_{DSATp}}{2}\bigg)=0 knVDSATn(VMVTn2VDSATn)+kpVDSATp(VMVDDVTp2VDSATp)=0
化简得
V M = ( V T n + V D S A T n 2 ) + r ( V D D + V T p + V D S A T p 2 ) 1 + r V_M=\frac{\left(V_{Tn}+\frac{V_{DSATn}}{2}\right)+r\Big(V_{DD}+V_{Tp}+\frac{V_{DSATp}}{2}\Big)}{1+r} VM=1+r(VTn+2VDSATn)+r(VDD+VTp+2VDSATp)
其中
r = k p V D S A T p k n V D S A T n = υ s a t p W p υ s a t n W n r=\frac{k_pV_{DSATp}}{k_nV_{DSATn}}=\frac{\mathbf{\upsilon}_{satp}W_p}{\mathbf{\upsilon}_{satn}W_n} r=knVDSATnkpVDSATp=υsatnWnυsatpWp

为了分析方便,我们将上面的式子简化,得到
V M ≈ r V D D 1 + r V_M\approx\frac{rV_{DD}}{1+r} VM1+rrVDD
以后分析开关阈值,我们都只看这个简化的式子。

简单观察这个式子,我们发现如果r越大,则开关阈值就越大,直观的物理理解就是,r越大表明PMOS管子做的比NMOS越大,那么PMOS上拉能力就强,这样我要把输出电压下拉就需要更大的输入电压,这样开关阈值就增大了。

假如工程要求给定开关阈值,要求我们求PMOS和NMOS的大小比,那就根据下式来决定。
( W / L ) p ( W / L ) n = k n ′ V D S A T n ( V M − V T n − V D S A T n / 2 ) k p ′ V D S A T p ( V D D − V M + V T p + V D S A T p / 2 ) \frac{(W/L)_p}{(W/L)_n}=\frac{k'_nV_{DSATn}(V_M-V_{Tn}-V_{DSATn}/2)}{k'_pV_{DSATp}(V_{DD}-V_M+V_{Tp}+V_{DSATp}/2)} (W/L)n(W/L)p=kpVDSATp(VDDVM+VTp+VDSATp/2)knVDSATn(VMVTnVDSATn/2)
一个经典示例,0.25um下,给CMOS反相器2.5V供电,若要求开关阈值为1.25V,即电源电压的一半,则此时
( W / L ) p ( W / L ) n = 3.5 \frac{(W/L)_p}{(W/L)_n}=3.5 (W/L)n(W/L)p=3.5最好是记住这个比例值

PMOS与NMOS比例对开关阈值影响详细分析

在这里插入图片描述
观察这个图可以得到如下信息

  1. VM对于器件比值的变化相对没想象的那么敏感,较小的比值变化对VM影响不大,这降低了对工艺准度的依赖。
  2. 可以利用PMOS和NMOS宽度比值变化来改变开关阈值从而主动制作一个VTC曲线不对称的CMOS反相器。具体应用如下图。
    在这里插入图片描述
    观察上图,对于Vma的阈值,输出响应如a所示,跳变非常多,但是如果把阈值改成Vmb,输出就会变得光滑。

5.2.2 噪声容限

对于一般情况,定义 V I H V_{IH} VIH V I L V_{IL} VIL为VTC曲线上 d V o u t d V i n = − 1 \begin{aligned}\frac{\mathrm{d}V_{out}}{\mathrm{d}V_{in}}&=-1\end{aligned} dVindVout=1的两个点,这个时候反相器的小信号增益g=-1,这样可以推导出 V I H V_{IH} VIH V I L V_{IL} VIL的解析表达式,但是过于复杂了,下面我们采用一种更合理的手工分析方法来分析。

在这里插入图片描述
我们先利用VTC曲线找到VM,然后求出VM处的斜率曲线,让这个斜率曲线与Vout=VOH和Vout=VOL相交,得到的两个点分别就是VIL和VIH。

那么该如何推导出VIH和VIL用VM和g表达的式子呢?请看下面的推导。

  1. 首先我们先把过VM且斜率为g的曲线表达出来 V o u t − V M = g ( V i n − V M ) V_{out}-V_M=g(V_{in}-V_M) VoutVM=g(VinVM)
  2. 令Vout=0得到 V I H = V M − V M g V_{IH}=V_M-\frac{V_M}g VIH=VMgVM
  3. 令Vout=VDD得到 V I L = V M + V D D − V M g V_{IL}~=~V_M+\frac{V_{DD}-V_M}g VIL = VM+gVDDVM

得到VIH和VIL之后就可以得到 N M H NM_H NMH N M L NM_L NML,即高电压噪声容限和低电压噪声容限。
N M H = V D D − V I H NM_H=V_{DD}-V_{IH} NMH=VDDVIH
N M L = V I L NM_L=V_{IL} NML=VIL

最后我们还要求一下g的表达式
k n V D S A T n ( V i n − V T n − V D S A T n 2 ) ( 1 + λ n V o u t ) + k p V D S A T p ( V i n − V D D − V T p − V D S A T p 2 ) ( 1 + λ p V o u t − λ p V D D ) = 0 \begin{gathered}k_nV_{DSATn}\bigg(V_{in}-V_{Tn}-\frac{V_{DSATn}}2\bigg)(1+\lambda_nV_{out})+k_pV_{DSATp}\bigg(V_{in}-V_{DD}-V_{Tp}-\frac{V_{DSATp}}2\bigg)(1+\lambda_pV_{out}-\lambda_pV_{DD})=0\end{gathered} knVDSATn(VinVTn2VDSATn)(1+λnVout)+kpVDSATp(VinVDDVTp2VDSATp)(1+λpVoutλpVDD)=0
通过对这个反相器的电流表达式求导即可得增益。

d V o u t d V i n = − k n V D S A T n ( 1 + λ n V o u t ) + k p V D S A T p ( 1 + λ p V o u t − λ p V D D ) λ n k n V D S A T n ( V i n − V T n − V D S A T n / 2 ) + λ p k p V D S A T p ( V i n − V D D − V T p − V D S A T p / 2 ) \frac{\mathrm{d}V_{out}}{\mathrm{d}V_{in}}=-\frac{k_nV_{DSATn}(1+\lambda_nV_{out})+k_pV_{DSATp}(1+\lambda_pV_{out}-\lambda_pV_{DD})}{\lambda_nk_nV_{DSATn}(V_{in}-V_{Tn}-V_{DSATn}/2)+\lambda_pk_pV_{DSATp}(V_{in}-V_{DD}-V_{Tp}-V_{DSATp}/2)} dVindVout=λnknVDSATn(VinVTnVDSATn/2)+λpkpVDSATp(VinVDDVTpVDSATp/2)knVDSATn(1+λnVout)+kpVDSATp(1+λpVoutλpVDD)

忽略某些二次项并令Vin=VM代入上式得到
g = − 1 I D ( V M ) k n V D S A T n + k p V D S A T p λ n − λ p ≈ 1 + r ( V M − V T n − V D S A T n / 2 ) ( λ n − λ p ) \begin{aligned}g&=-\frac1{I_D(V_M)}\frac{k_nV_{DSATn}+k_pV_{DSATp}}{\lambda_n-\lambda_p}\\&\approx\frac{1+r}{(V_M-V_{Tn}-V_{DSATn}/2)(\lambda_n-\lambda_p)}\end{aligned} g=ID(VM)1λnλpknVDSATn+kpVDSATp(VMVTnVDSATn/2)(λnλp)1+r
其中 I D ( V M ) I_D(V_M) ID(VM)是Vin=VM时流过反相器的电流。

观察上述的g的表达式可知,这个增益几乎完全取决于工艺参数,特别是沟道长度调制效应。通过改变电源电压和晶体管尺寸产生的影响很小。
在实际例子中,通过上述表达式算出来的g绝对值会比实际偏大,所以实际中噪声容限是要比理论计算小的。关于这段话的论证,可以看原书的例题5.2

5.3.3 再谈稳定性

器件参数的变化

我们之前就讨论过,器件大小的变化对开关阈值变化并不明显,但是为了进一步确认其他工艺参数也不会对CMOS门造成大影响,我们还是进行了如下仿真。
在这里插入图片描述

可以发现器件的栅氧厚度,长度,宽度和阈值对VTC曲线变化不是很明显,这是非常好的特性!

降低电源电压

根据这个表达式① g = − 1 I D ( V M ) k n V D S A T n + k p V D S A T p λ n − λ p ≈ 1 + r ( V M − V T n − V D S A T n / 2 ) ( λ n − λ p ) \begin{aligned}g&=-\frac1{I_D(V_M)}\frac{k_nV_{DSATn}+k_pV_{DSATp}}{\lambda_n-\lambda_p}\\&\approx\frac{1+r}{(V_M-V_{Tn}-V_{DSATn}/2)(\lambda_n-\lambda_p)}\end{aligned} g=ID(VM)1λnλpknVDSATn+kpVDSATp(VMVTnVDSATn/2)(λnλp)1+r和表达式② V M ≈ r V D D 1 + r V_M\approx\frac{rV_{DD}}{1+r} VM1+rrVDD我们得到一个结论。
如果降低VDD,那么g的绝对值会增大,这肯定是有好处的
在这里插入图片描述
假定阈值电压Vth=0.4V,从这张图可以看出,当VDD>Vth时,减小VDD确确实实能增大过渡区增益。那我们能不能继续降低VDD到Vth以下呢?答案是可以再减小一点,但是也不能太少。那究竟具体能到多少呢?请看下面分析。
在这里插入图片描述
假如我们再降VDD,让其在Vth以下,仍然会存在VTC曲线,这是亚阈值电流的原因,但是由于电流太小,输出变化其实是很慢的。然而我们发现当VDD降到很小的时候,VTC曲线就开始不成样子了,根据理论知识,我们要求电源电压大于两倍的热电势,因为当VDD低于这一个电压的时候,热噪声就很大了,会出问题,写成表达式如下

V D D m i n > 2...4 k T q V_{DDmin}>2...4\frac{kT}q VDDmin>2...4qkT

5.3 CMOS反相器的动态特性

由于CMOS的传播延时与CL负载电容有关,那么减小CL就是关键,既然要减小CL,那我们就要分析CL具体是怎么组成的。

5.3.1 计算电容值

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e90ad8101a5d4ed2b882f700aca8e7fc.png = 700x300)
这张图画出的所有电容都会影响Vout的瞬态响应,所以我们把图中的所有电容加起来就是Vout点出的CL。下面讨论CL是我们假定Vin输入的信号上升和下降时间都为0。

5.3.1.1 栅漏电容 C g d 1 , 2 C_{gd1,2} Cgd1,2

密勒效应(Miller effect)是在电子学中,反相放大电路中(反相电路独有!),输入与输出之间的分布电容或寄生电容由于放大器的放大作用,其等效到输入端的电容值会变成1+K倍,等效到输出的电容会变成1+1/K倍,其中K是该级放大电路电压放大倍数的绝对值。所以其中一个栅漏电容等效如下图所示。默认反相器K=-1

在这里插入图片描述
假如Vout一开始是高点平,Vin一开始是低电平,这个时候NMOS处于截止区,这个时候Vin瞬间变成高点平,在这一瞬间NMOS是处于饱和区的,然后Vout开始放电,我们只讨论Vout从VDD放电到1/2 VDD的过程,同时假定1/2VDD>VDD-Vthn,在这个假定下,NMOS在开始的时候是截止区,Vin一变化到高点平到放电结束(Vout=1/2VDD)这个过程,NMOS都处于饱和区。在这个分析下,我们可以得到Cgd的公式如下

C g d n = 2 C G D 0 n W n C_{gdn}=2C_{GD0n}W_n Cgdn=2CGD0nWn,注意这个只是NMOS的Cgd,不包括PMOS的,PMOS和这个类似但是这个公式已经考虑了密勒效应。

5.3.1.2 扩散电容 C d b 1 , 2 C_{db1,2} Cdb1,2

扩散电容来自于漏极和体之间的反偏PN结,之前在讨论MOS器件的时候已经讨论过了,详情见这篇博文超大规模集成电路设计----MOS器件原理(三)

然而这是一个非线性的电容,我们将其线性化如下。
C e q = K e q C j 0 C_{eq}=K_{eq}C_{j0} Ceq=KeqCj0
K e q = − ϕ 0 m ( V h i g h − V l o w ) ( 1 − m ) [ ( ϕ 0 − V h i g h ) 1 − m − ( ϕ 0 − V l o w ) 1 − m ] K_{eq}=\frac{-\phi_0^m}{(V_{high}-V_{low})(1-m)}[(\phi_0-V_{high})^{1-m}-(\phi_0-V_{low})^{1-m}] Keq=(VhighVlow)(1m)ϕ0m[(ϕ0Vhigh)1m(ϕ0Vlow)1m]

5.3.1.3 连线电容 C w C_{w} Cw

这个电容取决于连线的长度和宽度,还与扇出离驱动门的距离,扇出门的数目有关。

5.3.1.4 扇出的栅电容 C g 3 , 4 C_{g3,4} Cg3,4

假设负载栅电容等于两个负载门栅电容的总和。
C f a n o u t = C g a t e ( N M O S ) + C g a t e ( P M O S ) = ( C G S O n + C G D O n + W n L n C o x ) + ( C G S O p + C G D O p + W p L p C o x ) \begin{aligned}C_{fanout}&=C_{gate}(\mathrm{NMOS})+C_{gate}(\mathrm{PMOS})\\&=(C_{GSOn}+C_{GDOn}+W_{n}L_{n}C_{ox})+(C_{GSOp}+C_{GDOp}+W_{p}L_{p}C_{ox})\end{aligned} Cfanout=Cgate(NMOS)+Cgate(PMOS)=(CGSOn+CGDOn+WnLnCox)+(CGSOp+CGDOp+WpLpCox)
这里我们认为 C g 3 C_{g3} Cg3 C g 4 C_{g4} Cg4是直接连接到VDD和GND的,并且忽略密勒效应。同时假定一个管子一直是线性的,另一个管子从截止进入饱和状态,这样的话沟道电容一直不变,一直是 W L C o x WLC_{ox} WLCox

5.3.1.5 总的电容 C L C_L CL

C L = ( C g d 1 + C d g 2 ) + ( C d b 1 + C d b 2 ) + ( C g 3 + C g 4 ) + C w C_L=(C_{gd1}+C_{dg2})+(C_{db1}+C_{db2})+(C_{g3}+C_{g4})+C_w CL=(Cgd1+Cdg2)+(Cdb1+Cdb2)+(Cg3+Cg4)+Cw

5.3.1.6 识版图

在这里插入图片描述

5.3.2 传播延时:一阶分析

简要分析VDD、W/L、CL对 t p t_p tp的影响

t p H L = ln ⁡ ( 2 ) R e q n C L = 0.69 R e q n C L t p L H = 0.69 R e q p C L t p = t p H L + t p L H 2 = 0.69 C L ( R e q n + R e q p 2 ) \begin{aligned} &t_{pHL}=\ln(2)R_{eqn}C_{L}=0.69R_{eqn}C_{L} \\ &t_{pLH}=0.69R_{eqp}C_{L} \\ &t_{p}=\frac{t_{pHL}+t_{pLH}}{2}=0.69C_{L}\Big(\frac{R_{eqn}+R_{eqp}}{2}\Big) \end{aligned} tpHL=ln(2)ReqnCL=0.69ReqnCLtpLH=0.69ReqpCLtp=2tpHL+tpLH=0.69CL(2Reqn+Reqp)

R e q = 1 V D D / 2 ∫ V D D / 2 V I D S A T ( 1 + λ V ) d V ≈ 3 4 V D D I D S A T ( 1 − 7 9 λ V D D ) w i t h I D S A T = k W L ( ( V D D − V T ) V D S A T − V D S A T 2 2 ) \begin{gathered} R_{eq} =\frac{1}{V_{DD}/2}\int_{V_{DD}/2}\frac{V}{I_{DSAT}(1+\lambda V)}dV\approx\frac{3}{4}\frac{V_{DD}}{I_{DSAT}}\biggl(1-\frac{7}{9}\lambda V_{DD}\biggr) \\ \mathrm{with}\quad I_{DSAT}=k\frac{W}{L}\Big((V_{DD}-V_{T})V_{DSAT}-\frac{V_{DSAT}^{2}}{2}\Big) \end{gathered} Req=VDD/21VDD/2IDSAT(1+λV)VdV43IDSATVDD(197λVDD)withIDSAT=kLW((VDDVT)VDSAT2VDSAT2)

综上得到
t p H L = 0.69 3 4 C L V D D I D S A T n = 0.52 C L V D D ( W / L ) n k n ′ V D S A T n ( V D D − V T n − V D S A T n / 2 ) t_{_{pHL}}=0.69\frac{3}{4}\frac{C_{L}V_{DD}}{I_{DSATn}}=0.52\frac{C_{L}V_{DD}}{(W/L)_{n}k'_{n}V_{DSATn}(V_{DD}-V_{Tn}-V_{DSATn}/2)} tpHL=0.6943IDSATnCLVDD=0.52(W/L)nknVDSATn(VDDVTnVDSATn/2)CLVDD
如果我们保证 V D D > > V T n + V D S A T n / 2 V_{DD}>>V_{Tn}+V_{DSATn}/2 VDD>>VTn+VDSATn/2
可以得到 t p H L ≈ 0.52 C L ( W / L ) n k n ′ V D S A T n t_{pHL}\approx0.52\frac{C_{L}}{(W/L)_{n}k'_{n}V_{DSATn}} tpHL0.52(W/L)nknVDSATnCL
其中KaTeX parse error: Expected 'EOF', got '}' at position 10: V_{DSATn}}̲我们在器件章节讲过,正相关于VGS,而VGS正相关与VDD,所以VDD上升,传播延时降低,下图也表明了这个现象

在这里插入图片描述
看图可知,当VDD=2VT=0.8V时,延时大大增加,如果是高性能设计,避免这么做。我们前面讲的静态特性中,讲过VDD的最少为两倍热电压,就提过这个时候速度很慢,这张图算是二次验证了这个理论。

其实我们看到这个公式 t p H L ≈ 0.52 C L ( W / L ) n k n ′ V D S A T n t_{pHL}\approx0.52\frac{C_{L}}{(W/L)_{n}k'_{n}V_{DSATn}} tpHL0.52(W/L)nknVDSATnCL,可以发现CL减小和W/L增大也可以对性能进行提升。

5.3.3 从设计角度考虑传播延时

5.3.3.1 PMOS与NMOS—β参数

考虑两个完全相同的CMOS反相器串联,第一级负载 C L = ( C d p 1 + C d n 1 ) + ( C g p 2 + C g n 2 ) + C W C_{L}=(C_{dp1}+C_{dn1})+(C_{gp2}+C_{gn2})+C_{W} CL=(Cdp1+Cdn1)+(Cgp2+Cgn2)+CW,这里忽略了第一级的栅漏电容。令 β = ( W / L ) p / ( W / L ) n \beta=(W/L)_p/(W/L)_n β=(W/L)p/(W/L)n
C d p 1 ≈ β C d n 1 , C g p 2 ≈ β ′ C g n 2 C_{dp1}\approx\beta C_{dn1},C_{gp2}\approx\beta^{\prime}C_{gn2} Cdp1βCdn1,Cgp2βCgn2

由此可以推出传播延时
t p = 0.69 2 ( ( 1 + β ) ( C d n 1 + C g n 2 ) + C W ) ( R e q n + R e q p β ) = 0.345 ( ( 1 + β ) ( C d n 1 + C g n 2 ) + C W ) R e q n ( 1 + r β ) \begin{aligned}t_{p}&=\frac{0.69}{2}((1+\beta)(C_{dn1}+C_{gn2})+C_{W})\Big(R_{eqn}+\frac{R_{eqp}}{\beta}\Big)\\\\&=0.345((1+\beta)(C_{dn1}+C_{gn2})+C_{W})R_{eqn\Big(1+\frac{r}{\beta}\Big)}\end{aligned} tp=20.69((1+β)(Cdn1+Cgn2)+CW)(Reqn+βReqp)=0.345((1+β)(Cdn1+Cgn2)+CW)Reqn(1+βr)

∂ t p ∂ β = 0 \frac{\partial t_p}{\partial\mathbf{\beta}}=0 βtp=0可得
β o p t = r ( 1 + C w C d n 1 + C g n 2 ) \beta_{opt}=\sqrt{r\Big(1+\frac{C_w}{C_{dn1}+C_{gn2}}\Big)} βopt=r(1+Cdn1+Cgn2Cw)
这个式子告诉我们导线电容可以忽略时, C d n l + C g n 2 > > C W C_{dnl}+C_{gn2}>>C_{W} Cdnl+Cgn2>>CW,最佳的 β = r β=\sqrt r β=r ,如果导线电容较大, β > r β>\sqrt r β>r

我们知道,当β=Reqp/Reqn=31/13=2.4时,PMOS和NMOS的等效电阻就一样大了,那么上升延时和下降延时就相等。
β = r β=\sqrt r β=r 时,(其中 r = R e q p / R e q n r=Reqp/Reqn r=Reqp/Reqn),这个时候时间是最短的。
我们之前还学过,由开关阈值VM=1/2VDD所导出的β=3.5

开关阈值公式如下 ( W / L ) p ( W / L ) n = k n ′ V D S A T n ( V M − V T n − V D S A T n / 2 ) k p ′ V D S A T p ( V D D − V M + V T p + V D S A T p / 2 ) \frac{(W/L)_p}{(W/L)_n}=\frac{k'_nV_{DSATn}(V_M-V_{Tn}-V_{DSATn}/2)}{k'_pV_{DSATp}(V_{DD}-V_M+V_{Tp}+V_{DSATp}/2)} (W/L)n(W/L)p=kpVDSATp(VDDVM+VTp+VDSATp/2)knVDSATn(VMVTnVDSATn/2)

5.3.3.2 超大负载时单个反相器尺寸确定

上面讨论的β公式是建立在两个反相器级联的情况下,这个时候负载并不是很大,但是如果负载很大我们怎么办呢?接下来请看。
C ˉ L = C i n t + C e x t . \bar{C}_{L}=C_{int}+C_{ext}. CˉL=Cint+Cext.在这里插入图片描述
C L = C i n t + C e x t . C_{L}=C_{int}+C_{ext}. CL=Cint+Cext.我们要注意负载电容分成自载电容(本征输出电容)和外部负载电容。

t p = 0.69 R e q ( C i n t + C e x t ) = 0.69 R e q C i n t ( 1 + C e x t / C i n t ) = t p 0 ( 1 + C e x t / C i n t ) \begin{aligned}t_p&=0.69R_{eq}(C_{int}+C_{ext})\\&=0.69R_{eq}C_{int}(1+C_{ext}/C_{int})=t_{p0}(1+C_{ext}/C_{int})\end{aligned} tp=0.69Req(Cint+Cext)=0.69ReqCint(1+Cext/Cint)=tp0(1+Cext/Cint)

t p 0 = 0.69 R e q C i n t t_{p0}=0.69R_{eq}C_{int} tp0=0.69ReqCint是反相器空载延时,也叫本征延时。

定义尺寸系数S,S表示当前门与参考门大小的比值。
因此 C i n t = S C i r e f C_{int}=SC_{iref} Cint=SCiref R e q = R r e f / S R_{eq}=R_{ref}/S Req=Rref/S

所以 t p = t p 0 ( 1 + C e x t S C i r e f ) t_{p}=t_{p0}\Big(1+\frac{C_{ext}}{SC_{iref}}\Big) tp=tp0(1+SCirefCext)

由以上式子和假设可以得到如下特性:

  • 假设参考门的电阻为 R e q 0 R_{eq0} Req0,本征电容为 C i n t 0 C_{int0} Cint0,则尺寸系数为S的门 t p 0 = 0.69 1 S R e q S C i n t = t p 0 = 0.69 R e q 0 C i n t 0 t_{p0}=0.69\frac{1}{S}R_{eq}SC_{int}=t_{p0}=0.69R_{eq0}C_{int0} tp0=0.69S1ReqSCint=tp0=0.69Req0Cint0,说明反相器的本征延时与尺寸无关。
  • S无穷大可以改善性能。

5.3.3.2 超大负载时反相器链尺寸、级数确定

显然我们是不能让S无限大的。那么对于大负载我们该怎么办呢?最好的答案就是反相器链!

C i n t = γ C g C_{\mathrm{~int}}=\gamma C_{g} C int=γCg
对于大多数工艺γ=1。
t p = 0.69 R e q ( C i n t + C e x t ) = 0.69 R e q C i n t ( 1 + C e x t / C i n t ) = t p 0 ( 1 + C e x t / C i n t ) = t p 0 ( 1 + C e x t γ C g ) = t p 0 ( 1 + f / γ ) \begin{aligned}t_p&=0.69R_{eq}(C_{int}+C_{ext})\\&=0.69R_{eq}C_{int}(1+C_{ext}/C_{int})=t_{p0}(1+C_{ext}/C_{int})=t_{p0}\bigg(1+\frac{C_{ext}}{\gamma C_{g}}\bigg)=t_{p0}(1+f/\gamma)\end{aligned} tp=0.69Req(Cint+Cext)=0.69ReqCint(1+Cext/Cint)=tp0(1+Cext/Cint)=tp0(1+γCgCext)=tp0(1+f/γ)

f = C e x t / C g f=C_{ext}/C_g f=Cext/Cg其中 f f f被称为有效扇出(effective fanout),只取决于外部负载和输入电容

在这里插入图片描述
现有如上图N级反相器链,确定其级数N和有效扇出 f f f使其传播延时最小。
t p , j = t p 0 ( 1 + C g , j + 1 γ C g , j ) = t p 0 ( 1 + f j / γ ) \begin{aligned}t_{p,j}&=t_{p0}\bigg(1+\frac{C_{g,j+1}}{\gamma C_{g,j}}\bigg)=t_{p0}(1+f_j/\gamma)\end{aligned} tp,j=tp0(1+γCg,jCg,j+1)=tp0(1+fj/γ)

t p = ∑ j = 1 N t p , j = t p 0 ∑ j = 1 N ( 1 + C g , j + 1 γ C g , j ) t_p~=~\sum_{j~=~1}^Nt_{p,j}~=~t_{p0}\sum_{j~=~1}^N\left(1+\frac{C_{g,j+1}}{\gamma C_{g,j}}\right) tp = j = 1Ntp,j = tp0j = 1N(1+γCg,jCg,j+1)其中 C g , N + 1 = C L C_{g,N+1}~=~C_L Cg,N+1 = CL

对这个式子求导并令其等于0可得 C g , j = C g , j − 1 C g , j + 1 C_{g,j}=\sqrt{C_{g,j-1}C_{g,j+1}} Cg,j=Cg,j1Cg,j+1

所以有效扇出 f = C L / C g , 1 N = F N f=\sqrt[N]{C_L/C_{g,1}}=\sqrt[N]{F} f=NCL/Cg,1 =NF 其中 F F F是总有效扇出
总的延时 t p = N t p 0 ( 1 + F N / γ ) \begin{aligned}t_p=Nt_{p0}(1+\sqrt[N]{F}/\gamma)\end{aligned} tp=Ntp0(1+NF /γ)
对上面这个总延时两边对N求导并令导数为0可得
γ + F N − F N ln ⁡ F N = 0 \gamma+\sqrt[N]{F}-\frac{\sqrt[N]{F}\ln F}N=0 γ+NF NNF lnF=0
或者说 f = − e ( 1 + γ / f ) f=-e^{(1+\gamma/f)} f=e(1+γ/f)(记住这个式子),如果γ=0, f = e f=e f=e,但是如果γ=1只能画图解,我们直接记住这个值,当γ=1时, f = 3.6 f=3.6 f=3.6

反相器链例题

在这里插入图片描述
上表是γ=1的情况下 t o p t / t p 0 t_{opt}/t_{p0} topt/tp0随总有效扇出F的表格。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

5.3.3.3 输入信号上升下降时间对传播延时的影响

在这里插入图片描述
输入变化越慢,PMOS和NMOS同时导通时间越长,影响充电电流,导致传播延时增加。

5.3.3.4 存在互连线时的延时

t p = 0.69 R d r C i n t + ( 0.69 R d r + 0.38 R w ) C w + 0.69 ( R d r + R w ) C f a n = 0.69 R d r ( C i n t + C f a n ) + 0.69 ( R d r c w + r w C f a n ) L + 0.38 r w c w L 2 \begin{array}{rcl}t_p&=&0.69R_{dr}C_{int}+(0.69R_{dr}+0.38R_w)C_w+0.69(R_{dr}+R_w)C_{fan}\\\\&=&0.69R_{dr}(C_{int}+C_{fan})+0.69(R_{dr}c_w+r_wC_{fan})L+0.38r_wc_wL^2\end{array} tp==0.69RdrCint+(0.69Rdr+0.38Rw)Cw+0.69(Rdr+Rw)Cfan0.69Rdr(Cint+Cfan)+0.69(Rdrcw+rwCfan)L+0.38rwcwL2

5.4 功耗、能量和能量延时

5.4.1 动态功耗

5.4.1.1 充放电电容引起的功耗

负载电容从0充电到VDD,电源能量一半被PMOS消耗,一半存在负载电容中,负载电容从VDD放电到0,全部能量被NMOS消耗。
E V D D = ∫ 0 ∞ i V D D ( t ) V D D d t = V D D ∫ 0 ∞ C L d ν o u t d t d t = C L V D D ∫ 0 V D D d ν o u t = C L V D D 2 E_{VDD}=\int\limits_{0}^{\infty}i_{VDD}(t)V_{DD}dt=V_{DD}\int\limits_{0}^{\infty}C_{L}\frac{d\nu_{out}}{dt}dt=C_{L}V_{DD}\int\limits_{0}^{V_{DD}}d\nu_{out}=C_{L}V_{DD}^{2} EVDD=0iVDD(t)VDDdt=VDD0CLdtdνoutdt=CLVDD0VDDdνout=CLVDD2

E C = ∫ 0 ∞ i V D D ( t ) ν o u t d t = ∫ 0 ∞ C L d ν o u t d t ν o u t d t = C L ∫ 0 V D D ν o u t d ν o u t = C L V D D 2 E_C=\int_0^\infty i_{VDD}(t)\nu_{out}dt=\int_0^\infty C_L\frac{d\nu_{out}}{dt}\nu_{out}dt=C_L\int_0^{V_{DD}}\nu_{out}d\nu_{out}=\frac{C_LV_{DD}}{2} EC=0iVDD(t)νoutdt=0CLdtdνoutνoutdt=CL0VDDνoutdνout=2CLVDD

观察上面的式子我们可以发现,功耗和PMOS、NMOS的尺寸无关(即它们的电阻)。假定一个开关周期是输出从低到高和从高到低两个过程,那么这个过程消耗的能量为
C L V D D 2 C_{L}{V_{DD}}^{2} CLVDD2。如果这个门的通断频率为 f 0 → 1 f_{0\rightarrow1} f01,则这个们的功率为 P d y n = C L V D D 2 f 0 → 1 P_{dyn}=C_LV_{DD}^2f_{0\to1} Pdyn=CLVDD2f01

5.4.1.2 直流通路引起的功耗

在这里插入图片描述
在输入的中间部分两个门都导通,产生了VDD到GND的电流,造成功耗。

5.4.2 静态功耗

漏源与衬底之间的漏电

漏源与衬底之间存在反偏二极管,会漏电。

亚阈值电流

VGS=0=时仍然存在亚阈值电流,且Vth越低,亚阈值电流越大。

5.4.3 总功耗

P t o t = P d y n + P d p + P s t a t = ( C L V D D 2 + V D D I p e a k t s ) f 0 → 1 + V D D I l e a k P_{tot}=P_{dyn}+P_{dp}+P_{stat}=(C_{L}V_{DD}^{2}+V_{DD}I_{peak}t_{s})f_{0\to1}+V_{DD}I_{leak} Ptot=Pdyn+Pdp+Pstat=(CLVDD2+VDDIpeakts)f01+VDDIleak

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/199826.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言:自定义类型(结构体、位段、共用体、枚举)】

文章目录 1.结构体1.1什么是结构体1.2结构体类型声明1.3结构体变量的定义和初始化1.4结构体的访问 2.结构体对齐2.1如何对齐2.2为什么存在内存对齐? 3.结构体实现位段3.1什么是位段3.2位段的内存分配3.3位段的跨平台问题3.4位段的应用3.5位段使用注意事项 4.联合体4…

Chapter 6 Managing Application Engine Programs 管理应用程序引擎程序

Chapter 6 Managing Application Engine Programs 管理应用程序引擎程序 Running Application Engine Programs 运行应用程序引擎程序 This section provides an overview of program run options and discusses how to: 本节提供程序运行选项的概述,并讨论如何…

上下拉电阻会增强驱动能力吗?

最近看到一个关于上下拉电阻的问题,发现不少人认为上下拉电阻能够增强驱动能力。随后跟几个朋友讨论了一下,大家一致认为不存在上下拉电阻增强驱动能力这回事,因为除了OC输出这类特殊结构外,上下拉电阻就是负载,只会减…

RT-Thread Studio文件消失不见或被排除构建

不得不说RT-Thread Studio里面配置真多,今天我同事的电脑发现根本没有被画斜杠的文件夹,导致我想移植f1的写内部flash这个(可以看上一个文章)时候不能直接点击属性排除构建,然后在网上查找的时候也没怎么找到说法&…

代码随想录算法训练营 ---第五十五天

今天是 动态规划:编辑距离问题。 第一题: 简介: 动态规划五部曲: 1.确定dp数组的含义 dp[i][j] 表示以下标i-1为结尾的字符串s,和以下标j-1为结尾的字符串t,相同子序列的长度为dp[i][j]。 2.确定递推公…

智能优化算法应用:基于寄生捕食算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于寄生捕食算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于寄生捕食算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.寄生捕食算法4.实验参数设定5.算法结果6.参考…

玩转Omniverse | 将FBX文件导入Omniverse View,以及step等3D格式如何转换为USD文件的过程

1,参考这个过程,玩转Omniverse | 将FBX文件导入Omniverse View 2,实际操作: 在omniverse中安装usd explorer 打开usd explorer 选择step,然后右键选择convert to USD,点击确认,稍等一会就会转换…

Python神器解析时间序列数据:数据分析者必读

更多资料获取 📚 个人网站:ipengtao.com 时间序列数据是在许多领域中都至关重要的数据类型,它涵盖了一系列按时间顺序排列的数据点。Python作为一种强大的数据分析工具,提供了许多库和工具,能够有效地处理、分析和可视…

高级搜索——伸展树Splay详解

文章目录 伸展树Splay伸展树Splay的定义局部性原理Splay的伸展操作逐层伸展双层伸展zig-zig/zag-zagzig-zag/zag-zigzig/zag双层伸展的效果与效率 伸展树的实现动态版本实现递增分配器节点定义Splay类及其接口定义伸展操作左单旋右单旋右左/左右双旋伸展 查找操作删除操作插入操…

springcloud整合Oauth2自定义登录/登出接口

我使用的是password模式&#xff0c;并配置了token模式 一、登录 (这里我使用的示例是用户名密码认证方式) 1. Oath2提供默认登录授权接口 org.springframework.security.oauth2.provider.endpoint.postAccess; Tokenpublic ResponseEntity<OAuth2AccessToken> pos…

hbase thrift2 jar包冲突导致启动失败问题排查记录

1、启动命令 ${HBASE_HOME}/bin/hbase-daemon.sh start thrift2 2、异常情况 hbase-root-thrift2-hdfs-test07.yingzi.com.out异常日志&#xff1a; Exception in thread "main" java.lang.AbstractMethodError: org.apache.hadoop.metrics2.sink.timeline.Hadoo…

Nginx(十二) gzip gzip_static sendfile directio aio 组合使用测试(2)

测试10&#xff1a;开启gzip、sendfile、aio、directio1m&#xff0c;关闭gzip_static&#xff0c;请求/index.js {"time_iso8601":"2023-11-30T17:20:5508:00","request_uri":"/index.js","status":"200","…

【Java Web学习笔记】4 - DOM文档对象模型

项目代码 https://github.com/yinhai1114/JavaWeb_LearningCode/tree/main/javascript 零、在线文档 JavaScript HTML DOM 一、HTML DOM基本介绍 1. DOM全称是Document Object Model文档对象模型 文档<---映射--->对象 2.就是把文档中的标签&#xff0c;属性&#xf…

WebSocket入门介绍及编程实战

HTTP的限制 全双工和半双工&#xff1a; 全双工&#xff1a;全双工&#xff08;Full Duplex&#xff09;是允许数据在两个方向上同时传输。 半双工&#xff1a;半双工&#xff08;Half Duplex&#xff09;是允许数据在两个方向上传输&#xff0c;但是同一个时间段内只允许一个…

解决 引element-plus依赖时的core-js报错

参考资料&#xff1a; https://blog.csdn.net/weixin_42164539/article/details/123388542 本人正在重构两年前搭建到一半的博客网站&#xff0c;相关依赖都很陈旧&#xff0c;用到了 npm-check-updates 检测项目可升级依赖&#xff1a; 补依赖过程始中报错 解决方案&#xf…

linux 内核同步互斥技术之信号量

信号量 信号量允许多个进程同时进入临界区&#xff0c;大多数情况下只允许一个进程进入临界区&#xff0c;把信号量的计数值设置为 1&#xff0c;即二值信号量&#xff0c;这种信号量称为互斥信号量。可允许多个锁持有者。 和自旋锁相比&#xff0c;信号量适合保护比较长的临界…

Java-宋红康-(P133-P134)-多线程创建方式(Thread and Runnable)

b站视频 133-多线程-线程创建方式1&#xff1a;继承Thread类_哔哩哔哩_bilibili 目录 3.1 继承Thread 3.1.1 继承Thread类方式 3.1.2 线程的执行流程 3.1.3 线程内存图 3.1.4 run()方法和start()方法 3.1.5 线程名字的设置和获取 3.1.6 获取运行main方法线程的名字 3.…

Linux进程间通信之共享内存

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容讲解共享内存原理和相关接口的介绍&#xff0c;以及一个…

更换cmd下默认选择Python解释器

问题 我的电脑里有多个Python解释器&#xff0c;一个是自己下载的python37&#xff0c;版本是3.7.0&#xff0c;一个是anaconda的base环境&#xff0c;版本是3.7.4&#xff0c;还有虚拟环境里的python解释器。 最近发现&#xff0c;在cmd下输入python&#xff0c;使用的是anac…

肺是人体的第一道防线,流感频发季节,最有效的养肺方法你得知道!

肺脏是人体的第一道防线&#xff0c;牵动着整个呼吸道的健康&#xff0c;一旦肺脏受损&#xff0c;易引发咳嗽、气喘甚至肺炎。在流感、呼吸道疾病高发的冬季&#xff0c;如何呵护肺脏&#xff0c;保持身体健康&#xff1f; 全民养肺&#xff0c;刻不容缓 养肺不仅仅是中老年朋…