Cmos功耗平衡延时不敏感加法器用的进位产生电路的制作方法

文档序号:7601002阅读:170来源:国知局
专利名称:Cmos功耗平衡延时不敏感加法器用的进位产生电路的制作方法
技术领域
本发明属于密码芯片设计中的抗功耗分析攻击领域。
背景技术
1999年,Kocher,P.首次提出了通过功耗分析攻击密码芯片的办法。这种办法就是利用集成电路芯片处理不同数据所产生的功耗曲线不同,透过芯片瞬态功耗变化的差别提取芯片内部密钥信息的攻击方法。使电路计算不同数据时的功耗差异非常小——即功耗平衡——是抵抗功耗分析的一种根本途径。在Simon Moore 1999年的论文“BalancedSelf-Checking Asynchronous Logic for Smart Card Applications”(《用于智能卡的平衡自检查异步逻辑》)中首先提到了采用双轨编码的DI(Delay-Insensitive,延时不敏感)电路可以达到平衡功耗的效果。文中给出了由基本逻辑门搭成的DI逻辑门。
“Fu-Chiang,Cheng,Unger,S.H.,Theobald,M.,and Wen-Chung,Cho,″Delay-insensitivecarry-lookahead adders″(《延时不敏感超前进位加法器》),Proceedings.Tenth InternationalConference on VLSI Design (Cat.No.97TB100095),IEEE Comput.Soc.Press,322-328,Hyderabad,India,1997”一文描述了一种快速的DI超前进位加法器(简记为DICLA),适用于一般领域,不具有功耗平衡的特性。其电路结构如图1(8位加法器)。A,B是输入的加数,C0是进位输入,S是和,C8是进位输出,C1-C7分别表示各位的内部进位信号,上述信号均采用双轨编码(参见附录“双轨编码与DI电路”),即每比特用两个信号表示,所以A的第i位Ai=1对应Ai0=0,Ai1=1,Ai=0对应于Ai0=1,Ai1=0,B的第i位Bi用Bi0Bi1两个信号表示,类似的,Ci0Ci1,Si0Si1表示Ci和S的第i位。
超前进位加法器的工作原理对于(第i位),和的第i位Si=AiBiCi。1第i位对高位(第i+1位)的进位Ci+1取值分三种情况若AiBi=“11”,则Ci+1=1,这种情况我们称为进位产生(carry generate);若AiBi=“00”,则Ci+1=0,这种情况我们称为进位消除(carry kill);若Ai和Bi不同,则Ci+1=Ci,这种情况我们称为进位传递(carry pass)。
加法的关键路径是进位从低位到高位的逐级传递,根据前面分析,如果加数的某一位相同,则不必等待低位的进位信号(Ci)就可以得到本级的进位(Ci+1)。超前进位加法器就是利用这点来提高运算速度。用gi,pi信号分别标识进位产生、进位传递两种情况,即gi1符号表示异或运算为高表示进位产生,pi为高表示进位传递。
则有如下公式Ci+1=gi+pigi-1+...+pipi-1...g0+pipi-1...p0C0.
则有Ci+1=gi+pi(gi-1+...+pi-1pi-2...g0+pi-1...p0C0),又因为Ci=gi-1+pi-1(gi-2+...+pi-2pi-3...g0+pi-2...p0C0)所以Ci+1还可以表示为Ci+1=gi+piCi-1,依次递推有Ci+1=gi+pi(gi-2+...+pi-2(gi-3+pi-3(gi-4+...+pi-kCi-k-1)))...)=Gi,i-k-1+Pi,i-k-1Ci-k-1上式中将与Ci-k-1无关的项合并为两个变量Gi,i-k-1和Pi,i-k-1,Gi,i-k-1由gi~gi-k和pi~pi-k得出,Pi,i-k-1由pi~pi-k得出。此式说明任意两位的进位之间可以通过局部的G和P信号建立函数关系。为了叙述方便,我们把一组G/P信号合称为进位控制信号,记为I。例如,Gi,i-k-1,Pi,i-k-1记为Ii,i-k-1。
文献中提到的DICLA的超前进位链是一种树状结构(由图1中的8个D单元组成),就是利用上述关系按段计算进位。在树根部的D单元由C0产生C8,其输入的进位控制信号是I7,0;根D单元的孩子(即它的上一级D单元)由C0产生C4,同时由I7,4和I3,0产生I7,0;这个节点的左孩子由C4产生C7,右孩子由C0产生C3,......最上面一级D单元分别完成C0-C1,C2-C3,C4-C5,C5-C6,C6-C7的计算,它们各自的进位控制信号就是对应高位的g/p信号。同时这些单元又产生进位控制信号送给它们的父节点。在DICLA中增加一个表示仅为消除的信号K,则对于某个D单元,假设其由Ck产生Ci,完成的计算有两部分,分别是计算进位控制信号,如式(1)-(3);计算进位,如式(4)Pi,k=Pi,jPj-1,k(block-carry-propagate)(1)Ki,k=Ki,j+Pi,jKj-1,k(block-carry-kill) (2)Gi,k=Gi,j+Pi,jGj-1,k(block-carry-generate) (3)Cj=Gi,k+Pi,kCk+Ki,k·0 (4)在实际电路实现中,采用双轨编码,对每一个信号分别计算,上述的第4式改写为Cj0=Kj-1,k+Pj-1,kCk0(5)Cj1=Gj-1,k+Pj-1,kCk1.(6)C单元包含求和和计算本位的进位控制信号两个功能,实际的逻辑表达式如下进位控制信号产生Ki=Ai0Bi0(carry-kill) (7)Gi=Ai1Bi1(carry-generate) (8)Pi=Ai0Bi1+Ai1Bi0(carry-propagate)(9)求和Si0=Ai0Bi0Ci0+Ai1Bi1Ci0+Ai0Bi1Ci1+Ai1Bi0Ci1(10)
Si1=Ai1Bi1Ci1+Ai1Bi0Ci0+Ai0Bi1Ci0+Ai0Bi0Ci1.(11)我们对DICLA进行了改动,实现了一个具有功耗平衡性质的加法器单元。在“Power-balanced delay-insensitive carry-lookahead adders(《功耗平衡的延时不敏感超前进位加法器》),Xiangyu Li;Yihe San;ASIC,2003.Proceedings.5th International Conference,Volume2,21-24 Oct.2003,Pages1289-1292”一文中公布了加法器的结构如图5,并公布了部分基本单元的CMOS实现作为示例以说明DI功耗平衡逻辑。
为了说明PBDICLA的结构,我们首先对DICLA的工作时序进行分析分析前我们定义关键信号对一个运算模块,如果有多个输入数据,每个输入到达的时间可能不同,必须等待所有数据都到达它才能开始计算。定义最晚到达的信号为关键信号。一个运算模块工作的时刻是由关键信号的到达时刻决定的。
则由图1和式(1)-式(11)定义的数据依赖关系知I0-I7的关键信号是加数A,B;对于D单元的进位控制信号产生电路的关键信号是Ii,j和Ij-1,k。对于产生C1、C2、C4的D单元中的进位产生电路,因为它的进位输入总是先有效,所以关键信号是进位控制信号。其他D单元中的进位产生电路的关键信号则与进位控制信号的取值有关。如果Kj-1,k或Gj-1,k为1,则不用等待Ck,关键信号是Ij-1,k;如果是Pj-1,k,=1,则要等待Ck,进位输入是关键信号。
以8位加法器为例,考虑两种极端情况的时序A.两个输入完全相同的情况对每个D模块当算出Ij-1,k(Pj-1,k,Kj-1,k,Gj-1,k),后就可以得出Cj(Cj0,Cj1),则可列出如图2的计算顺序。图2中每列代表一个工作步,从左到右按时间顺序标为1~5,每列列出了在这一个工作步里求值的信号,同一列的信号是同时产生的,各个工作步的功耗就是该工作步求值的数据所消耗的功耗的叠加。对于双轨编码,数据产生就意味着一根信号线的翻转,所以只要每个时间步内产生的信号是固定的,且每个信号产生的功耗不随数据不同而不同就可以保证功耗平衡。
B.再考虑两个加数各位均相反的情况。这时每个进位信号的产生必须在D模块的输入进位到达后产生。则信号产生的顺序就如图3上面给出了两种极端情况,各个信号翻转发生的时刻就在这两种极端情况所给出的边界之间变化。显然,若进位控制信号、进位信号的翻转功耗和数据无关,在任何情况下,图2-图3中粗体部分的功耗总是一样的,当考虑功耗对输入的差分时,只需考虑各工作步中引起功耗变化的部分——图中斜体部分所示(由上面两个图可知,Cj-Sj总是作为整体在图中出现,因此我们下面仅考察C信号的产生时刻分布情况。)由图2-图3,因为进位控制信号的产生时刻是固定的,而C1、C2、C4的关键信号是进位控制信号,所以它们的产生时刻是固定的。为了使图中左子树的进位产生电路也以进位控制信号为关键信号,采用“进位选择”结构。即将C5~C7的产生电路变成相同的两个,分别计算C4输入“0”和“1”时的各进位信号,产生的进位信号经C4选择送到C单元,计算S5~S7。
由于对两组C5C6产生电路都是进位输入先于进位控制信号有效,所以它们的进位控制信号就成为了关键信号而不再受进位控制信号取值的影响。实现了进位产生时序固定。
为了实现所有进位产生电路的关进信号都是进位控制信号,我们可以在每个节点的左子树计算采用进位选择结构,这样就形成了一个多层进位选择递归的结构。
因为左右子树2的进位输出都是早于I信号有效的,又左、右子树的级数相同,所以右子树的进位送入根节点的同时左子树的进位链也刚好计算完。根节点的输出进位产生后,再作为选择信号,把正确的进位结果送到相应的C模块,计算该位的和。
显然,在这样的结构中C3,C7也应该采用进位选择结构,但是这样会带来面积的大幅增加,如图3所示,C3最晚产生在第4步,而加法器最快的情况也需要5步完成所有进位的计算,所以,我们可以通过改变进位产生电路的方法强制C3的关键信号为C2,这样,它就固定在第4步产生,只相对最好情况增加了一个工作步,而不增加很多电路。类似的,C7也要等到C6有效后再计算。这样的单元称为进位控制单元记作Dc。
综合以上方案,PBDICLA最终采用了图5所示的结构,图中的MUX表示多路选择器,C单元和D单元实现了与DICLA中相同的功能,Dc单元实现的功能与D单元相似,其中也有一个进位控制信号产生电路(与D单元的相同),还有一个进位控制的进位产生电路,记为CGc。逻辑功能如下Cj0=Kj-1,k(Ck0+Ck1)+Pj-1,kCk0(12)Cj1=Gj-1,k(Ck0+Ck1)+Pj-1,kCk1.(13)也就是必须在Ck有效后,才计算Cj。
PBDICLA最终的运算顺序图如图6其中进位信号的脚标“0”或“1”分别表示按C4取“0”和“1”时得到的结果,无脚标的表示最终经过选择得到的实际进位信号。新结构的运算顺序是不随数据变化的,需要6个工作步完成。从而整体的功耗也是不随数据变化的。

