梁晓雄,赵曙光,郭荣田
(东华大学 信息科学与技术学院,上海 201620)
基于硬件描述语言的可逆逻辑描述与验证方法
梁晓雄,赵曙光,郭荣田
(东华大学 信息科学与技术学院,上海 201620)
针对可逆逻辑综合在设计较大规模可逆逻辑电路中遇到的瓶颈,文中借助于硬件描述语言的高层次抽象描述能力以及现有EDA平台的仿真验证功能,通过在模块中添加辅助位的方法,使得模块在具有相应功能的同时具备可逆性,并对模块进行实例化,实现对可逆算术逻辑单元的描述与综合。仿真验证表明,该方法具有一定的可行性和有效性。
可逆逻辑电路;硬件描述语言;可逆算术逻辑单元;仿真验证
LIANG Xiaoxiong, ZHAO Shuguang, GUO Rongtian
(School of Information Science and Technology, Donghua University, Shanghai 201620, China)
传统逻辑的不可逆性是造成集成电路发热的重要原因,也是影响集成电路发展的主要因素,为了降低能耗,可将不可逆操作改造为可逆操作[1]。由于可逆逻辑门均是可逆的,可以用可逆的设计方法级联可逆逻辑门网络,而不会因信息丢失产生热耗散,从理论上解决芯片的发热问题。目前可逆逻辑优化的规模性研究还处于起步阶段,现有可逆逻辑功能电路的设计仅能胜任可逆加法器之类的小规模简单电路[2],因此,需要研究新的方法和途径,实现较大规模、较复杂可逆逻辑电路的(半)自动设计。
本文利用硬件描述语言高层次描述能力强,易于移植等特点,并借助现有EDA工具进行仿真和验证,对自动综合后的电路根据预想要求进行简单的人工干预,使得电路既能实现相应功能,又能满足可逆逻辑电路的设计要求。
可逆逻辑可看作不可逆逻辑的一种特殊情况,Verilog作为一种专门用于描述常规逻辑的硬件描述语言[3],也可尝试用Verilog描述可逆逻辑电路。用Verilog描述电路时[4],必须适当添加控制位或者垃圾位保证输入和输出的数目相等。下面给出了不同可逆逻辑门的Verilog描述。
(1)CNOT门[5]。CNOT门有一个控制位和一个目标位,当控制位为1时,目标位取反,当控制位取0时,目标位不变[6],CNOT门可表示为
(1)
代码如下:
module CNOT(A,T,A1,T1);
inputA,T;
outputA1;
wirey;
assignA1=A;
xor xor1(T1,T,A);
endmodule
CNOT门的RTL视图如图1所示。
图1 CNOT门的RTL视图
(2)Fredkin门[7]。Fredkin门即控制交换门,有3个输入位,其中一个作为控制位,两个作为目标位当控制位的值为1时,就交换两个目标位;当控制位的值为0时,则输出位保持不变。Fredkin门可表示为
(2)
代码如下:
module
fredkin(X1,X2,X3,Y1,Y2,Y3);
inputX1,X2,X3;
wirew1,w2,w3,w4;
assignY1=X1;
and and 1(w2,X1,X3);
xor xor1(Y2,w1,w2);
and and4(w4,X1,X2);
xor xor2(Y3,w3,w4);
endmodule
Fredkin门的RTL视如图2所示。
图2 Fredkin门的RTL视图
本文以可逆算术逻辑单元(ALU)为实例分析的对象,ALU作为较大规模、较复杂的常用功能单元电路,既是检验和改进可逆逻辑综合方法的理想设计对象,又是未来量子计算机必不可缺的核心部件。因此,研究和设计可逆ALU[8-9]具有重要的理论价值和实际意义。
图3 1位可逆加法器
2.1 可逆全加器的设计
对经典全加器函数表达式进行变换可得和函数
(3)
进位函数
(4)均是异或表达式的形式,所以可通过可逆逻辑门相互级联的形式得到如图3所示的1位可逆加法器[10]。当Ci=0时,实现可逆加法器的功能。将一位可逆加法器相互级联便能得到如图4所示的4位可逆全加器。
图4 4位可逆加法器
2.2 可逆ALU的设计
为实现算术逻辑功能[11],需要在可逆全加器的基础上加一些辅助位和垃圾位。
(1)减法操作。减法操作可由加法操作变换而来,可在全加器的基础上,以ai为目标位添加一个控制位Cnot组成一个CNOT门,以Si为目标位添加一个控制位Snot组成一个CNOT门,当控制位Cnot和Snot同时为0时,实现加法操作,当控制位同时为1时,实现减法操作;
(3)非操作。以ai为目标位添加一个控制位Canot组成一个CNOT门,当控制位Cnot为1时,实现ai取反操作,同理,bi取反也是如此;
图5 4位可逆ALU的RLT视图
图6 16位可逆ALU的RLT视图
如图5所示,通过Verilog描述之后自动生成4位可逆算术逻辑单元的RTL视图,运用Verilog特有的结构化描述方式,对已定义好的可逆模块实例化,使得模块与模块之间尽可能以最小的减少逻辑门和垃圾位的输出,从而降低可逆逻辑电路的量子代价和功耗。图6是在上述设计好的4位可逆ALU的基础上进一步通过级联的方式生成的16位可逆ALU。表1详细说明了改变不同控制位时,相应得到的不同算术逻辑功能。
表1 16位可逆ALU的功能表
图7 16位可逆ALU仿真结果
如图7是对设计出的16位可逆ALU进行功能仿真结果,当控制位Canot,Cbnot,Ccnot,Cccnot,Csnot,Cab分别取特定值时,能实现算术和逻辑功能。在仿真中,令A= 0110101001011010,B=0110100 101101100。由图7可以看出,仿真结果符合预期目标,本设计实现了可逆算术运算和逻辑运算,并通过硬件描述语言综合出了可逆逻辑电路。
本文根据提出的基于硬件描述语言的可逆逻辑描述与验证方法,成功设计了16位可逆ALU,在一定程度上验证了方法的可行性,为设计较大规模、较复杂可逆逻辑电路提供了一种简洁和有效的途径。此外,本文采用的结构化描述方式能够将无用输出最大程度转化为有用输入,减少了可逆电路中垃圾位的输出,从而进一步减少了电路的能耗损失。
[1] 管致锦.可逆逻辑综合[M].北京:科学出版社,2011.[2] 管致锦,秦小麟,葛自明.量子电路可逆逻辑综合的研究及进展[J].南京邮电大学学报:自然科学版,2007,27(2):24-27.
[3] 吴继华,王诚.设计与验证:Verilog HDL[M].北京:人民邮电出版社,2006.
[4] Drechsler R, Wille R. From truth tables to programming languages: progress in the design of reversible circuits[J]. Proceedings of the International Symposium on Multiple Valued Logic,2011,4(10):78-85.
[5] Feynman R.Quantum mechanical com-puters[J].Foundations of Physics,1986,16(6):507-531.
[6] Sayeeda Sultana,Katarzyna Radecka.Rev-map: a direct gateway from classical irreversible net-work to reversible networks[C].Tuusula:IEEE on Multiple-Valued Logic,2011.
[7] Fredkin E,Toffoli T.Conservative logic[J].International Journal of Theoretical Physics,1982(21):219-253.
[8] Oskin M,Chong F T,Chuang I L.A practical architecture for reliable quantum com-puters[J].Computer,2002(35):79-87.
[9] Matthew Morrison,Nagarajan Ranganathan.Design of a reversible ALU based on novel pro-grammable reversible logic gate struc-tures[C].Chennai:IEEE Computer Society Annual Symposium on VLSI,2011.
[10] Cheng K W,Tseng C C.Quantum full adder and subtractor[J].Electronic Letters,2002,38(22):1343-1344.
[11] Guan Zhijin,Li Wenjuan,Ding Weiping,et al. An arithmetic logic unit design based on reversible logic gates[C].Victoria:IEEE Pacific Rim Conference on Communications, Computers and Signal Processing,2011.
Reversible Logic Description and Verification Based on Hardware Description Language
The high level abstract description capability of the hardware description language and simulation capability of the current EDA platform are combined to resolve the bottleneck in the design of large-scale reversible logic circuits by reversible logic synthesis. Service bits are added to the module, which offers the module both a corresponding function and reversibility. The module is also instantiated for the reversible arithmetic logic unit to be described and synthesized. The simulations show that the proposed method is feasible and effective.
reversible logic circuit; hardware description language; reversible arithmetic logic unit; simulation verification
2015-12-21
国家自然科学基金资助项目(61272224)
梁晓雄(1991-),男,硕士研究生。研究方向:可逆逻辑综合等。赵曙光(1965-),男,博士,教授。研究方向:电子设计伺动化等。
10.16180/j.cnki.issn1007-7820.2016.10.001
TN79+1
A
1007-7820(2016)10-001-04