Synthesis of Fredkin-Toffoli Reversible Networks

Similar documents
Reversible Function Synthesis with Minimum Garbage Outputs

Two-Qubit Quantum Gates to Reduce the Quantum Cost of Reversible Circuit

Reversible Logic Synthesis with Output Permutation

Improved ESOP-based Synthesis of Reversible Logic

ENERGY loss is an important consideration in digital design.

Optimized Reversible Programmable Logic Array (PLA)

Synthesizing Reversible Circuits for Irreversible Functions

A Shared-cube Approach to ESOP-based Synthesis of Reversible Logic

Quantified Synthesis of Reversible Logic

arxiv:quant-ph/ v1 24 Jul 2006

Exact SAT-based Toffoli Network Synthesis

A Novel Design for carry skip adder using purity preserving reversible logic gates

Design of Reversible Synchronous Sequential Circuits

FPGA IMPLEMENTATION OF BASIC ADDER CIRCUITS USING REVERSIBLE LOGIC GATES

Synthesis of Reversible Circuits for Large Reversible Functions

Technical Report: Projects & Background in Reversible Logic

Analysis of Multiplier Circuit Using Reversible Logic

Design of an Online Testable Ternary Circuit from the Truth Table

DESIGN OF A COMPACT REVERSIBLE READ- ONLY-MEMORY WITH MOS TRANSISTORS

An Algorithm for Minimization of Quantum Cost

FPGA-Based Circuit Model Emulation of Quantum Algorithms

Group Theory Based Synthesis of Binary Reversible Circuits

Reversible Circuit Synthesis of Symmetric Functions Using a Simple Regular Structure

Templates for Positive and Negative Control Toffoli Networks

USING AUTOCORRELATION COEFFICIENT-BASED COST FUNCTIONS IN ESOP-BASED TOFFOLOI GATE CASCADE GENERATION

Direct Design of Reversible Combinational and Sequential Circuits Using PSDRM Expressions

Fault localization in reversible circuits is easier than for classical circuits

Reversible Circuit Using Reversible Gate

Optimization of reversible sequential circuits

Optimized Nanometric Fault Tolerant Reversible BCD Adder

Integrated Synthesis of Linear Nearest Neighbor Ancilla-Free MCT Circuits

Online Testable Reversible Circuits using reversible gate

Technical Report: Considerations for Determining a Classification Scheme for Reversible Boolean Functions

Graphical Method of Reversible Circuits Synthesis

Exploiting Reversibility in the Complete Simulation of Reversible Circuits

Transistor Implementation of Reversible Comparator Circuit Using Low Power Technique

SYNTHESIS AND TESTING OF REVERSIBLE TOFFOLI CIRCUITS. NOOR MUHAMMED NAYEEM Bachelor of Science, University of Dhaka, 2008

Quantum Cost efficient Reversible Multiplier

Design and Optimization of Reversible BCD Adder/Subtractor Circuit for Quantum and Nanotechnology Based Systems

DESIGN AND ANALYSIS OF A FULL ADDER USING VARIOUS REVERSIBLE GATES

Equivalence Checking of Reversible Circuits

On Universality of Ternary Reversible Logic Gates

Department of ECE, Vignan Institute of Technology & Management,Berhampur(Odisha), India

High Speed Time Efficient Reversible ALU Based Logic Gate Structure on Vertex Family

Design of a Compact Reversible Random Access Memory

Design of Reversible Code Converters Using Verilog HDL

CHAPTER 2 AN ALGORITHM FOR OPTIMIZATION OF QUANTUM COST. 2.1 Introduction

Design and Implementation of Carry Adders Using Adiabatic and Reversible Logic Gates

Realization of 2:4 reversible decoder and its applications

On The Complexity of Quantum Circuit Manipulation

Literature Review on Multiplier Accumulation Unit by Using Hybrid Adder

Design and Implementation of Nanometric Fault Tolerant Reversible BCD Adder

In

Design and Implementation of REA for Single Precision Floating Point Multiplier Using Reversible Logic

Design of Reversible Comparators with Priority Encoding Using Verilog HDL