发明内容
本发明是上述8位的CMOS功耗平衡延时不敏感(DI)加法器(Power-BalancedDelay-Insensitive Carry LookaheadAdder,简记为PBDICLA)中的进位产生电路和进位控制的进位产生电路本发明所述的进位产生电路,其特征在于它是一种N型求值网络的动态交叉耦合差分电路,它含有一对交叉耦合的PMOS管用M1、M2表示,它们的源端接电源,栅极分别接到对2以某个节点的左(右)孩子节点为根的子树定义为这个节点的左(右)子树。方的漏极,它们的漏极同时也是本方的输出端,依次分别输出用双轨编码表示的进位信号Cj0,Cj1的反信号 反信号 再依次分别经反相器后输出进位信号Cj0,Cj1;两个分别由同一时钟信号φ控制的PMOS管,用PM1、PM2表示,它们的源极接电源,栅极接上述时钟信号φ,它们是上述动态交叉耦合差分电路,即DCCD电路的充电开关;两个由上述时钟信号φ控制的NMOS管,用NM1、NM2表示,它们的漏极依次分别和上述充电开关PM1、PM2的漏极相连后再和上述交叉耦合管M1、M2的漏极相连,这两个NMOS管NM1、NM2是上述动态交叉耦合差分电路的放电开关;八个它们的栅极依次分别受信号Kj-1,k、Pj-1,k、Gj-1,k、Gj-1,k、Pj-1,k、Kj-1,k、输入进位信号Ck0、Ck1控制的NMOS管,他们依次分别用NMk1,NMp1,NMg1,NMk2,NMp2,NMg2,NMc0,NMc1管表示,其中,Kj-1,k是加法器的进位链中第k位到第j-1位的进位消除信号,Pj-1,k是加法器的进位链中第k位到第j-1位的进位传递信号,Gj-1,k是加法器的进位链中第k位到第j-1位的进位产生信号;平衡用的NMOS管,用NMb表示,它是一种要得到对称的充放电结构而在求值时导通的平衡管,它的栅极接上述的时钟信号φ,它的漏极同时与上述NMk1管、NMg2管的源极相连,它的源极接地;共四个它们的栅极都受上述时钟信号φ的反信号φ控制的复位管依次分别用Mp1、Mp2、Mp3、Mp4表示,在上述动态交叉耦合差分电路的初态这些管子导通,把内部上述八个NMk1、NMp1、NMg1,NMk2,NMp2,NMg2,NMc0,NMc1管子的漏极置0;其中,Mp1的漏极同时接NMk1、NMp1、NMg1管的漏极和NM1管的源极,Mp2管的漏极同时接NMg2、NMp2、NMk2管的漏极和NM2管的源极,Mp4、Mp3管的漏极依次分别同时接NMp2管的源极和NMc1管的漏极、NMp1管的源极和NMc0管的漏极,Mp1、Mp2、Mp3、Mp4管的源极共同接地;栅极受上述时钟信号φ的反信号φ控制的用M*表示的NMOS管,它在求值时截止以便得到对称的充放电结构,该M*管的漏极同时连接NMg1、NMk2的源极,而M*管的源极接地。
3.本发明所述的进位控制的进位产生电路,其特征在于它是一种进位控制的进位产生电路,即它的进位产生部分必须在用双轨表示的输入进位信号Ck有效,即Ck0,Ck1有一个为1后才开始计算用双轨编码表示的输出进位信号Cj;所述的进位产生电路是一种N型求值网络的动态交叉耦合差分电路,它含有一对交叉耦合的PMOS管,用CM1、CM2表示,它们的源端接电源,各自的栅极分别接到对方的漏极,它们的漏极同时也是本方的输出端,依次分别输出用双轨编码表示的进位信号Cj0,Cj1的反信号 反信号再依次分别经反相器后输出进位信号Cj0,Cj1;两个分别由同一时钟信号φ控制的PMOS管,用PM1、PM2表示,它们的源极接电源,栅极接上述时钟信号φ,它们是上述动态交叉耦合差分电路,即DCCD电路的充电开关;两个由上述时钟信号φ控制的NMOS管,用NM1、NM2表示,它们的漏极依次分别和上述充电开关PM1、PM2的漏极相连后再和上述交叉耦合管CM1、CM2的漏极相连,这两个NMOS管NM1、NM2是上述动态交叉耦合差分电路的放电开关;共八个它们的栅极依次分别受信号Ck1、Ck1、Ck0、Ck0、Ck1、Ck0、Ck0、Ck1控制的NMOS管依次分别用Mc1、M1、M2、M4、M5、Mc0、M7、M8表示;共三个它们的栅极依次分别受信号Kj-1,k、Pj-1,k、Gj-1,k控制的NMOS管,依次分别用管M3、M6、M9表示,其中,Kj-1,k是加法器的进位链中第k位到第j-1位的进位消除信号,Pj-1,k是加法器的进位链中第k位到第j-1位的进位传递信号,Gj-1,k是加法器的进位链中第k位到第j-1位的进位产生信号;上述管M3的漏极同时和上述管M1、M2的源极相连,上述管M6的漏极同时和上述管M4、M5的源极相连,上述管M9的漏极同时和上述管M7、M8的源极相连,M3、M6、M9管的源极共同接地;共六个它们的栅极都受上述时钟信号φ的反信号φ控制的复位管,依次分别用Mp1、Mp2、Mp3、Mp4、Mp5、Mp6表示;其中Mp1、Mp2、Mp3、Mp4、Mp5、Mp6管的源极共同接地;Mp1管的漏极同时和Mc1、M1、M2、M4管的漏极以及NM1管的源极相连,Mp2管的漏极同时和M5、Mc0、M7、M8管的漏极以及NM2管的源极相连,Mp3管的漏极同时和M1、M2管的源极以及M3管的漏极相连,Mp4管的漏极同时和M4、M5管的源极以及M6管的漏极相连,Mp5管的漏极同时和Mc0、Mc1管的源极相连,Mp6管的漏极同时和M7、M8管的源极以及M9管的漏极相连;上述各个复位管在电路预充时导通,泄放所连节点的电荷。
我们采用中芯国际0.18微米CMOS工艺设计实现了使用上述两种进位产生电路的功耗平衡的延时不敏感加法器和前面提到的非功耗平衡的延时不敏感加法器,并采用hspice对电路进行仿真。
a)图10是2种加法器的功耗波形每幅图中的3条曲线分别是计算00+00+1*,FF+FF+0,00+FF+1时的功率曲线,分别代表了三种典型的情况。
为了更好地描述电路功耗差分特征,本文定义下面两项指标。
绝对差分如果定义输入(或电路状态)为i的情况下,平均功耗曲线为Pi(t),总体样本,即各种输入(或状态)下的总分布的样本的均值功耗曲线为P(t),定义i的差分曲线*十六进制表示,前两项为加数,第三项是进位。Di(t)=Pi(t)-P(t),差分曲线的峰值max{|Di(t)|}定义为i的绝对差分PD(i)。绝对差分表明了各种情况下功耗差分的绝对规模,当绝对差分小于分析系统可以检测的阈值时我们就认为电路是功耗平衡的。
相对差分定义某个采样点t上所有输入i的差分绝对值的最大值与该时刻的总体平均功耗的比为DMR(t)=maxi{|Di(t)|}P(t).]]>我们关心的是DMR曲线的峰值,max{DMR(T)},我们定义它为电路的相对差分。这个差分反应了差分相对于功耗水平的显著程度。对于一定量化精度的数据采集系统,而言意味着更小的差别。
通过对105组随机样本的计算进行仿真得到了本发明所述电路和两种加法器的绝对功耗差分和相对功耗差分,列于表1表2。其中器件数包括各单元内部产生反相时钟的电路和输出反相器。
表1 功耗平衡模块与非功耗平衡模块的功耗差分

