专利名称::一种基于CTGAL的Booth编码器及绝热补码乘累加器的制作方法
技术领域:
:本发明涉及一种乘累加器,尤其是涉及一种基于CTGAL的Booth编码器及绝热补码乘累加器。
背景技术:
:现有的深亚微米工艺的超大规模集成电路中,低功耗己经成为芯片设计时首要考虑的目标之一。低功耗技术研究已成为集成电路设计中越来越重要的领域。在数字电路系统中,由加法和乘法运算构成的乘累加器是各种数字信号处理系统的关键部件,并在很大程度上左右着系统的功耗。因此,研究低功耗乘累加器对于实现低功耗数字处理系统具有重要的意义。由于传统CMOS集成电路采用直流电源供电,其能量使用方式是由电源一电容一地一次性消耗掉,造成能量的不可回收。而绝热CMOS电路采用交流脉冲电源来驱动电路,利用电源中的电感和电路中的节点电容形成LC振荡回路,使得能量由电源一电容一电源可重复利用,有效地回收贮藏在电容上的能量,同时降低电流,使在被动元件一电阻上保持非常小的压降,达到显著降低功耗的目的。此外,现有结构的Booth编码器的复杂度较高,乘法运算的速度相对较低,这也会造成功耗的增加。我们发明的钟控传输门绝热逻辑(clockedtransmissiongateadiabaticlogic,CTGAL)基本电路如图l所示,它是一种采用二相无交叠功率时钟的具有极低功耗的绝热电路,CTGAL的操作分为2级,第一级在钟控时钟f的控制下通过2个钟控NMOS管(N,,N2)对输入信号(in,b)进行采样;第二级通过自举操作的NMOS管(N3,N4)以及组成CMOS-latch结构的Pi,N5,P2,N6对负载充放电,使输出波形完整,极大地降低了电路的功耗。用互补的NMOS逻辑块代替图1中CTGAL基本电路的自举操作的NMOS管(N3,N4),即可得到如图2、图3和图4所示的CTGAL与门、CTGAL或门和CTGAL2选1数据选择器。
发明内容本发明所要解决的技术问题是提供一种基于CTGAL的Booth编码器及绝热补码乘累加器,能够有效降低Booth编码器的运算复杂度并提高乘法运算的速度,并在此基础上,进一步提供一种具有正确的逻辑功能且能耗节省显著的基于CTGAL的绝热补码乘累加器。本发明解决上述技术问题所采用的技术方案为一种基于CTGAL的Booth编码器,包括一个选择信号发生电路和至少两个并联连接在所述的选择信号发生电路上的CTGAL三选一选择器,所述的CTGAL三选一选择器的一个输入端上连接有CTGAL异或门,下一级的所述的CTGAL异或门的输出端同时与上一级的所述的CTGAL三选一选择器的另一个输入端连接。基于CTGAL的绝热补码乘累加器,主要由乘法电路和累加电路构成,所述的乘法电路包括部分积产生电路和部分积求和电路,所述的累加电路为带有反馈输入的加法器,所述的部分积产生电路为基于CTGAL的Booth编码器,所述的Booth编码器包括一个选择信号发生电路和至少两个并联连接在所述的选择信号发生电路上的CTGAL三选一选择器,所述的CTGAL三选一选择器的一个输入端上连接有CTGAL异或门的输出端,下一级的CTGAL异或门的输出端同时与上一级的所述的CTGAL三选一选择器的另一个输入端连接。所述的部分积求和电路包括多个按照Wallace树结构连接的4-2压縮器,所述的4-2压缩器包括三级信号处理电路,第一级信号处理电路由两个CTGAL或门电路、两个CTGAL与门电路和两个CTGAL异或门电路组成,第二级信号处理电路由一个CTGAL与门电路、一个CTGAL或门电路和一个CTGAL异或门电路组成,第三级信号处理电路由一个CTGAL异或门电路和一个CTGAL二选一选择器组成,所述的第一级信号处理电路的两个CTGAL或门电路的输出端与所述的第二级信号处理电路的CTGAL与门电路的两个输入端连接,并由所述的第二级信号处理电路的CTGAL与门电路的输出端输出本位的Cout信号,所述的第一级信号处理电路的两个CTGAL与门电路的输出端与所述的第二级信号处理电路的CTGAL或门电路的两个输入端连接,所述的第二级信号处理电路的CTGAL或门电路的输出端与所述的第三级信号处理电路的CTGAL二选一选择器0位输入端连接,所述的第一级信号处理电路的两个CTGAL异或门电路的输出端与所述的第二级信号处理电路的CTGAL异或门电路的两个输入端连接,所述的第二级信号处理电路的CTGAL异或门电路的输出端与所述的第三级信号处理电路的CTGAL异或门电路的一个输入端连接,所述的第三级信号处理电路的CTGAL异或门电路的另一个输入端与所述的第三级信号处理电路的CTGAL二选一选择器1位输入端并接于Cin信号输入端,所述的第三级信号处理电路的CTGAL异或门电路输出S信号,所述的第三级信号处理电路的CTGAL二选一选择器输出C信号,本位4-2压縮器的Cout信号输出端与相邻位4-2压縮器的Cin信号输入端连接。所述的累加电路包括并行前缀加法器、累加器和缓冲器,所述的并行前缀加法器的输入端与所述的部分积求和电路连接,所述的并行前缀加法器的输出端与所述的累加器的输入端连接,所述的累加器的输出端输出累加结果并与所述的缓冲器的输入端连接,所述的缓冲器的输出端与所述的累加器的输入端连接。与现有技术相比,本发明的优点在于本发明的基于CTGAL的Booth编码器每次用Booth算法判断时,除了用于产生选择信号的电路外,对被乘数的每一位操作仅需要1个3选1数据选择器和1个异或门,大大降低了运算复杂度并提高了乘法运算的速度;CTGAL电路由于是利用MOS管电容自举效应对结点电容充放电,无阈值损失,因此具有极低的功耗;进一步设计的绝热补码乘累加器,计算机模拟结果表明所设计的电路具有明显的低功耗特性。采用TSMC0.25pmCMOS工艺器件参数,以16位累加的4"位绝热乘累加器为例,进行逻辑功能和能耗的模拟。设被乘数和乘数分别为^=1010(-6),5=0110(6),对^x5进行连续累加。累加结果用细d5wwco表示,如图15所示。这里只显示wflC8waco的波形,因输出结果为补码形式,在1.2us时间内wadswac9的波形均为高电平。由于16位累加器操作时间为3个时钟周期,为了保证累加器逻辑功能的正确性,输入输出信号也需用3个时钟周期表示1个状态。模拟结果表明基于CTGAL的绝热乘累加器具有正确的逻辑功能。为了说明绝热补码乘累加器的低功耗特性,将它与CMOS逻辑的乘累加器进行瞬态能耗比较,由于基于CTGAL的绝热补码乘累加器与基于CMOS逻辑的乘累加器做一次乘累加操作所需时间不同,故将对这两种电路做同样次数累加操作进行能耗比较,比较结果如图16所示。当累加次数大于8次时,基于CTGAL电路的绝热补码乘累加器平均节省能耗将大于65%,且随着乘累加次数的增加,电路节省能耗越明显。本发明利用CTGAL电路设计了一种新型Booth编码器,在此基础上进一步设计了绝热补码乘累加器,这对进一步研究低功耗运算单元,实现低功耗数字处理系统有重要的意义。图1为CTGAL基本电路的示意结构图和表示符号;图2为CTGAL与门的结构示意图和表示符号;图3为CTGAL或门的结构示意图和表示符号;图4为CTGAL2选1数据选择器的结构示意图和表示符号;图5为本发明Booth编码器的结构示意图6为本发明选择信号发生电路电路原理图7为本发明绝热补码乘累加器的电路框图8为本发明绝热补码乘累加器中的4-2压縮器的结构示意图9为本发明绝热补码乘累加器中的部分积求和电路的Wallace树结构示意图IO为本发明绝热补码乘累加器的电路原理图11为Lardner-Fischer加法器"O"运算示意图12为Lardner-Fischer加法器"O"运算阵列示意图13为本发明绝热补码乘累加器的电路原理图14为本发明绝热补码乘累加器的电路原理图15为以16位累加的4x4位绝热补码乘累加器功能模拟波形;图16为基于CTGAL的绝热补码乘累加器与CMOS逻辑的乘累加器瞬态能耗比较。具体实施例方式以下结合附图实施例对本发明作进一步详细描述。实施例一如图5所示,一种基于CTGAL的Booth编码器,包括一个选择信号发生电路1和八个并联连接在选择信号发生电路1上的CTGAL三选一选择器2,CTGAL三选一选择器2的一个输入端上连接有CTGAL异或门的输出端,下一级的CTGAL异或门的输出端同时与上一级的CTGAL三选一选择器2的另一个输入端连接。实施例二基于CTGAL的绝热补码乘累加器,主要由乘法电路100和累加电路200构成,乘法电路100包括部分积产生电路101和部分积求和电路102,累加电路200为带有反馈输入的加法器,部分积产生电路101与实施例一中公开的基于CTGAL的Booth编码器结构相同,部分积求和电路102包括多个按照Wallace树结构连接的4-2压縮器3,4-2压缩器3包括三级信号处理电路,第一级信号处理电路301由两个CTGAL或门电路、两个CTGAL与门电路和两个CTGAL异或门电路组成,第二级信号处理电路302由一个CTGAL与门电路、一个CTGAL或门电路和一个CTGAL异或门电路组成,第三级信号处理电路303由一个CTGAL异或门电路和一个CTGAL二选一选择器组成,第一级信号处理电路301的两个CTGAL或门电路的输出端与所述的第二级信号处理电路302的CTGAL与门电路的两个输入端连接,并由第二级信号处理电路302的CTGAL与门电路的输出端输出本位的Cout信号,第一级信号处理电路301的两个CTGAL与门电路的输出端与第二级信号处理电路302的CTGAL或门电路的两个输入端连接,第二级信号处理电路302的CTGAL或门电路的输出端与所述的第三级信号处理电路303的CTGAL二选一选择器0位输入端连接,第一级信号处理电路301的两个CTGAL异或门电路的输出端与第二级信号处理电路302的CTGAL异或门电路的两个输入端连接,第二级信号处理电路302的CTGAL异或门电路的输出端与第三级信号处理电路303的CTGAL异或门电路的一个输入端连接,第三级信号处理电路303的CTGAL异或门电路的另一个输入端与第三级信号处理电路303的CTGAL二选一选择器1位输入端并接于Cin信号输入端,第三级信号处理电路303的CTGAL异或门电路输出S信号,第三级信号处理电路303的CTGAL二选一选择器输出C信号,本位4-2压縮器的Co"d言号输出端与相邻高位4-2压縮器的Cin信号输入端连接。累加电路200包括并行前缀Lardner-Fischer加法器201、累加器202和缓冲器203,并行前缀Lardner-Fischer加法器201的输入端与部分积求和电路102连接,并行前缀Lardner-Fischer加法器的输出端与累加器202的输入端连接,累加器202的输出端输出累加结果并与缓冲器203的输入端连接,缓冲器203的输出端与累加器202的输入端连接。传统的乘法运算,用AND阵列实现,每次只检查乘数的一位二进制数来决定对被乘数的操作。它虽然具有较短的延迟时间,但产生的部分积较多,对乘数为"位的乘法运算,将产生"个部分积。而改进型Booth算法将同时检查乘数的/t位二进制数来产生部分积,对乘数为"位的乘法运算,将产生"/A:个部分积,从而减少部分积数目。本发明将所述的改进型Booth算法利用具体的电路元器件实现,且结构精简,进一步实现了有符号数的乘法运算,乘数和被乘数均用补码表示,采用相加和相减的操作计算补码数据的乘积。实现步骤如下(1)初始化乘积值为0,被乘数J和乘数5准备;(2)在乘数最低位右边补1位二进制数'0',此时乘数长度为(M+l)位;(3)对长度为("+l)位的二进制乘数,由低位到高位每次判断其中的3位二进制数5w&A-,,且交叠一位;(4)根据3位二进制数的不同组合(000111),乘积相应地对被乘数^做5种不同的操作+0,+J,-A+2A-2^4(+0表示不对被乘数进行任何操作,原乘积不变;±4表示在乘积上加上或减去被乘数;±2」表示在乘积上加上或减去两倍的被乘数),如表1所示,其中-v4,-2^操作是通过加^4补,加2^4补实现的;(5)本次操作结束后,被乘数右移两位;(6)循环操作步骤(3)~(5),共计"/2次,得到乘积。表1Booth算法<table>tableseeoriginaldocumentpage9</column></row><table>通常将步骤(4)中的5种操作分为+0,±A±2^4三类,并用3个信号作为相应的选择信号,即化Q选择+0操作,M!选择士^操作,W2选择士2^操作。根据卡诺图法得到选择信号wo,Wi,W2的表达式为<formula>formulaseeoriginaldocumentpage9</formula><formula>formulaseeoriginaldocumentpage9</formula><formula>formulaseeoriginaldocumentpage9</formula><formula>formulaseeoriginaldocumentpage9</formula>由表1可见,选择信号W,购分别都对应加/减两种操作。当sq(或购)有效时,还需确定选择加法还是减法操作。这里采用被乘数的每一位与当前3位二进制数^H^g,-!的高位万w异或来区别,因为做加法运算时5,+1等于0,与0异或后信号值不变;做减法运算时&+1等于'1',与'1'异或后信号值取反,实现减法中的取反操作。由于减法运算是通过求补实现的,故还需在所生成部分积的最低位加'r,为了简化Booth编码器结构,该操作将在后面对部分积的压縮和求和时实现,故可得到如图5所示的Booth编码器电路结构。可见,每次用Booth算法判断时,除了用于产生选择信号的电路外,对被乘数的每一位操作仅需要1个3选1数据选择器和1个异或门。因此,Booth编码器的延迟时间只有两级门电路的延迟时间,仅比AND阵列多一级门电路的延迟时间,但产生的部分积数目却只有AND阵列所产生部分积数目的一半。为提高部分积的求和速度,采用4-2压縮器对部分积进行压縮。改进型4-2压縮器将五个数(四个实际数据;d,X2,X3,X4,—个进位Cin)相加产生三个输出数和S,向高位的进位输出Cout,向下一级的进位输出C,其中Cout不会向下一级传递,而是作为相邻高位的输入信号Cin。绝热4-2压縮器的输入、输出信号均具有相同的逻辑延迟,其电路结构如图8所示。在图8中绝热4-2压缩器的操作分三级,而CTGAL电路采用二相无交叠功率时钟,因此绝热4-2压縮器的第一级和第三级采用相同的功率时钟。当4-2压縮器级联时,由于高位Cin在第三级才被采用,而本位的Cout在第二级己经形成,因此将本位的Cout接入相邻高位的Cin时,不会对延迟造成影响。即级联的所有绝热4-2压缩器可以同时工作,且本位的Cout和相邻高位的Cin具有相同的相位关系,无需加入额外的CTGAL缓冲器调节相位。当部分积较多,常将4-2压縮器按照Wallace树结构连接,以提高对部分积的压縮速度,其结构如图9所示。Wallace树不是直接将所有的部分积依次相加,而是采用趋于并行的结构对部分积进行求和操作,以减少由于进位传输引起的延迟时间,从而提高整个部分积加法阵列的运算速度。部分积压縮电路的输出结果并不是最终的乘积,对于wn位的乘法运算,部分积压縮电路输出两个2"位数和&及进位C,(—0,1,…,2w-l),这两个2位数之和才是乘法运算的结果。对部分积压縮电路输出的两个位数&,C,,将采用并行前缀Ladner-Fischer加法器得到它们和。该加法器是由一系列"0"运算组成,"0"运算的运算过程如图11所示。图12是一个8位Ladner-Fischer加法器阵列结构图,除了"0"运算阵列外,由于绝热电路存在相位延迟,还需在加法器阵列内部加入相应的CTGAL缓冲器调节信号相位。做加法运算时,首先将部分积压縮电路输出的两个2w位数&,C,根据进位传递信号和进位产生信号的产生机理得到进位传递信号&=^(,和进位产生信号A-S,eCi。然后由图12所示的Ladner-Fischer加法阵列计算得到各位的进位信号cc2^,…,cco,最后根据求和公式得到和薩2一0:誕0=A),騰,=Acc,—,2,…,2"-l)。累加器与加法器不同的是,累加器的输出信号需要反馈到输入端,作为其中的一个输入信号,这样的信号也称反馈信号。在绝热电路里,为了得到正确的逻辑功能,反馈到输入端的信号需和非反馈输入信号同相位。如果相位不同,则需要若干CTGAL缓冲器调整相位。同时,由于累加器的运算需要一定的时间,在累加器尚未得出累加结果,非反馈的输入信号需重复和累加器运算时间相同的时间。否则乘累加器最新累加的值可能不是最新生成的积。在Booth算法中,当对被乘数做"v4,-2^操作时,需要得到被乘数的补码,而Booth编码器仅完成取反和移位操作,所以还需对所生成部分积的最低位加'1'。由表1可知,当双+^力w为"101"或"110"时做4操作,需要在图8所示部分积阵列(X为部分积,S为符号位)的第0,2,4,6列上加'I',而当5wA队i为"100"时做-Z4操作,由于Booth编码器已完成了移位操作,故需要在部分积阵列的第1,3,5,7列上加"'。为区分这两种情况,将修正数附,=5,+,^@5—J加到部分积阵列的第0,2,4,6列,修正数",^g^,G=0广*3)加到部分积阵列的第l,3,5,7列上。由于每个需要修正的部分积只对应一种操作("或-2乂),所以w,和",中最多只有一个为'1',如果叫和",均为'0',则说明生成该部分积时,对被乘数是做+J,+2^4或+0操作,不需要修正。对部分积阵列的修正操作如图13和14所示,由于部分积阵列第0到第3列每列只有一个或两个实际数据,故不使用4-2压縮器,第0到第3列上的部分积直接在最后的加法器中相加,在这四列上所做的修正操作也在加法器中执行。从第4列到最左边一列均用4-2压缩器对部分积压縮,由于第4,5列只有3个实际数据数,而4-2压縮器可以压縮四个实际数据,故在第4,5列上所加的修正数可分别作为第4,5列4-2压缩器的一个输入信号。第6,7列己经有4个数,对应的4-2压縮器无多余的输入端,在第6,7列所作的修正操作也在加法器中执行。在加法器中执行修正操作时,由于第0,l列上原来只有一个数,故所加的修正数可作为另一个加数直接输入;而第2,3,6,7列均有两个加数,加法器相应位上没有空余的输入端,需要对加法器相应位的进位传递信号g,和进位产生信号^重新设计。用《表示需要加的修正数,利用卡诺图法得<formula>formulaseeoriginaldocumentpage12</formula>总上所述,将Booth编码器中的减法操作分多步实现,Booth编码器只实现了对数据的取反和移位,同时,充分利用部分积压縮电路和求和电路中的空余输入端,以及对加法电路某几位上的进位传递和进位产生信号g,,A进行重新设计,修正了减法操作时Booth编码器所生成的部分积。以简洁的修正操作为代价,有效降低电路结构的复杂度和减少电路的延迟时间,从而实现基于CTGAL的低功耗绝热补码乘累加器。权利要求1、一种基于CTGAL的Booth编码器,其特征在于包括一个选择信号发生电路和至少两个并联连接在所述的选择信号发生电路上的CTGAL三选一选择器,所述的CTGAL三选一选择器的一个输入端上连接有CTGAL异或门,下一级的所述的CTGAL异或门的输出端同时与上一级的所述的CTGAL三选一选择器的另一个输入端连接。2、一种基于CTGAL的绝热补码乘累加器,主要由乘法电路和累加电路构成,所述的乘法电路包括部分积产生电路和部分积求和电路,所述的累加电路为带有反馈输入的加法器,其特征在于所述的部分积产生电路为基于CTGAL的Booth编码器,所述的Booth编码器包括一个选择信号发生电路和至少两个并联连接在所述的选择信号发生电路上的CTGAL三选一选择器,所述的CTGAL三选一选择器的一个输入端上连接有CTGAL异或门的输出端,下一级的CTGAL异或门的输出端同时与上一级的所述的CTGAL三选一选择器的另一个输入端连接。3、如权利要求2所述的基于CTGAL的绝热补码乘累加器,其特征在于所述的部分积求和电路包括多个按照Wallace树结构连接的4-2压縮器,所述的4-2压縮器包括三级信号处理电路,第一级信号处理电路由两个CTGAL或门电路、两个CTGAL与门电路和两个CTGAL异或门电路组成,第二级信号处理电路由一个CTGAL与门电路、一个CTGAL或门电路和一个CTGAL异或门电路组成,第三级信号处理电路由一个CTGAL异或门电路和一个CTGAL二选一选择器组成,所述的第一级信号处理电路的两个CTGAL或门电路的输出端与所述的第二级信号处理电路的CTGAL与门电路的两个输入端连接,并由所述的第二级信号处理电路的CTGAL与门电路的输出端输出本位的C卯d言号,所述的第一级信号处理电路的两个CTGAL与门电路的输出端与所述的第二级信号处理电路的CTGAL或门电路的两个输入端连接,所述的第二级信号处理电路的CTGAL或门电路的输出端与所述的第三级信号处理电路的CTGAL二选一选择器0位输入端连接,所述的第一级信号处理电路的两个CTGAL异或门电路的输出端与所述的第二级信号处理电路的CTGAL异或门电路的两个输入端连接,所述的第二级信号处理电路的CTGAL异或门电路的输出端与所述的第三级信号处理电路的CTGAL异或门电路的一个输入端连接,所述的第三级信号处理电路的CTGAL异或门电路的另一个输入端与所述的第三级信号处理电路的CTGAL二选一选择器1位输入端并接于O力信号输入端,所述的第三级信号处理电路的CTGAL异或门电路输出S信号,所述的第三级信号处理电路的CTGAL二选一选择器输出C信号,本位4-2压縮器的Cout信号输出端与相邻位4-2压縮器的C/w信号输入端连接。4、如权利要求2所述的基于CTGAL的绝热补码乘累加器,其特征在于所述的累加电路包括并行前缀加法器、累加器和缓冲器,所述的并行前缀加法器的输入端与所述的部分积求和电路连接,所述的并行前缀加法器的输出端与所述的累加器的输入端连接,所述的累加器的输出端输出累加结果并与所述的缓冲器的输入端连接,所述的缓冲器的输出端与所述的累加器的输入端连接。全文摘要本发明公开了一种基于CTGAL的Booth编码器,特点是包括一个选择信号发生电路和至少两个并联连接在选择信号发生电路上的CTGAL三选一选择器,CTGAL三选一选择器的一个输入端上连接有CTGAL异或门,下一级的CTGAL异或门的输出端同时与上一级的CTGAL三选一选择器的另一个输入端连接,优点是每次用Booth算法判断时,除了用于产生选择信号的电路外,对被乘数的每一位操作仅需要1个3选1数据选择器和1个异或门,大大降低了运算复杂度并提高了乘法运算的速度,进一步设计的绝热补码乘累加器,计算机模拟结果表明具有明显的低功耗特性,将16位累加的4×4位绝热乘累加器与CMOS逻辑的乘累加器进行瞬态能耗比较,平均节省能耗大于65%。文档编号G06F7/48GK101382882SQ200810121150公开日2009年3月11日申请日期2008年9月28日优先权日2008年9月28日发明者建徐,汪鹏君申请人:宁波大学