OPTIMAL DESIGN AND SYNTHESIS OF FAULT TOLERANT PARALLEL ADDER/SUBTRACTOR USING REVERSIBLE LOGIC GATES. India. Andhra Pradesh India,

arxiv: v1 [quant-ph] 20 Jul 2009

Design of Reversible Even and Odd Parity Generator and Checker Using Multifunctional Reversible Logic Gate (MRLG)

A Novel Synthesis Algorithm for Reversible Circuits

Design of Digital Adder Using Reversible Logic

Design and Implementation of Combinational Circuits using Reversible Gates

Fault Testing for Reversible Circuits

Synthesis of Quantum Circuit for FULL ADDER Using KHAN Gate

arxiv: v2 [quant-ph] 27 Dec 2010

ISSN Vol.03, Issue.03, June-2015, Pages:

PERFORMANCE ANALYSIS OF CLA CIRCUITS USING SAL AND REVERSIBLE LOGIC GATES FOR ULTRA LOW POWER APPLICATIONS

A New Approach to Online Testing of TGFSOP-based Ternary Toffoli Circuits

Conference on Advances in Communication and Control Systems 2013 (CAC2S 2013)

Regularity and Symmetry as a Base for Efficient Realization of Reversible Logic Circuits

Variable Reordering for Reversible Wave Cascades - PRELIMINARY VERSION

Majority-Based Reversible Logic Gate

Downloaded from

Technology Mapping and Optimization for Reversible and Quantum Circuits

Performance Enhancement of Reversible Binary to Gray Code Converter Circuit using Feynman gate

Design of Universal Shift Register Using Reversible Logic

Design of a compact reversible binary coded decimal adder circuit

A Novel Design of Reversible Universal Shift Register

Implementation of Optimized Reversible Sequential and Combinational Circuits for VLSI Applications

A COMPARISON OF LOGICAL EFFICIENCY

Implementation of Reversible Control and Full Adder Unit Using HNG Reversible Logic Gate

Database Manipulation Operations on Quantum Systems

Quantum gate. Contents. Commonly used gates

A NEW APPROACH TO DESIGN BCD ADDER AND CARRY SKIPBCD ADDER

ENERGY EFFICIENT DESIGN OF REVERSIBLE POS AND SOP USING URG

Implementation of Reversible ALU using Kogge-Stone Adder

DESIGN AND IMPLEMENTATION OF EFFICIENT HIGH SPEED VEDIC MULTIPLIER USING REVERSIBLE GATES

SCIENCE & TECHNOLOGY

Automatic Design of Low-Power Encoders Using Reversible Circuit Synthesis

Scalable Systolic Structure to Realize Arbitrary Reversible Symmetric Functions

Gates for Adiabatic Quantum Computing

An FPGA Implementation of Energy Efficient Code Converters Using Reversible Logic Gates

FULL ADDER/ SUBTRACTOR USING REVERSIBLE LOGIC

Design and Synthesis of Sequential Circuit Using Reversible Logic

Power Minimization of Full Adder Using Reversible Logic

Novel Reversible Gate Based Circuit Design and Simulation Using Deep Submicron Technologies

Optimized design of BCD adder and Carry skip BCD adder using reversible logic gates

DETERMINISTIC AND PROBABILISTIC TEST GENERATION FOR BINARY AND TERNARY QUANTUM CIRCUITS

Design of Efficient Adder Circuits Using PROPOSED PARITY PRESERVING GATE (PPPG)

A Systematic Algorithm for Quantum Boolean Circuits Construction

Design of Reversible Multiplier by Novel ANU Gate

