基于可逆逻辑的除法器的制作方法

文档序号:6597313阅读:157来源:国知局

专利名称::基于可逆逻辑的除法器的制作方法
技术领域
:本发明涉及信息
技术领域
的低功耗的CMOS电路,特别涉及一种低功耗的基于可逆逻辑的除法器。
背景技术
:除法是数值计算和数据分析中最常用的运算之一,许多高级运算如平方根、指数、三角函数等都与其有关。除法器是电子
技术领域
的基础模块,广泛应用于数字电路和数字系统的设计中。但传统的除法器是不可逆的,并且存在信息位的丢失,能耗较大。Landauer已证实,由与门、异或门等这些不可逆的传统逻辑门构造的电路在运行过程中,不可避免的会产生能量的损耗。因为在计算过程中,每比特信息的丢失会消耗kT*ln2焦耳的能量,其中k是波尔茨曼常量,T是绝对温度。尽管与其它形式的能耗相比,kT*ln2是一个非常小的量,但在计算中消耗的总能量同信息丢失的个数是成正比的,也就是说,随着信息丢失个数的增加,能耗也随之增加,所以在进行低能耗电路设计时,这一能耗不能忽视。1973年,Bennett指出,在电路中,为了避免因每比特信息丢失而产生的kT*ln2能耗,必须使用可逆逻辑门。可逆逻辑电路是无信息损失的,在理论上能实现零能耗。因此,用可逆逻辑门设计成的除法器可以大大的降低系统能耗。
发明内容本发明的目的是提供一种不恢复余数的可逆除法器,通过一系列可逆模块及三态门的级联来实现。本发明是通过以下的技术方案实现的—种基于可逆逻辑的除法器,包括两个可逆左移寄存器,其中一个是(n+2)输入/输出可逆左移寄存器Reg_l,另一个是n输入/输出可逆左移寄存器Reg_2;两个可逆复用器,其中一个是(n+1)比特可逆复用器MUXj,另一个是n比特可逆复用器MUX—2;—个n输入/输出可逆串行进位加法器;一个基于可逆D型触发器的二分频器;一个反相器、n个三态门以及若干Feynman门。更进一步地,所述基于可逆逻辑的除法器中,所述可逆复用器MUXj的输出作为可逆左移寄存器Regj的输入,可逆复用器MUX—2的输出作为可逆左移寄存器Reg_2的输入;所述可逆左移寄存器Regj的第一输出PI作为第一Feynman门的第一比特输入,这个第一Feynman门的第二比特输入置零,通过这个第一Feynman门后,得到的两个输出都为其中一个输出P工作为所述可逆加法器ADD的进位输入,用来控制所述可逆加法器ADD执行加法或减法,另一个输出Pi控制除数的取反操作;可逆左移寄存器Regj的第二输出R二(rn—r..巧,r。)分别作为n个第二Fey丽n门的第一比特输入,这n个第二Fey丽n门的第二比特输入都置零,这n个第二Feynman门的第一输出作为最终的余数R=(rn—广'巧,r。),第二输出分别作为n个所述三态门的输入,n个所述三态门的输出作为可逆加法器ADD的部分输入B二(Bn…B2,B》;所述可逆加法器的输出(Cn,Sn…S2,S》作为可逆复用器MUXj的一个输入,可逆复用器MUXj的另一个输入为(P,an—广.a一。)=(0,0…,0,0);可逆左移寄存器Reg—2的输出q。直接作为输出,(qn—广、,q》分别作为(n_l)个第四Fey丽n门的第一比特输入,(n-l)个第四Feynman门的第二比特输入置零,这(n-l)个第四Feynman门第一输出作为部分余数输出,其第二输出连同CJ乍为可逆复用器MUX—2的一个输入,可逆复用器MUX—2的另一个输入为被除数X=(xn—p…^,x。),可逆左移寄存器Reg_2的输出SO作为可逆左移寄存器Reg_l的输入。本发明对除法器进行了基于可逆逻辑门的可逆设计,避免了因逻辑信息位的丢失产生的能量损耗,减少了应用了除法器的数字电路或数字系统的能耗。图1:二选一n输入/输出可逆复用器的结构;图2:n输入/输出可逆串行进位加法器的结构;图3a:基于可逆D型触发器的二分频器的结构;图3b:可逆二分频器基本模块;图4a:可逆左移寄存器的结构;图4b:可逆左移寄存器基本模块;图4c:n输入/输出可逆左移寄存器的结构;图5:三态门的结构;图6:反相器的的结构;图7:时钟脉冲CLK经过可逆二分频器及反相器后的输出结果的图示;图8:基于可逆逻辑的n输入/输出除法器的结构。具体实施例方式—、构建基于可逆逻辑的除法器基于可逆逻辑的除法器包括可逆复用器、可逆串行进位加法器、可逆二分频器、可逆左移寄存器、三态门、反相器及若干Feynman门。下面分别介绍每个模块的构建1、二选一n输入/输出可逆复用器由n个Fredkin门级联而成,伴随n个无用输出,如图l所示。其中S为控制输入,An…4A及Bn…B^工是两组输入数据。当S二0时,输出数据Jn…JJi=A,..AA;当S=1时,输出数据J广JJi=B广B具。2、n输入/输出可逆串行进位加法器由n个HNG门级联而成,伴随2n个无用输出,如图2所示。单独的HNG门能实现全加器的功能,将低位HNG门的进位输出连到高位HNG门的进位输入,就能实现任意n输入/输出可逆串行进位加法器。3、基于可逆D型触发器的二分频器由一个Fredkin门及两个Feynman门级联而成,伴随两个无用输出,如图3a所示,其基本模块如图3b所示,取名为"BUF"。如果时钟脉冲CLK的周期为T,则输出Qn+1的周期为2T。4、图4a是一位可逆左移寄存器的基本结构,它由三个Fredkin门和三个Feynman门级联而成,其对应的功能表见表1。当HOLD=O,E=0时,寄存器执行数据的左移操作;当HOLD=0,E=1时,寄存器执行数据的同步置入操作;当HOLD=1时,不管使能端E的状态,寄存器为保持状态。图4b是一位可逆左移寄存器(图4a)的基本逻辑单元,它将主要的五个输入——CLK、HOLD、E、Qi—!及DIi,五个输出——CLK、HOLD、E、Qi及Qi封装成一个基本逻辑单元,记为可逆左移寄存器基本模块。n输入/输出可逆左移寄存器由n个可逆左移寄存器基本模块(图4b)级联而成,如图4c所示。它的工作原理见表2。表1中第1、2行为寄存器左移操作;第3行为并行输入数据的同步置入操作;第4行为保持状态。表1一位可逆左移寄存器的功能表<table>tableseeoriginaldocumentpage6</column></row><table>表2n输入/输出可逆左移寄存器的功能表<table>tableseeoriginaldocumentpage6</column></row><table>(n+2)输入/输出可逆左移寄存器由n+2个可逆左移寄存器基本模块级联而成。工作原理同n输入/输出可逆左移寄存器。5、三态门的结构见图5,其真值表如表3所示。当使能端EN二l时,如果输入为O,则输出为0;如果输入为l,则输出也为1。当使能端EN=0时,不论输入取何值,电路的输出端出现开路,既不是低电平O也不是高电平l,这就是第三种高阻工作状态。三态门的输出作为可逆加法器ADD的输入B=(B,..B2,B》。表3三态门电路的真值表使能EN输入输出1001110X高阻6、反相器的结构如图6所示,它是最简单的可逆门——一输入一输出。当输入为O时,输出为1;当输入为1时,输出为0。在设计除法器时,可逆二分频器BUF的输出作为反相器的输入。时钟脉冲CLK,可逆二分频器BUF及反相器的输出关系如图7所示,由图7可知,通过可逆二分频器BUF后得到的时钟脉冲的周期为2T,是时钟周期CLK周期的两倍,通过反相器后得到的时钟脉冲的周期也为2T,与通过可逆二分频器BUF后得到的时钟脉冲不同之处在于原来的上升沿变为下降沿,原来的下降沿变为上升沿。在本发明的除法器中,反相器的输出是用来控制三态门的工作状态的,具体地说,是指当时钟周期CLK为奇数个周期时,三态门处于高阻状态,此时相当于断路,可逆加法器不工作;当时钟周期CLK为偶数个周期时,三态门正常工作,输出等于输入,可逆加法器运行。因为有n个三态门,所以反相器的输出要用到n次,为了避免可逆逻辑中的扇出,需要利用n个Feynman门,作为复制门来解决扇出的问题。7、基于可逆逻辑的n输入/输出除法器本发明的除法器适用于除数与被除数都是正整数的情况,把除法运算转化成移位运算及加/减法运算,为使本发明的技术方案更加清楚明白,以下参照图8对本发明进一步详细说明。图8所示的基于可逆逻辑的除法器适用于除数和被除数都为正整数的情况。它的组成部件是2个可逆左移寄存器Reg_l及Reg_2,Reg_l为(n+2)输入/输出可逆左移寄存器,Reg_2为n输入/输出可逆左移寄存器;两个可逆复用器MUX_1及MUX_2,MUX_1为(n+1)比特可逆左移寄存器,MUX—2为n比特可逆左移寄存器;一个可逆加法器ADD;—个基于可逆D型触发器的二分频器;一个反相器;n个三态门以及若干Feynman门。可逆复用器MUX_1的输出J=(jn,jn—广*丄,j。)作为可逆左移寄存器Reg_l的输入。同理,可逆复用器MUX—2的输出K二(kn—广'、,k。)作为可逆左移寄存器Reg—2的输入。可逆左移寄存器Reg_l的输出P工作为第一Feynman门的第一比特输入,第二比特输入置零。通过第一Feynman门后,得到的两个输出都为P"—个输出作为可逆加法器ADD的进位输入,主要控制可逆加法器是执行加法还是减法,另一个输出Pi控制除数的取反操作。所谓取反操作,简单来说,当Feynman的一个输入为A,另一个输入为O,则它的两个输出都为A,此时Feynman门起到了复制的作用;当Feynman的一个输入为A,另一个输入为1时,得到一个输出为A,另一个输出为X,也就是实现了取反。在本发明中,控制除数取反操作的Pi的值为1时,就实现了取反操作A的值为0时,就相当于起到复制的作用。可逆左移寄存器Reg_l的第二输出R=(rn—广.巧,r。)分别作为n个第二Feynman门的第一比特输入,第二比特输入置零。因为R二(rn—广'巧,r。)需要用到两次,而可逆电路中是不允许出现扇出的,所以利用n个第二Feynman门解决这个扇出问题。这n个第二Feynman门的其中n个输出作为最终的余数R=(rn—广'巧,r。),另n个输出分别作为n个三态门的输入。除数Y=(yn—广.y"y。)分别作为n个第三Feynman门的第一比特输入,前述第一Fey丽n门的另一个输出通过该n个第三Feynman门来控制除数Y=(yn—n,y。)的取反操作。其中y。对应的第三Feynman门的第二输入为前述第一Feynman门的输出反馈,也就是前述第一Feynman门的另一个输出;yi,y2,…,y『!各自对应的第三Feynman门的第二输入都是前一个第三Feynman的输出反馈;如果反馈的是0(即P工=0),则这n个第三Feynman门输出等于原除数,且作为可逆加法器ADD的输入A=(A。…4,A》;如果反馈的是l(即P工=1),则这n个第三Feynman门输出为原除数取反后的值,且作为可逆加法器ADD的输入A二(An…4,A》。也就是说,所述除数Y二(yn—广u。)经取反或以原值作为所述可逆加法器ADD的输入。可逆加法器的输出(Cn,SnS2,S》作为可逆复用器MUXj的一个输入,另一个输入为(P,an—n,a。),(P,an—广.a一o)的初始值为(0,0…0,0),Cn是每执行一次可逆加法器ADD而产生的对应商值,需要反馈给可逆复用器MUX—2。因为(;用到了两次,所以借助一个Feynman门解决了扇出的问题。可逆左移寄存器Reg_2的输出q。直接作为输出,(qn—广*q2,q》分别作为(n_l)个第四Feynman门的第一比特输入,第二比特输入置零。这(n_l)个第四Feynman门第一输出作为部分余数输出,第二输出连同Cn作为可逆复用器MUX_2的一个输入,另一个输入为被除数X=(xn—工…a,x。)。可逆左移寄存器Reg_2的输出SO作为可逆左移寄存器Reg_l的输入,与Reg—1的SI相连。SI对应图4b中的Qi—p简单来说,是指前一状态的输出;SO对应图4b中的Qi,简单来说,是指最后的输出状态。本发明的除法器的核心部件是两个可逆左移寄存器Reg_l及Reg—2,其中Reg_l为(n+2)输入/输出可逆左移寄存器,Reg_2为n输入/输出可逆左移寄存器,它们主要执行数据的同步置入及左移。待除法完成后,Reg_l的部分输出结果为余数R二(rn—广*巧,r。),Reg_2的输出值为商Q=(qn—广*qi,q。)。起初,令p=1及A=(an—广.^,a。)=0,作为可逆复合器MUX_1的其中一个输入数据。被除数X二(xn—r"Xl,x。)作为可逆复合器MUX—2的其中一个输入数据。控制信号SELECT=0时,MUX—l的输出J=(jn,jn—广.j"j0)=(P,an—广.a"a0),MUX—2的输出K=(kn—r"k"k。)=(xn—r"xpx。)。此后令SELECT二l。当钟脉冲上升沿第一次出现,且控制信号E=1及H01A=0,H0LD2=0时,MUXj的输出值J作为Reg_l的部分输入并被同步置入,MUX_2的输出值K作为Reg_2的输入并被同步置入。接着令E=0,当下一个时钟脉冲来临时,Reg_l和Reg_2进行数据的左移操作。在第一个脉冲上升沿至第二个脉冲上升沿出现的这段时间内,三态门的控制端EN=0,此时不论三态门的输入为何,它的输出端出现开路,处于高阻工作状态,可逆加法器不工作。随着第二个脉冲上升沿的到来,三态门的控制端EN二l,此时电路处于通路,且三态门的输出等于输入,可逆加法器进行工作。Reg_l的输出P工的值将决定可逆加法器到底是执行加法还是减法。当Pi=1时,进行减法运算;当Pi=0时,进行加法运算。由于是原码除法,所以第一步进行减法运算,即Pi=1。这也就是设置初始值P=1的原因。第一步执行减法后,要将结果(最高进位(;及和S二(Sn…S^S》)反馈给MUXj,作为Muxj的另一个输入。更重要的一点是,商的值直接与最高进位c;相关,所以还需将(;的值反馈给MUX—2。因为SELECT=1时,所以MUX—l的输出J=(jn,jn—广.j"j。)=(Cn,S,..S2,S》,MUX—2的输出K=(kn—广.k"k。)=(qn—广.q"q。,Cn)。当第三个时钟上升沿来临时,Regj及Reg_2完成新数据的置入,当第四个时钟上升沿来临时,完成数据的左移,并执行新一轮的加/减法与相应值的反馈。如此循环,当第2n+l个时钟上升沿来临后,令控制信号H0LD2=l,此时Reg_2的输出为最终的商值Q=(qn—广.q"q。)。如果此时Reg_l的输出P。=l,则令HO!A=l,输出为最终的余数R=(rn—广.r"r。);如果此时P。=O,则令HOIA=l,等待第2n+2个时钟上升沿的来临,此时再做一次加法运算,并返回相应的值,且令HOIA=0。当第2n+3个时钟上升沿来临后,令控制信号H01A=l,此时Regj的输出才为最终的余数R二(rn—广'巧,r。)。至此,计算过程结束。二、运行该可逆除法器起初,令p=1及A=(an—广.^,a。)=0,作为可逆复合器MUX_1的其中一个输入数据。被除数X二(xn—r"Xl,x。)作为可逆复合器MUX—2的其中一个输入数据。控制信号SELECT=0时,MUX—l的输出J=(jn,jn—广.j"j0)=(P,an—广.a"a0),MUX—2的输出K=(kn—r"k"k。)=(xn—r"xpx。)。此后令SELECT二l。当钟脉冲上升沿第一次出现,且控制信号E=1及H01A=0,H0LD2=0时,MUXj的输出值J作为Reg_l的部分输入并被同步置入,MUX_2的输出值K作为Reg_2的输入并被同步置入。接着令E=0,当下一个时钟脉冲来临时,Reg_l和Reg_2进行数据的左移操作。在第一个脉冲上升沿至第二个脉冲上升沿出现的这段时间内,三态门的控制端EN=0,此时不论三态门的输入为何,它的输出端出现开路,处于高阻工作状态,可逆加法器不工作。随着第二个脉冲上升沿的到来,三态门的控制端EN二l,此时电路处于通路,且三态门的输出等于输入,可逆加法器进行工作。Reg_l的输出PI的值将决定可逆加法器到底是执行加法还是减法。当Pi=1时,进行减法运算;当Pi=0时,进行加法运算。由于是原码除法,所以第一步进行减法运算,即Pi=1。这也就是设置初始值P=1的原因。第一步执行减法后,要将结果(最高进位(;及和S二(Sn…S^S》)反馈给MUXj,作为Muxj的另一个输入。更重要的一点是,商的值直接与最高进位c;相关,所以还需将(;的值反馈给MUX—2。因为SELECT=1时,所以MUX—l的输出J=(jn,jn—广.j"j。)=(Cn,S,..S2,S》,MUX—2的输出K=(kn—广.k"k。)=(qn—广.q"q。,Cn)。当第三个时钟上升沿来临时,Regj及Reg_2完成新数据的置入,当第四个时钟上升沿来临时,完成数据的左移,并执行新一轮的加/减法与相应值的反馈。如此循环,当第2n+l个时钟上升沿来临后,令控制信号HOLD2=l,此时Reg_2的输出为最终的商值Q=(qn—广.q"q。)。如果此时Reg_l的输出P。=l,则令HO!A=l,输出为最终的余数R=(rn—广.r"r。);如果此时P。=O,则令HOIA=l,等待第2n+2个时钟上升沿的来临,此时再做一次加法运算,并返回相应的值,且令HOIA=0。当第2n+3个时钟上升沿来临后,令控制信号H01A=l,此时Regj的输出才为最终的余数R二(rn—r。)。至此,计算过程结束。权利要求一种基于可逆逻辑的除法器,其特征在于包括两个可逆左移寄存器,其中一个是(n+2)输入/输出可逆左移寄存器Reg_1,另一个是n输入/输出可逆左移寄存器Reg_2;两个可逆复用器,其中一个是(n+1)特可逆复用器MUX_1,另一个是n比特可逆复用器MUX_2;一个n输入/输出可逆串行进位加法器;一个基于可逆D型触发器的二分频器;一个反相器、n个三态门以及若干Feynman门。2.根据权利要求l所述的基于可逆逻辑的除法器,其特征在于所述可逆复用器MUXj的输出作为可逆左移寄存器Reg—1的输入,可逆复用器MUX—2的输出作为可逆左移寄存器Reg_2的输入;所述可逆左移寄存器Reg_l的第一输出&作为第一Feynman门的第一比特输入,这个第一Feynman门的第二比特输入置零,通过这个第一Feynman门后,得到的两个输出都为h,其中一个输出Pi作为所述可逆加法器ADD的进位输入,用来控制所述可逆加法器ADD执行加法或减法,另一个输出Pi控制除数的取反操作;可逆左移寄存器Reg_l的第二输出R=r。)分别作为n个第二Feynman门的第一比特输入,这n个第二Feynman门的第二比特输入都置零,这n个第二Feynman门的第一输出作为最终的余数R=(r^…巧,r。),第二输出分别作为n个所述三态门的输入,n个所述三态门的输出作为可逆加法器ADD的部分输入B=(Bn…B2,B》;所述可逆加法器的输出(Cn,SnS2,S》作为可逆复用器MUXj的一个输入,可逆复用器MUXj的另一个输入为(P,an—广.a,a。)=(0,0…,O,O);可逆左移寄存器Reg_2的输出q。直接作为输出,(qn—广、,q》分别作为(n_l)个第四Feynman门的第一比特输入,(n_l)个第四Feynman门的第二比特输入置零,这(n_l)个第四Feynman门的第一输出作为部分余数输出,其第二输出连同Cn作为可逆复用器MUX_2的一个输入,可逆复用器MUX—2的另一个输入为被除数X=(xn—r"x"x。),可逆左移寄存器Reg_2的输出SO作为可逆左移寄存器Reg_l的输入。3.根据权利要求2所述的基于可逆逻辑的除法器,其特征在于其中Cn是每执行一次可逆加法器ADD而产生的对应商值,需要反馈给可逆复用器MUX_2。4.根据权利要求2或3所述的基于可逆逻辑的除法器,其特征在于所述第一Feynman门的另一个输出Pi通过n个第三Feynman门来控制除数Y二(yn—广'y"y。)的取反操作,所述除数Y=(yn—广'y"y。)经取反或以原值作为所述可逆加法器ADD的输入。5.根据权利要求4所述的基于可逆逻辑的除法器,其特征在于所述可逆二分频器的输出作为所述反相器的输入。6.根据权利要求5所述的基于可逆逻辑的除法器,其特征在于所述反相器用来控制三态门的工作状态。7.根据权利要求6所述的基于可逆逻辑的除法器,其特征在于所述n比特可逆复用器由n个Fredkin门级联而成,伴随n个无用输出;所述(n+1)比特可逆复用器(n+1)个Fredkin门级联而成,伴随(n+1)个无用输出。8.根据权利要求7所述基于可逆逻辑的除法器,其特征在于所述n输入/输出可逆左移寄存器由n个可逆左移寄存器级联而成,所述(n+2)输入/输出可逆左移寄存器由(n+2)个可逆左移寄存器级联而成。9.根据权利要求8所述基于可逆逻辑的除法器,其特征在于基于可逆D型触发器的二分频器由一个Fredkin门及两个Feynman门级联而成,伴随两个无用输出。10.根据权利要求9所述基于可逆逻辑的除法器,其特征在于n输入/输出可逆串行进位加法器由n个HNG门级联而成,伴随2n个无用输出,全文摘要本发明涉及一种基于可逆逻辑的除法器,包括包括两个可逆左移寄存器,其中一个是(n+2)输入/输出可逆左移寄存器Reg_1,另一个是n输入/输出可逆左移寄存器Reg_2;两个可逆复用器,其中一个是(n+1)比特可逆复用器MUX_1,另一个是n比特可逆复用器MUX_2;一个n输入/输出可逆串行进位加法器;一个基于可逆D型触发器的二分频器;一个反相器、n个三态门以及若干Feynman门。本发明所述的除法器适用于对除数与被除数都为正整数的例子。由于本发明对除法器电路中的主要器件进行了基于可逆逻辑门的电路设计,避免了系统中因逻辑信息位的丢失产生的能量损失,减少了系统能耗。文档编号G06F7/535GK101739232SQ20101001837公开日2010年6月16日申请日期2010年1月15日优先权日2010年1月15日发明者倪丽惠,孙玲,施振佺,景为平,管致锦,陶涛申请人:南通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1