History Of Reversible Logic

858 Words2 Pages

2.6 Background on Reversible Logic This section discusses the reversibility property and its applications in designing reversible circuit elements. The first part briefly reviews reversible logic. The second part introduces some common reversible gates that are used in this dissertation. Finally, reversible and quantum circuits and their characteristics are discussed. 2.6.2 Logic Function In classical computing, logic operations are defined as functions over Boolean variables B ϵ {0, 1}. Definition 2.1. A multi-output Boolean function is a mapping f : Bn → Bm, where B = {0, 1} is a Boolean domain and n, m ϵ N. In fact, it is a system of m Boolean functions fi ( x1, x2,....... xn ), where 1 ≤ i ≤ m. Such function can be expressed in …show more content…

2.6.2 Reversible Function Boolean reversible functions are a subset of Boolean logic functions with certain conditions. Definition 2.2. Let A be any set and defined f : A → A as a one-to-one and surjective function. The function f is called a permutation function if applying f to A leads to a set with the same elements as A and possibly in a different order. For example, if A = {1, 2, 3,....m } for any ai ϵ A there exists a unique aj ϵ A such that f(ai) = aj . Definition 2.3. An n-input, n-output fully specified Boolean function f : Bn → Bn is called reversible if it is a permutation function. A function is reversible if it is bijective (i.e., one-to-one and onto) . In other words, a reversible function has the same number of inputs as outputs and there is a one-to-one mapping between its input and output vectors. A reversible gate realizes a reversible function. An irreversible function can be embedded into a reversible function by adding extra inputs/outputs and assigning values to the generated don't-cares to create a permutation …show more content…

In the Full Adder function of Table 2.1, the maximum number of times that an output pattern is repeated is 3 (for output patterns 10 and 01). Hence, at least Γlog2(3)˥, = 2 garbage outputs and one constant input are required to make the Full Adder function reversible. Table 2.2 shows a reversible form of the Full Adder function where go1 and go2 are the garbage outputs and gi is the constant input. Note that assigning 0 to gi leads to obtaining outputs cout and sum, but the don't-cares are assigned in the way that assigning 1 to gi inverts the cout output. Table 2.2: A reversible Full Adder There is more than one reversible function associated with each irreversible function depending on the number of constant inputs and garbage outputs used and don't care assignments. The circuits that result from synthesizing these embedded reversible functions are different in terms of the number of gates and the number of qubits and hence have different implementation costs. Consequently, the process of embedding an irreversible function into a reversible function is of significant importance and has remained an open problem while being studied in many articles [45,

Open Document