Transcription:

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL.???, NO.???,??? 2004 1 Synthesis of Fredkin-Toffoli Reversible Networks Dmitri Maslov, Gerhard W. Dueck, Member, IEEE, and D. Michael Miller, Member, IEEE Abstract Reversible logic has applications in quantum computing, low power CMOS, nanotechnology, optical computing, and DNA computing. The most common reversible gates are the Toffoli gate and the Fredkin gate. We synthesize a network with these gates in two steps. First, our synthesis algorithm finds a cascade of Toffoli and Fredkin gates with no backtracking and minimal look-ahead. Next we apply transformations that reduce the size of the circuit. Transformations are accomplished via template matching. The basis for a template is a network with m gates that realizes the identity function. If a sequence in the network to be synthesized matches more than half of a template, then a transformation that reduces the gate count can be applied. We synthesize all three input, three output reversible functions and compare our results to those previously obtained to test the quality of our synthesis approach. We also use our synthesis tool to obtain circuits for some benchmark functions. Keywords: Logic design, Design automation, Circuit optimization, Quantum theory. I. INTRODUCTION Reversible logic has attracted significant attention in recent years. It has applications in quantum computing, nanotechnology, low power CMOS, and optical computing. It started when Landauer [10] proved that traditional binary irreversible gates lead to power dissipation in a circuit regardless of implementation. Recently, Zhirnov et al. [20], among other results, calculated that power dissipation in future CMOS (scaled for the year 2016 in accordance with the 2001 International Technology Roadmap for Semiconductors) leads to impossible heat removal, and thus suggesting the impossibility of speeding up CMOS technology devices. Bennett [3] showed that for power not to be dissipated it is necessary that a binary circuit be build from reversible gates. This suggests that reversible technologies and the synthesis of reversible circuits are potentially very promising areas of study with regard to further technological advances. A reversible function (gate) is a bijection. Traditional gates such as AND, OR, and EXOR are not reversible. In fact NOT is the only reversible gate from the traditional set of gates. Several reversible gates have been proposed. Among them are the controlled NOT (also known as the Feynman [7] or the two-bit Toffoli gate), the Toffoli gate [19], and the Fredkin gate [8]. These gates are, perhaps, the best investigated reversible gates. Inexpensive quantum implementations of the Toffoli [2], [11], [17] and the Fredkin [6], [17] gates were found. While the technological costs of Toffoli and Fredkin gates are Manuscript received March 18, 2004; revised???, 2004. The work of G. Dueck was supported in part by a grant form the Natural Sciences and Engineering Research Council of Canada. D. Maslov and M. Miller are with the Department of Computer Science, University of Victoria, Victoria, BC, Canada, V8W 3P6 (dmitri.maslov@unb.ca, mmiller@cs.uvic.ca). G. Dueck is with the Faculty of Computer Science, University of New Brunswick, Fredericton, NB, Canada, E3B 5A3 (gdueck@unb.ca). comparable, it was shown [5] that using both types of gates for the synthesis results in the smaller circuit specifications. Therefore, a synthesis procedure exploiting both types of gates is of an interest. In this paper we concentrate on the synthesis of the networks with these well known gates and their straightforward generalizations. The synthesis of reversible logic differs significantly from traditional irreversible logic synthesis approaches. Fan-outs and loops are not permitted due to the target technology. Outputs from one gate are used as inputs to the next gate. This results in a high degree of interdependence among gates. Only a few synthesis methods have been proposed for reversible logic. Suggested methods include: using Toffoli gates to implement an ESOP (EXOR sum-of-products) [16], using tree search and Reed-Muller expansions [1], exhaustive enumeration [18], heuristic methods that iteratively make the function simpler (simplicity is measured by the Hamming distance [4] or by spectral means [14]), and transformation based synthesis [9], among others. Some methods use excessive search time, others are not guaranteed to converge, and some require many additional outputs called garbage (in this paper we consider the following definition of the garbage: outputs that are not required by the function specification, but appear in a design due to the reversibility requirements [12]). We follow the two-step approach suggested in [15] for Toffoli network synthesis. Our algorithm first finds an initial circuit with no backtracking and minimal look-ahead. We exploit reversibility directly in our synthesis approach. This method always finds a solution. Next we introduce bidirectional modification of the basic algorithm and then apply a set of template transforms that reduce the size of the circuit. In this paper we describe and classify the templates used for such transformations in detail. II. DEFINITIONS We consider cascades of generalized Toffoli [19] and generalized Fredkin [8] gates defined as follows. Definition 1: For the set of domain variables {x 1, x 2,..., x n } the generalized Toffoli gate has the form T OF (C; T ), where C = {x i1, x i2,..., x ik }, T = {x j } and C T =. It maps the Boolean pattern (x + 1, x+ 2,..., x+ n ) to (x + 1, x+ 2,..., x+ j 1, x+ j x+ i 1 x + i 2...x + i k, x + j+1,..., x+ n ). Definition 2: For the set of domain variables {x 1, x 2,..., x n } generalized Fredkin gate has the form F RE(C; T ), where C = {x i1, x i2,..., x ik }, T = {x j, x l } and C T =. It maps the Boolean pattern (x + 1, x+ 2,..., x+ n ) to (x + 1, x+ 2,..., x+ j 1, x+ l, x+ j+1,..., x+ l 1, x+ j, x+ l+1,..., x+ n ) iff x + i 1 x + i 2...x + i k = 1, otherwise the pattern is unchanged. In other words, the generalized Fredkin gate interchanges bits x j and x l if, and only if, corresponding product equals 1.

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL.???, NO.???,??? 2004 2 Fig. 1. Toffoli and Fredkin gates, and the box notation. For both gate types, C will be called the control set and T will be called the target set. The number of elements in the set of controls C defines the width of the gate. The set of generalized Toffoli and generalized Fredkin gates will be called the Fredkin-Toffoli family. For the control set C = {x 3, x 4,..., x k+2 } the pictorial representation of gate T OF (C; x 2 ) is shown in Fig. 1a and the pictorial representation of gate F RE(C; x 1, x 2 ) is shown in Fig. 1b. Toffoli and Fredkin gates are closely related. In fact, they can be written as one general gate G(S; B). Section IV illustrates how useful it is to unite these two gate types together. The uniform way of writing Toffoli and Fredkin gates is captured in the definition of a box notation G(S; B), which for B = 1 is the T OF (S; B) gate and for B = 2 is F RE(S; B). Such a way of writing the gates is needed when we consider a general gate from the Fredkin-Toffoli family and do not want to specify which gate it is. So, if the size of the set B is not specified, it can be either 1 or 2. The gate shown in Fig. 1c is G(C; B) where the set B is not specified. III. THE ALGORITHM The basic algorithm assumes that the function to be synthesized is given as a truth table, and starts synthesis with an empty circuit which realizes the identity function. At every step of the synthesis algorithm we add some gates from the Fredkin-Toffoli family to the end of the circuit. In the basic algorithm we transform the output specification to the form of the input assigning the gates at the end of the cascade only (thus, building the network in the reverse order). Step 0. Idea: use NOT gates so that they transform the first output pattern to form of the first input pattern. The first input pattern in the truth table is (0, 0,..., 0) (assume Boolean n-tuples are arranged in lexicographical order), let the corresponding output pattern be (b 1, b 2,..., b n ). To bring it to the form (0, 0,..., 0), use gates T OF ( ; x i ) for every i : b i 0. After adding the gates to the cascade, update the output part of the table so that the pattern (b 1, b 2,..., b n ) is transformed to the desired form (0, 0,..., 0). Step S, 1 S 2 n 2. Idea: without influencing the patterns of lower order that were transformed in previous steps of the algorithm, use the least number of gates with the fewest possible controls (those are usually less costly when implemented in a real technology) to bring the output pattern to the form of the corresponding input pattern. The input pattern (a 1, a 2,..., a n ) is the binary representation of natural number S. The pattern in the output part of the same string in truth table is a pattern (b 1, b 2,..., b n ) of higher order. If the order is the same, the patterns are equal, and no action is required. The order of (b 1, b 2,..., b n ) cannot be less than the order of (a 1, a 2,..., a n ) since all such patterns were put to their places during the previous steps of the algorithm. For pattern (b 1, b 2,..., b n ) to be transformed to the form (a 1, a 2,..., a n ) note that each application of a Toffoli gate is capable of flipping one bit of pattern (b 1, b 2,..., b n ) either from value 0 to value 1 or vice versa, and each Fredkin gate is capable of permuting a pair of unequal Boolean values. Now, the problem can be formulated as follows: using the two operations flip and swap bring the Boolean pattern (b 1, b 2,..., b n ) (a 1, a 2,..., a n ) to the form (a 1, a 2,..., a n ) so that all intermediate Boolean patterns are greater than (a 1, a 2,..., a n ). The controls for the corresponding gates will be assigned later. The problem s solution is as follows. If the number of ones in (b 1, b 2,..., b n ) is less than the number of ones in (a 1, a 2,..., a n ) apply swaps that improve 2 bit positions and flip the remaining incorrect bits. Use swaps so that the order of each intermediate pattern (x 1, x 2,..., x n ) is greater than the order of (a 1, a 2,..., a n ). This can be easily done if swaps are used on the low order bits first. Note, that the initial pattern (b 1, b 2,..., b n ) is of an order higher than (a 1, a 2,..., a n ), while having lesser number of ones in it. Thus, the most significant binary digit of (b 1, b 2,..., b n ), equal one, is greater than the most significant one digit of (a 1, a 2,..., a n ). Therefore, it is taken as the control (when a control is needed) for all corresponding Fredkin and Toffoli gates except the last Toffoli gate, for which the control consists of all unit digits of (a 1, a 2,..., a n ). If the number of ones in (b 1, b 2,..., b n ) is equal to the number of ones in (a 1, a 2,..., a n ), it is possible to transform one pattern into the other using swap operation only. The set of controls while considering an intermediate pattern (x 1, x 2,..., x n ) is defined as a minimal subset of its unit values such that this subset forms a Boolean pattern of an order higher than (a 1, a 2,..., a n ). If the number of ones in (b 1, b 2,..., b n ) is greater than the number of ones in (a 1, a 2,..., a n ), apply swaps starting from the right end of the pattern (b 1, b 2,..., b n ) and then apply necessary Toffoli gates. All the controls can be found using the procedure described in the above case. Step 2 n 1. When the first 2 n 1 patterns are properly aligned, the last pattern will automatically be correct. Bidirectional modification. The basic algorithm works from the output to input by adding gates in one direction starting from the end of the desired cascade. We now describe what happens if the gates are applied in the beginning of the cascade, thus allowing simultaneous synthesis from either side, called the bidirectional modification. Toffoli gate application. Without loss of generality consider gate T OF (C; x k+1 ), C = {x 1, x 2,..., x k } with the controls on the first k variables and target on variable k + 1. Then, in the input part of the truth table the pattern (1, 1,..., 1, x 0 k+1, x0 k+2,..., x0 n) will be interchanged with the pattern (1, 1,..., 1, x 0 k+1, x0 k+2,..., x0 n). This is the same as permuting the output patterns associated with input patterns (1, 1,..., 1, x 0 k+1, x0 k+2,..., x0 n) and (1, 1,..., 1, x 0 k+1, x0 k+2,..., x0 n) without reordering the input side of the table. Fredkin gate application. Apply a Fredkin gate

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL.???, NO.???,??? 2004 3 F RE(C; x k+1, x k+2 ), C = {x 1, x 2,..., x k }. This results in the following change of all patterns in the input part of the table: (1, 1,..., 1, x 0 k+1, x0 k+2, x0 k+3,..., x0 n) is interchanged with (1, 1,..., 1, x 0 k+2, x0 k+1, x0 k+3,..., x0 n). If we want to keep the conventional form of the input part of the truth table where patterns are arranged lexicographically, this operation is equivalent to interchanging the output patterns of the truth table associated with the input patterns (1, 1,..., 1, x 0 k+1, x0 k+2, x0 k+3,..., x0 n) and (1, 1,..., 1, x 0 k+2, x0 k+1, x0 k+3,..., x0 n). IV. TEMPLATE SIMPLIFICATION TOOL Let a size m template be a sequence of m gates (a circuit) that realizes the identity function. The template size m must be independent of the smaller size templates, e.g. for a given template size m no application of any set of templates of smaller size can decrease the number of gates. For a template G 0 G 1... G m 1 its application is one of the two operations: Forward application. A sequence of gates in the network which matches the sequence G i G (i+1) mod m... G (i+k 1) mod m in the template G 0 G 1... G m 1 is replaced with the sequence G (i 1) mod m G (i 2) mod m... G (i+k) mod m, where k M, k m 2. Backward application. A sequence of gates in the network which matches the sequence G i G (i 1) mod m... G (i k+1) mod m is replaced with the sequence G (i+1) mod m G (i+2) mod m... G (i k) mod m, where k M, k m 2. It can be shown that each of the described template applications does not change the output of the network. Each application of a template of size m for parameter k > m 2 leads to a reduction in the number of gates. Further, to reduce the number of different templates, a classification appears to be useful. Definition 3: A class is defined by a set of disjoint formulas, i.e. formulas G 1 (S 1, B 1 ) G 2 (S 2, B 2 )... G m (S m, B m ), where: according to the number of elements in B i, G i is written as T OF (for B i = 1) or F RE (for B i = 2); S i is written as a union of sets (C) and single variables (t): S i = C i1 + C i2 +... + C ik + t i1 + t i2 +... + t ij ; if B i = 1, it is written as a single variable, t j ; if B i = 2 it is written as the union t j + t k ; all the sets are disjoint: C i C j = C j t k = t k t l =. In order to classify the templates, we need to discuss the box notation in more detail. If the box is found in a network, there are certain rules for changing the network when the operation of EXOR or SWAP is assigned to the box. If the assignment was EXOR, then the box is substituted with the EXOR symbol. If the line with the box assigned EXOR contains other box symbols, they are all substituted with EXOR. If the assignment was SWAP, the line with the box becomes the two lines, where the SWAP symbol is put. Every occurrence of a control on the line with this box is substituted with two controls and every occurrence of the box symbol is substituted with SWAP. Further, if a box symbol in a circuit is not specified, it can be either EXOR or SWAP which are substituted into the circuit by the above rules. Now we proceed with the classification. Fig. 2. Fig. 3. Duplicate deletion rule. Passing rule class. m=1. There are no templates of size 1, since every gate changes at least two input patterns. m=2. There is one class of templates of size 2, the duplicate deletion rule (Fig. 2). This class is a generalization of the Toffoli gate duplicate deletion rule [15]. It is true for any two gates which perform a self-inverse transformation. In gate-specific notation this class can be written as two formulas, one for two Toffoli gates and one for two Fredkin gates: T OF (C 1, t 1 ) T OF (C 1, t 1 ) and F RE(C 1, B 1 ) F RE(C 1, B 1 ) (B 1 = t 1 + t 2 ) as shown in Fig. 2. m=3. There are no templates of size 3. m=4. There are several classes of size 4 templates. A very important class is the passing rule (analogy of the passing rule from [15]). It defines when the order of the two gates in a network can be changed. All the cases are shown in Fig. 3 with the line marking done for the disjoint notation. Next class is semi passing rule, Fig. 4. Its main feature is equity of the first and third gates, and the fourth gate being the second gate transformed by the target of the first gate. Finally, a class that we call Fredkin definition (Fig. 5), being a generalization of the popular circuit simulating Fredkin gate with the Toffoli gates [17]. m=5. There is only one class of templates of size 5 (Fig. 5). Although this is a large class, and one would expect to see less applications, since it is harder to match large than to match smaller classes, in practice this class is the most useful. Fig. 4. A group of semi passes.

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL.???, NO.???,??? 2004 4 Fig. 5. Fredkin definition class, class of size 5, and class of size 6. TABLE I NUMBER OF REVERSIBLE FUNCTIONS USING A SPECIFIED NUMBER OF GATES FOR n = 3. Size NCT Agrawal-Jha NCTSF We 0 1 1 1 1 1 12 12 18 18 2 102 102 184 184 3 625 625 1318 1290 4 2780 2642 6474 5680 5 8921 7503 17695 13209 6 17049 13620 14134 13914 7 6817 12488 496 5503 8 32 3297 0 512 9 0 30 0 9 WA: 5.866 6.100 5.134 5.437 m=6. We found one class of templates of size 6 (Fig. 5). V. RESULTS We wrote a program that synthesizes functions using the algorithm and then, applies the template tool as a primary circuit simplification procedure. We ran our program exhaustively for all reversible functions with 3 variables and compared the results of our algorithm to the results of optimal synthesis. Table I shows how many functions with 3 inputs can be realized with k = 0..9 gates in optimal synthesis with the model gates NOT, CNOT, and Toffoli (calculated in [18]), heuristic synthesis with NOT, CNOT, and Toffoli (calculated in [1]), optimal synthesis with the model gates NOT, CNOT, Toffoli, SWAP and Fredkin, and for the presented algorithm realization. Circuits in column We were synthesized in FIXME seconds. WA shows the weighted average of the circuit size of a three variable reversible function. It is hard to compare our synthesis results to those of [1], since the methods use different bases for synthesis. Further, it can be observed that our algorithm produces the circuits which on average are 105.9% of the optimal size. This allows us to say that our algorithm produces near optimal circuits for reversible functions of a small number of variables. Also note, that the heuristic synthesis of Fredkin-Toffoli networks results in a better weighted average than the optimal synthesis of Toffoli networks (NCT column). A. Benchmarks The algorithm does not impose any limits on the number of variables. However, since the truth table must be stored, functions with more than 20 variables may require too much space and time. In particular, using an Athlon XP 2400+ computer with 512 Mb of RAM it took approximately 25 minutes to synthesize the network for the largest specification, cycle3 17. Runtimes for smaller specifications are noticeably TABLE II RESULTS OF BENCHMARK FUNCTION SYNTHESIS. name in out size Toffoli Fredkin-Toffoli 3 17 3 3 3 6 6 t 4 49 4 4 4 16 13 ft 4mod5 4 1 5 8 8 t 5mod5 5 1 6 17 10 t add3 3 2 4 4 4 t ham3 3 3 3 5 4 ft ham7 7 7 7 23 23 t ham15 15 15 15 132 132 t hwb4 4 4 4 17 11 f hwb5 5 5 5 55 24 f hwb6 6 6 6 126 65 f hwb7 7 7 7 289 166 f rd53 5 3 7 12 12 t cycle2 10 12 12 12 19 19 t cycle3 17 20 20 20 48 48 t smaller, e.g. 8.9 second for the second largest function that has size 15. For initially irreversible functions, we created a reversible specification using methods discussed in [12], [14]. Our synthesis results are summarized in Table II. The name, in, out and size columns contain the name of a benchmark function, the original number of inputs, the original number of outputs and the size, the number of inputs and outputs, of a minimal reversible specification [12]. Function specifications as well as the actual circuits that we reported in this paper can be found online [13]. The Toffoli and Fredkin-Toffoli columns show first the number of gates used in our designs when only Toffoli gates are used, and second the number of gates when Fredkin gates are also allowed. Superscripts in the last column indicate which gates are present in the design: t stays for Toffoli gates only, f - for Fredkin gates only, and ft when the circuit contains both Fredkin and Toffoli gates. It is interesting to notice that Fredkin gates may not help the synthesis (ham15), but sometimes help to reduce the size of the network significantly (hwb5). Also, sometimes when Fredkin gates are allowed, the synthesized circuit may not contain Fredkin gates and be smaller than a circuit synthesized with the condition that Fredkin gates are not allowed (5mod5). Three of the functions for which we reported the circuits were used as benchmarks in [1]. It is possible to make a fair comparison of the results, since our circuits for these functions use Toffoli gates only. Both we and [1] synthesized function add3 with 4 gates (further, this 4-gate realization is believed to be optimal). Both we and [1] synthesized function rd53 with 12 gates. However, the circuit presented in [1] is incorrect. Finally, we synthesized cycle2 10 with 19 gates, while [1] presented a circuit with 26 gates. VI. CONCLUSION In this paper we presented a two-step algorithm for synthesis of the reversible circuits using the most investigated reversible gates, Toffoli and Fredkin. Our algorithm uses the minimal amount of garbage. It consists of two parts. First, given a truth table specification of a function, we synthesize a circuit using the unidirectional or bidirectional algorithm with the gate control size reduction. Once a circuit is created, the template tool is applied for its simplification. The templates are introduced and classified.

