《数字集成电路–电路、系统与设计》第二版 复习笔记
实际上就是静态CMOS反相器扩展为具有多个输入。更反相器一样具有良好的稳定性,性能和功耗。
互补结构PUN(pull up network)+PDN(pull down network)可以解决。
与非门的VTC曲线与输入有关,从下图可以发现,A=B=0时,PUN全部导通,对应强上拉,而当A或B中有不导通的时候,PUN中只有一个导通,相当于驱动能力下降(在反相器中提到P管驱动能力下降导致VTC左移,VM上漂),因此VTC左移到红色和绿色线。
而红绿两线的主要区别在于NMOS的内部节点int上,由于体效应的缘故会使得M1和M2在分别导通时阈值电压不同,VTC曲线会有微小的差异。
虽然互补CMOS是实现逻辑门比较简单的方式,但是随着扇入增加,会带来两个问题:
例如对于一个四输入与非门:
下图是NAND门的本征传播延时与扇入的关系曲线:
问题:为什么把关键信号放到靠近输出端的晶体管上可以提高速度?
其实就是一个放电顺序的问题:
上图中,如果M1是最后才导通的那个,则直到M1导通前CL和C2都无法放电。而把M1放到最上面以后,C2和C1就可以先放电,节省了时间。
跟反相器链的性能优化类似,前面已经知道对于一个CL负载,驱动其的最优每级扇出 f = ( C L / C i n ) 1 / N f = (C_L/C_{in})^{1/N} f=(CL/Cin)1/N,并且最优扇出保持在4左右。
那么对于任何组合逻辑而言,又该如何呢?
这里将原来的反相器链(上面的公式)改写为(下面的公式):
其中, f f f仍然是等效扇出,此外,在这里也称为电气努力(electrical effort)。 p p p代表复合门与简单反相器的本征延时比,与门的拓扑结构和版图样式有关。下面是一些 p p p的典型值:
系数 g g g称为逻辑努力(logical effort)。可以有下面几种表达方式:
下面这个例子可以直观地理解逻辑努力的含义:
对于一个最小尺寸反相器,其P管尺寸是N管2倍。因此输出电容是N管电容( C u n i t C_{unit} Cunit)的3倍。为了确定NAND和NOR的尺寸,如果要保证输出电流相同,也就是等效电阻和标准反相器相同。这就提出了要求:PUN等效尺寸=2,PDN等效尺寸=1.对于并联来说,等效电阻=最坏情况也就是只有一个导通的电阻,所以PMOS尺寸仍为2;对于串联,尺寸变大一倍,等效电阻变为一半。
由此可见,NAND尺寸变换后等效的输入电容变为 4 C u n i t 4C_{unit} 4Cunit。也就是最小反相器的4/3.也就是逻辑努力为4/3。同理,NOR的逻辑努力为5/3。
一个逻辑门的延时可以分为两部分,努力延时和本征延时:
上图中,直线斜率就是逻辑努力,y轴交点就是本征延时。此外,把 h = g f h=gf h=gf称为门努力(gate effort)。
组合逻辑链的延时可以表示为:
从反相器链的结论来看,要使得上式有自小值,需要使得每一级的门努力相同。我们做如下定义: 1. **路径逻辑努力(path logical effort):** $G = \prod_1^N g_i$因此,与反相器链类似,使得延时最小的门努力为:
h = H N h=\sqrt[N]{H} h=NH
所以最小延时为:
复合CMOS逻辑门的功耗和反相器中讨论的类似,也是与以下几个因素有关:
当门比较复杂的时候,受影响最大的是开关活动性 α 0 − > 1 \alpha_{0->1} α0−>1,可以分为两部分:
静态部分与所实现的逻辑功能(真值表)密切相关。例如:对于一个N输入的NOR门,假设 p a p_a pa和 p b p_b pb表示输入A和B分别为1的概率,且输入不相关(这个假设很难成立)。则输出为1的概率为: p 1 = ( 1 − p a ) ( 1 − p b ) p_1 = (1-p_a)(1-p_b) p1=(1−pa)(1−pb),这个表达式是根据真值表推导出的。
则由0到1的翻转概率为:
α 0 − > 1 = p 0 p 1 = ( 1 − ( 1 − p a ) ( 1 − p b ) ) ( 1 − p a ) ( 1 − p b ) \alpha_{0->1}=p_0p_1=(1-(1-p_a)(1-p_b))(1-p_a)(1-p_b) α0−>1=p0p1=(1−(1−pa)(1−pb))(1−pa)(1−pb)
下图展示了这种关系:
上面算法的局限性:
从一个逻辑块到另一个逻辑块的非零传播延时可能会引起毛刺或动态故障(dynamic hazard) 的虚假翻转。在一个时钟周期内节点在稳定到正确电平之前可以多次翻转。下面这个例子可以解释这种虚假翻转:
上图是一个NAND门链在输入同时从0->1时的响应。开始时输入为0,所以说有节点的输出均为1。当出现输入的翻转时,理论上最终的输出奇数位都是0,偶数为都是1。但是从图中可见out1在一定延时后降为0(红线),由于存在这个延时,导致out2的输出在out1稳定之前(相当于NAND输入11),会有像0翻转的趋势,直到out1基本稳定下来(趋于0)时,out2才又往1翻转。导致了图中的绿色线。
虚假翻转的危害:
逻辑重组:
输入排序:
分时复用资源:
通过均衡信号路径减少毛刺: 毛刺主要是电路中路径长度失陪引起的。因此要解决路径中延时长度不同的问题,可以使用树型结构替换链式结构。
例子:伪NMOS反相器。
缩小PMOS器件的尺寸可以得到不同的电压传输曲线:
虽然静态功耗限制了伪NMOS的应用,但是当面积是最重要的因素时,伪NMOS还是可以使用的,因此还是可以看到伪NMOS有时应用在大扇入的电路中。
例子:XOR-XNOR门
上图中,下拉网络PDN1和2是互斥的,同一时间两只只会有一个导通。
假设最初out为高,out非为低。当PDN1导通时,out下拉。但是PDN1必须足够强劲使得out低于VDD-|VTP|,才能使得M2导通,out非变为VDD,最终将M1关断。
此外,应该避免传输管驱动另一个栅极,这样会导致阈值损失传递:
传输管的VTC与CMOS反相器不同,下图是一个而输入AND传输管的VTC:
可见一个传输门是不能使信号再生的。经过多级后会衰减,可以通过插入反相器来弥补。
高性能设计中通常使用差分传输管逻辑,称为CPL或DPL.
问题:由于传输管在高电平无法充电到VDD,少了一个VT,所以在驱动后级的反相器时反相器会有静态功耗。
一种简单的方法是使用一个PMOS连到反馈环路中:
优势:通过上拉的PMOS将高电平充到VDD,消除了后级反相器的静态功耗,传输管和恢复器中也没有静态电流路径。
缺陷:
使用0阈值的NMOS传输管可以消除大部分阈值损失。所有非传输管都用高阈值器件实现。
缺陷:
最广泛采用的是传输门逻辑,利用N和PMOS的互补特性。
两个管子并联,控制信号相反,任何时候两者都导通。通常消耗更少的管子。例如实现下面的逻辑:
采用CMOS逻辑需要8管,而传输门逻辑只需要6管。(不包括反向输入信号的生成)
传输门的高到低和低到高等效电阻基本上可以认为是定值,下图是传输门从低到高的翻转的等效电阻:
传输门链:
对于传输门链可以使用一阶近似将其等效为电容电阻网络:
可见传输门延时正比于 n 2 n^2 n2,因此不能采用过长的传输门链。如果要使用,建议是在传输门链中每隔几个(3~4)传输门插入一个Buffer。
在PUN和PDN上下插入CLK控制的管子。主要有两个阶段:预充电和求值。由CLK决定。
预充电:
CLK=0时输出节点Out被PMOS管预充电至VDD。此期间NMOS求值管关断,所以下拉不工作。求值管消除了预充电期间的任何静态功耗。
求值:
CLK=1时,预充电管关断,输出根据下拉拓扑结构有条件地放电。
优点:
当然也可以用P型动态门,也就是预充电通过下拉的NMOS实现,但这种的缺点是比n型动态门慢。因为PMOS的驱动电流小。
动态逻辑的噪声容限是极不对称的,比如一个四输入NAND门:
下表是其各项性能参数:
假设输入连在一起,则这个门的开关阈值VM=VTN,高电平噪声容限将有VDD-VTN这么多。
此外,其低到高的传播延时为0,因为预充电后输出总是高电平,对于低电平的输入没有任何变化发生。
实际上,该门的开关阈值与时钟周期有关,下图是不同glitch下该门的响应。可以发现,对于较大的输入翻转,门变化较快。而输出电压下降的幅度实际上还与周期有关,如果求值时间很短,那么噪声电压比如很大才能破坏信号。
缺陷:
预充电到高后,电容上将保持高电平,但总是会有泄露电流导致电荷漏掉。如下图:
可见存储在CL上的电荷将通过漏电左图的几个漏电渠道漏掉,因此动态电路有一个最低的频率要求,一般为几KHZ。
解决方法:
电荷泄露的解决通常通过增加伪NMOS上拉以及反馈来补偿:
通过反馈来控制上拉管可以降低静态功耗。通常泄露器的尺寸比较小,以保证下拉网络可以下拉。
下图展示了电荷分享。在求值期间,假设B=0,A置高后Ma导通,CL上的电容会在CL和Ca之间重新分配,导致输出电平的降低。
解决方法:
通过对关键的内部节点预充电:
输出节点较高的阻抗使得电路对串扰很敏感。
电容耦合的特殊情况。在预充器件的时钟输入和动态节点之间的电容耦合引起。耦合电容由预充器件的栅漏电容组成。
其次,快速上升和下降的时钟边沿会耦合到信号节点上。例如上图中显示的那样。
动态门的串联会遇到延时的问题,例如下面的电路:
当Out1开始放电时,此时Out2应该维持不变,但是out1放电需要时间,导致out2也开始放电,产生错误。 但是如果每一级动态门在预充电后输出都为0,则不会由这样的问题。这也是动态门串联的条件。多米诺逻辑:
动态逻辑后加一个反相器,再级联其他多米诺逻辑。反相器可以保证动态逻辑再预充电后输出为0,避免1->0的翻转。
np-CMOS:
使用n型动态逻辑和p型动态逻辑串联,避免引入额外静态反相器。
n型预充电为高,因此不会导致下一级的PUN提前导通。