表2 两种DICLA(8位)功耗差分数据

上述两种加法器分别被嵌入于单级的异步流水线之中,进行流片,得到芯片的最终测试结果是相同工艺下的DICLA的最大功率差分是2.16mW,PBDICLA的功率差分是0.66mW。相同测试条件下得到的功率信号的信噪比(差分与估计的测量噪声之比),前者比后者提高了9倍左右。
为了检验加法器的功耗平衡情况,我们对加法器不同输入情况下的功耗差分进行了统计分析。试验共采集了4528个功率波形样本。这些样本根据它们对应的输入先后按照下面三种分组方式被划分成两或三组。(组号后列出的是输入数据需要满足的条件),并计算出每组的平均功率曲线1)组A1A0B0=00,其它位随机选取;组A2A0B0=11,其它位随机选取;组A3A0B0=01,其它位随机选取;2)组B1I0,1=k(g)3,其它位随机选取;组B2I0,1=p,其它位随机选取;3)组C1I0,3=k(g),其它位随机选取;组C2I0,3=p,其它位随机选取;组1)考察的是C模块输入数据不同对功耗的影响;组2)考察的是进位信号C2的产生控制信号不同对功耗的影响;组3)则是考察C4的产生控制信号不同对功耗的影响。
功率的测量采用在芯片与电源间串联采样电阻,测量电阻两端电压在转换为工作电流的方法。数据采集设备是带宽500MHz的数字采样示波器。芯片的工作电压被降低到1.4伏,以降低翻转速度。得到的功率数据经过软件分析,统计结果如下。
两个芯片的主要指标列于表3中。其中DA1A2,DA2A3,DA1A3,DB1B2和DC1C2分别表示脚标所指的两个组间的功率差分曲线的最大值。表中所列的差分是在存在噪声的情况下得到的,如果假设噪声带来的标准偏差为Δ,则差分信号中的噪声为 如果实际测量值用D表示,则在给定的测量条件和样本空间下可以近似求出差分的信噪比(SNR),计算式如下SNR=D-2ΔD.]]>在分析中,以在电路不工作时测得功率的标准偏差的平均值近似噪声Δ(表3中的噪声一栏),考察电路最大差分的情况,即D取DA1A2,DA2A3,DA1A3,DB1B2和DC1C2的最大值,得到两种加法器的最大信噪比,列于表3最后一项。
表3 DICLA与PBDICLA的功耗差分与信噪比 从表中可以看出,PBDICLA在考察的3种数据特征上的差分都小于DICLA,信噪比将近是DICAL的1/10,有效地降低了信息的泄漏。通过本发明电路仿真和实际流片的测量结果说明1.在器件层次进行功耗平衡设计,可以降低器件级差异带来的功耗差分;2.对电路内部节点增加了复位电路,降低了数据变化信息的泄露;3.本发明有效降低了电路功耗的差分;