IEEE TRANSACTIONS ON VERY LARGE SCALE INTEGRATION (VLSI) SYSTEMS, VOL.???, NO.???,??? 2004 5 Finally, we wrote a program to test our synthesis approach. First, we exhaustively synthesized all size 3 reversible functions and compared the size of the synthesized circuits to the optimal. It turned out that on average our synthesis method produced the circuits that are only 105.9% off the optimal size. Lastly, we tested our software on some benchmark functions and achieved good results. REFERENCES [1] A. Agrawal and N. K. Jha. Synthesis of reversible logic. In DATE, February 2004. [2] A. Barenco, C. H. Bennett, R. Cleve, D. P. DiVinchenzo, N. Margolus, P. Shor, T. Sleator, J. A. Smolin, and H. Weinfurter. Elementary gates for quantum computation. Phys. Rev. A, 52:3457 3467, 1995. [3] C. H. Bennett. Logical reversibility of computation. IBM J. Research and Development, 17:525 532, November 1973. [4] G. W. Dueck and D. Maslov. Reversible function synthesis with minimum garbage outputs. In 6th Intl. Symp. on Representations and Methodology of Future Computing Technologies, pages 154 161, March 2003. [5] G. W. Dueck, D. Maslov, and D. M. Miller. Transformation-based synthesis of networks of Toffoli/Fredkin gates. In IEEE Canadian Conf. on Elect. and Comp. Eng., Montreal, Canada, May 2003. [6] X. Fei, D. Jiang-Feng, S. Ming-Jun, Z. Xian-Yi, H. Rong-Dian, and W. Ji-Hui. Realization of the Fredkin gate by three transition pulses in a nuclear magnetic resonance quantum information processor. Chinese Phys. Lett., 19(8):1048 1050, 2002. [7] R. Feynman. Quantum mechanical computers. Optics News, 11:11 20, 1985. [8] E. Fredkin and T. Toffoli. Conservative logic. International Journal of Theoretical Physics, 21:219 253, 1982. [9] K. Iwama, Y. Kambayashi, and S. Yamashita. Transformation rules for designing CNOT-based quantum circuits. In DAC, pages 419 424, June 10-14 2002. [10] R. Landauer. Irreversibility and heat generation in the computing process. IBM J. Research and Development, 5:183 191, 1961. [11] D. Maslov and G. Dueck. Improved quantum cost for n-bit Toffoli gates. IEE Electronics Letters, 39(25):1790 1791, December 2003. [12] D. Maslov and G. W. Dueck. Garbage in reversible design of multiple output functions. In 6th Intl. Symp. on Representations and Methodology of Future Computing Technologies, pages 162 170, March 2003. [13] D. Maslov, N. Scott, and G. W. Dueck. Reversible logic synthesis benchmarks page. http://www.cs.uvic.ca/ dmaslov/, August 2004. [14] D. M. Miller and G. W. Dueck. Spectral techniques for reversible logic synthesis. In 6th Intl. Symp. on Representations and Methodology of Future Computing Technologies, pages 56 62, March 2003. [15] D. M. Miller, D. Maslov, and G. W. Dueck. A transformation based algorithm for reversible logic synthesis. In DAC, pages 318 323, June 2003. [16] A. Mishchenko and M. Perkowski. Logic synthesis of reversible wave cascades. In IWLS, pages 197 202, June 2002. [17] M. Nielsen and I. Chuang. Quantum Computation and Quantum Information. Cambridge University Press, 2000. [18] V. V. Shende, A. K. Prasad, I. L. Markov, and J. P. Hayes. Synthesis of reversible logic circuits. IEEE Transactions on CAD, 22(6):723 729, June 2003. [19] T. Toffoli. Reversible computing. Tech memo MIT/LCS/TM-151, MIT Lab for Comp. Sci, 1980. [20] V. V. Zhirnov, R. K. Cavin, J. A. Hutchby, and G. I. Bourianoff. Limits to binary logic switch scaling - a gedanken model. Proceedings of the IEEE, 91(11):1934 1939, November 2003.