图1为DICLA结构图。
图2为DICLA工作时序示意图(两加数所有位相同的情况)。
3Ii,j=k表示Ki,j=1,Gi,j和Pi,j均为0的情况。Ii,j=g,Ii,j=p与此类似。
图3为DICLA工作时序示意图(两加数所有位都不同的情况)。
图4为DICLA进位产生电路图。
图5为PBDICLA结构图。
图6为PBDICLA工作时序示意图。
图7为D单元结构图。
图8为PBDICLA D单元进位产生电路CMOS实现。
图9为PBDICLA D单元进位产生电路(进位控制)CMOS实现。
图10为DICLA和PBDICLA对典型数值求和的功率曲线。
图11为三种进位产生电路不同输入情况下的充放电结构,其中(1)为DICLA进位产生电路;(2)为PBDICLA进位产生电路;(3)为PBDICLA进位产生(进位控制)电路;各行从左到右依次为Kj-1,k=1,Gj-1,k=1,Pj-1,k=1的情况。
具体实施例方式
电路的CMOS实现采用了N型求值网络的动态交叉耦合差分电路(DCCD电路)。动态交叉耦合差分电路可以很好地实现双轨编码的DI异步电路逻辑,由此电路构成的数据通道可以没有全局时钟更高的硬件安全性。N型动态电路由充电开关(一个PMOS)、求值网络(NMOS组成)和一个放电开关管(一个NMOS)组成。充电开关和放电开关都由时钟控制。
动态电路的工作方式是分为预充和求值两步,第一步预充时钟为低将PMOS打开,放电开关截止,输出节点电容被充电至高电平;第二步求值时钟为高,PMOS关闭,放电开关导通,如果输入组合使求值网络导通,则存在放电通路,输出节点电容放电至低电平,如果输入组合使求值网络借止,则无放电通路,输出节点电容的电荷维持。由于动态电路的充电电流是个固定值,相对于受输入数据控制的充电网络有更少的信息泄漏。
C单元的电路在论文“Power-balanced delay-insensitive carry-lookahead adders(《功耗平衡的延时不敏感超前进位加法器》),Xiangyu Li;Yihe Sun;ASIC,2003.Proceedings.5thInternational Conference on,Volume2,21-24 Oct.2003,Pages1289-1292”中已经公布在此不再赘述。其产生的进位控制信号输入到D单元中。根据前面分析,进位控制信号只可能取进位消除、进位产生或进位传递一种情况,且必居其一。所以组成I的K/P/G三个信号具有对称性质,即或者同时为0,或者其中一个为1其它皆为0。
下面介绍D单元的电路实现如前所述,D单元有两部分电路组成(如图8)。其中进位控制产生电路实现公式(1)-(3)的功能,图中的Ii,k表示Pi,kKi,kGi,k3个信号,输入的Ij-1,k表示Pj-1,kKj-1,kGj-1,k3个信号,同时输入到进位产生电路中。进位控制产生电路的CMOS实现在文献中也已经公布,在此不再赘述。
下面详细介绍进位产生电路的实现。
a)进位产生电路图4是DICLA中的D单元进位产生电路,图8是PBDICLA中的D单元进位产生电路。改进电路同样采用DCCD逻辑电路。两个电路都分成左右两部分,左侧产生Cj0,实现公式(5)右侧产生Cj1,实现公式(6)。
DICLA中的电路采用的是静态形式即充电部分也由输入信号控制的。Cj0Cj1都经过一级静态反相器输出。对左侧电路,当Kj-1,k为1时,M1截止,M4导通,节点 为低电平,Cj0为1,这部分对应于(5)式中的Kj-1,k项;当Ck0和Pj-1,k同时为1时,M2都截止,同时M3-M7组成的串联支路导通,节点 放电至低电平,Cj0为1,对应于(5)式中的Pj-1,kCk0项,两个放电支路并联,是“或”的关系(即任意一个支路导通,Cj0都会为1。右侧电路同理,由两个对应于(6)式中Gj-1,k和Pj-1,kCk1两项的两个支路并联,其中Pj-1,kCk1相对应的支路与Cj0电路复用M7管。
改进的功耗平衡电路如图8所示,图中没有画出输出反相器,输出信号是Cj两个信号的反信号。它采用的是动态交叉耦合差分电路(DCCD电路)。动态电路前面已经介绍过,图中的φ是时钟信号,由它控制的PMOS就是动态电路的充电开关,靠近输出节点端,栅接φ的NMOS是放电开关。串联在放电开关和地之间的管子组成了求值网络。所谓差分电路是指同时输入输入信号和输入信号的反信号进行运算,输出的结果也是产生正反两个信号。显然双轨编码表示数据的电路自然是差分电路,差分电路的特点是对称,正反信号的负载平衡,因此对应的计算功耗也有对称性。由于MOS管源漏端节点存在寄生电容,所以当输出节点和该节点之间的NMOS导通时,输出端的电容和内部节点的寄生电容会重新分配电荷,从而导致输出节点电容放电,引起错误。交叉耦合结构利用输出信号互补的关系(即两个信号在有效时总是相反),用输出信号控制一个PMOS提拉管接在输出节点上,这样当某位为0时,就会把互补信号节点的提拉管打开,对该节点充电,以弥补由于内部电容分走的电荷,保持互补信号为1。图9中的M1M2就是一对交叉耦合的PMOS,它们的栅分别接到对方的输出端,漏端接在本方的输出端上,源端与电源相连。一旦对方输出电平足够低就开始为本方输出充电。交叉耦合结构可以提高电路的可靠性。
CMOS电路工作时的电流由输出节点和内部电容充电的充电电流、输出信号反转瞬间的短路电流组成。电路充电部分的结构和参数影响充电电流,电路放点时输出信号电平下降,其所驱动的下一级电路也随着发生翻转,引起下一级电路的短路电流,短路电流的大小与放电过程中信号电平处于亚稳态区的时间有关,所以输出节点放电的RC参数也会影响电路的工作电流。
基于以上分析,要得到功耗平衡的特性,电路必须保证在任何数据输入情况下电路的充电部分和放电部分都是一致不变的——包括结构一致和参数一致。
下面分析图8电路首先我们先说明图8与图4电路在逻辑功能上是等效的如果我们只看图中由Kj-1,k,Gj-1,k,Pj-1,k,Ck1和Ck0信号控制的NMOS,它们组成了与DICLA中进位产生电路NMOS部分功能相同的求值网络。改进电路中,各支路不再复用同一个Pj-1,k控制的管子,而且增加了冗余的Kj-1,k,Gj-1,k控制的管子,但是由于增加的Kj-1,k,Gj-1,k控制管与M*串联,而M*在求值时(时钟为低)截止,所以不会影响电路逻辑。
那么为什么增加这些冗余的结构呢?一是为了使Ij-1,k的三个对称信号有相同的负载电容。信号反转的功耗与负载电容有关,Ij-1,k的三个对称信号在行为上是对称的(见第5页),要使得无论哪个信号反转都产生相同的功耗必须保证三个信号有相同的负载电容。而本级与之相连的晶体管的尺寸和数量又决定了该信号的负载电容大小,因此,电路中所有Kj-1,k,Gj-1,k,Pj-1,k控制的管子有相同的尺寸,且个数相同。
二是要得到对称的充放电结构。因此在左侧Kj-1,k和右侧Gj-1,k下方还串联了一个求值时导通的“平衡”管,使得Kj-1,k或Gj-1,k为高时,电路也是通过两个串联NMOS放电,与Pj-1,k为高时相同。
此外,改进电路还对内部节点都增加了复位电路,图8中,每个内部节点都有一个时钟控制的连到地的复位管(Mp1-Mp4)。在电路的预充相位,这些管子导通,将内部节点电位置为0。这样可以保证每次运算电路有相同的初始状态,可以避免电路初态不同引起的功耗差分。
b)进位控制的进位产生电路除了D单元外,在PBDICLA中还有一种进位控制的D单元(Dc单元)。Dc单元和D单元的区别在于它的进位产生部分,必须在Ck有效后(即Ck0,Ck1有一个为1)才开始计算Cj,而普通的进位产生电路,如果Kj-1,k或Gj-1,k=1,就可以立即产生Cj。下面介绍进位控制的进位产生电路CMOS实现。
图9给出了进位控制D单元进位产生电路。图中同样没有给出输出反相器电路,输出端是 和 即进位输出的反信号。此电路也是DCCD形式,图中的M1-M9管组成了电路的求值部分。M1-M3对应式(12)中的Kj-1,k(Ck0+Ck1)项;M4、M6管对应式(12)中的Pj-1,kCk0项;M5-M6管对应式(13)中的Pj-1,kCk1项;M7-M9管对应式(13)中的Gj-1,k(Ck0+Ck1)项。此处复用了Pj-1,k控制的NMOS。
由于Ck有效时Ck0和Ck1有且仅有一个为1,所以无论Ck取何值,M1-M2组成的部分路都是导通的,这样在功能上式(12)和式(5)是等价的,电路与式(5)也是等价的,同时由于如果Ck无效,则(M1-M2,M4-M5,M7-M8)以及与它们并联的所有晶体管都截止,电路不会开始计算,只有等到Ck有效后,才会有输出节点放电。这就实现了进位控制的目的。
图中同时增加了一对Ck0和Ck1控制的NMOS与一个反相时钟控制的NMOS。这一支路在求值时,反相时钟控制的管子截止,所以不影响电路功能。它的作用同样是使得各种输入数据对应的充放电等效电路对称。
此电路同样在内部节点加了复位NMOS(Mp1-Mp6),在电路预充时导通,把所连节点的电荷泄放掉。为了平衡电路的充放电结构,进位控制的进位产生电路中也增加了一些冗余结构。
图11列出了DICLA中的进位产生电路、PBDICLA的进位产生电路和PBDICLA的进位控制的进位产生电路不同输入情况下的电路的有效结构。因为Ck1和Ck0是对偶信号,所以Ck的取值对电路充放电网络的结构没有影响,图中就以Ck1Ck0=“10”为例。将输入情况分成Kj-1,k,Gj-1,k,Pj-1,k三个信号分别为1的情况分别列出,依次对应途中的第1-3列。其中图中粗线的MOS管在该输入情况下处于导通状态,细线管是截止管。截止管两端可以认为是开路,所以我们只关注加粗管子所组成的电路。
图中的第一行是DICLA即原设计中的进位产生电路。比较第一行的三个等效电路,显然它们的充电网络和放电网络各不相同,彼此不对称。第二行是本发明所述的进位产生电路的等效电路——由于电路的充电部分相同,所以略去它们,同时略去了部分不受输入数据控制的器件。同样对比三种情况下加粗部分的结构,显然都是一个两管串联的放电支路,一个输出节点到内部节点的NMOS和一个内部节点到地的NMOS三个部分组成。如果保证这些结构的参数(即寄生电容,等效电阻,节点初始电平)都相同就可以保证功耗平衡。本发明所述进位控制的进位产生电路不同输入情况下的有效电路列在了图11中第3行。显然,在每种情况下,有效电路都是一个输出节点连接一个两管串联的支路,另有一个输出节点连接两个连通内部节点的NMOS。只要保证这些结构对应的参数相同就可以功耗平衡。
权利要求
1.CMOS功耗平衡延时不敏感加法器用的进位产生电路,其特征在于,它是一种N型求值网络的动态交叉耦合差分电路,它含有一对交叉耦合的PMOS管用(M1)、(M2)表示,它们的源端接电源,栅极分别接到对方的漏极,它们的漏极同时也是本方的输出端,依次分别输出用双轨编码表示的进位信号Cj0,Cj1的反信号 反信号 再依次分别经反相器后输出进位信号Cj0,Cj1;两个分别由同一时钟信号φ控制的PMOS管,用(PM1)、(PM2)表示,它们的源极接电源,栅极接上述时钟信号φ,它们是上述动态交叉耦合差分电路,即DCCD电路的充电开关;两个由上述时钟信号φ控制的NMOS管,用(NM1)、(NM2)表示,它们的漏极依次分别和上述充电开关(PM1)、(PM2)的漏极相连后再和上述交叉耦合管(M1)、(M2)的漏极相连,这两个NMOS管(NM1)、(NM2)是上述动态交叉耦合差分电路的放电开关;八个它们的栅极依次分别受信号Kj-1,k、Pj-1,k、Gj-1,k、Gj-1,k、Pj-1,k、Kj-1,k、输入进位信号Ck0、Ck1控制的NMOS管,他们依次分别用(NMk1),(NMp1),(NMg1),(NMk2),(NMp2),(NMg2),(NMc0),(NMc1)管表示,其中,Kj-1,k是加法器的进位链中第k位到第j-1位的进位消除信号,Pj-1,k是加法器的进位链中第k位到第j-1位的进位传递信号,Gj-1,k是加法器的进位链中第k位到第j-1位的进位产生信号;平衡用的NMOS管,用(NMb)表示,它是一种要得到对称的充放电结构而在求值时导通的平衡管,它的栅极接上述的时钟信号φ,它的漏极同时与上述(NMk1)管、(NMg2)管的源极相连,它的源极接地;共四个它们的栅极都受上述时钟信号φ的反信号φ控制的复位管依次分别用(Mp1)、(Mp2)、(Mp3)、(Mp4)表示,在上述动态交叉耦合差分电路的初态这些管子导通,把内部上述八个(NMk1)、(NMp1)、(NMg1),(NMk2),(NMp2),(NMg2),(NMc0),(NMc1)管子的漏极置0;其中,(Mp1)的漏极同时接(NMk1)、(NMp1)、(NMg1)管的漏极和(NM1)管的源极,(Mp2)管的漏极同时接(NMg2)、(NMp2)、(NMk2)管的漏极和(NM2)管的源极,(Mp4)、(Mp3)管的漏极依次分别同时接(NMp2)管的源极和(NMc1)管的漏极、(NMp1)管的源极和(NMc0)管的漏极,(Mp1)、(Mp2)、(Mp3)、(Mp4)管的源极共同接地;栅极受上述时钟信号φ的反信号φ控制的用(M*)表示的NMOS管,它在求值时截止以便得到对称的充放电结构,该M*管的漏极同时连接(NMg1)、(NMk2)的源极,而M*管的源极接地。
2.CMOS功耗平衡的延时不敏感加法器用的进位产生电路,其特征在于它是一种进位控制的进位产生电路,即它的进位产生部分必须在用双轨表示的输入进位信号Ck有效,即Ck0,Ck1有一个为1后才开始计算用双轨编码表示的输出进位信号Cj;所述的进位产生电路是一种N型求值网络的动态交叉耦合差分电路,它含有一对交叉耦合的PMOS管,用(CM1)、(CM2)表示,它们的源端接电源,各自的栅极分别接到对方的漏极,它们的漏极同时也是本方的输出端,依次分别输出用双轨编码表示的进位信号Cj0,Cj1的反信号 反信号再依次分别经反相器后输出进位信号Cj0,Cj1;两个分别由同一时钟信号φ控制的PMOS管,用(PM1)、(PM2)表示,它们的源极接电源,栅极接上述时钟信号φ,它们是上述动态交叉耦合差分电路,即DCCD电路的充电开关;两个由上述时钟信号φ控制的NMOS管,用(NM1)、(NM2)表示,它们的漏极依次分别和上述充电开关(PM1)、(PM2)的漏极相连后再和上述交叉耦合管(CM1)、(CM2)的漏极相连,这两个NMOS管(NM1)、(NM2)是上述动态交叉耦合差分电路的放电开关;共八个它们的栅极依次分别受信号Ck1、Ck1、Ck0、Ck0、Ck1、Ck0、Ck0、Ck1控制的NMOS管依次分别用(Mc1)、(M1)、(M2)、(M4)、(M5)、(Mc0)、(M7)、(M8)表示;共三个它们的栅极依次分别受信号Kj-1,k、Pj-1,k、Gj-1,k控制的NMOS管,依次分别用管(M3)、(M6)、(M9)表示,其中,Kj-1,k是加法器的进位链中第k位到第j-1位的进位消除信号,Pj-1,k是加法器的进位链中第k位到第j-1位的进位传递信号,Gj-1,k是加法器的进位链中第k位到第j-1位的进位产生信号;上述管(M3)的漏极同时和上述管(M1)、(M2)的源极相连,上述管(M6)的漏极同时和上述管(M4)、(M5)的源极相连,上述管(M9)的漏极同时和上述管(M7)、(M8)的源极相连,(M3)、(M6)、(M9)管的源极共同接地;共六个它们的栅极都受上述时钟信号φ的反信号φ控制的复位管,依次分别用(Mp1)、(Mp2)、(Mp3)、(Mp4)、(Mp5)、(Mp6)表示;其中(Mp1)、(Mp2)、(Mp3)、(Mp4)、(Mp5)、(Mp6)管的源极共同接地;(Mp1)管的漏极同时和(Mc1)、(M1)、(M2)、(M4)管的漏极以及(NM1)管的源极相连,(Mp2)管的漏极同时和(M5)、(Mc0)、(M7)、(M8)管的漏极以及(NM2)管的源极相连,(Mp3)管的漏极同时和(M1)、(M2)管的源极以及(M3)管的漏极相连,(Mp4)管的漏极同时和(M4)、(M5)管的源极以及(M6)管的漏极相连,(Mp5)管的漏极同时和(Mc0)、(Mc1)管的源极相连,(Mp6)管的漏极同时和(M7)、(M8)管的源极以及(M9)管的漏极相连;上述各个复位管在电路预充时导通,泄放所连节点的电荷。
全文摘要
CMOS功耗平衡延时不敏感超前进位加法器用的进位产生电路和进位控制的进位产生电路属于密码芯片设计中的抗功耗分析工具领域,进位产生电路的特征在于它含有一对交叉耦合的PMOS管,其漏极作为输出端;一对由时钟信号控制的PMOS管作充电开关;一对由时钟信号控制的NMOS管作放电开关;在放电开关和地之间有一个求值网络,它含有进位消除、进位传递、进位产生、输入信号控制的管子及相应的平衡管、复位管,共同构成一个动态差分求值电路,以保证得到一个对称的充放电结构。本发明从而构成一个动态交叉耦合差分电路。用本发明电路制作的功耗平衡加法器与一般加法器相比,其功率信号的信噪比升高了9倍。
文档编号H04L9/30GK1641649SQ200410101820
公开日2005年7月20日 申请日期2004年12月24日 优先权日2004年12月24日
发明者孙义和, 李翔宇 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1