Title: Realization of Incompletely Specified Reversible Functions
1Realization of Incompletely Specified Reversible
Functions
- Manjith Kumar
- Ying Wang
- Natalie Metzger
- Bala Iyer
- Marek Perkowski
- Portland Quantum Logic Group
- Portland State University, Oregon
- RM 2007, Oslo, Norway
-
2Objectives
- To improve the capabilities of the original
Miller-Maslov-Dueck algorithm (MMD) - to synthesize incompletely specified multi-output
functions as reversible circuits - 2) to synthesize non-reversible Boolean functions
by converting them to reversible functions
3Dont Care Algorithm for Reversible Logic (DCARL)
- Step 1
- Assign values to the don't cares outputs, and
map the outputs according to the assigned
input values, creating thus a completely
specified reversible Boolean function
specification. - Step 2
- Apply the MMD algorithm to this specification to
synthesize the network. - Step 3
- Compare the cost in terms of the number of
Toffoli gates and keep track of the don't
cares values with the minimal cost. - Backtrack to find K solutions or until no more
backtracking is possible.
4DCARL collaborates with MMD to find the solution
5The Code-How It works.
- Pseudo code
- For each of the output with dont cares (e.g.
10xx10x) -
- for set of all dont cares (i.e. xxx)
-
- assign_values_for_dont_cares
-
- if (find_conflict)
-
- try the next assignment
-
-
- Backtrack_and_reassign_for_N_solutions()
6Capabilities of the system
- 1.It can accept any reversible function with
dont cares as input and produce a fully
specified reversible output. - 2. It can accept any non reversible function and
give a reversible output. - 3. Functions with fewer outputs than inputs can
also be accepted. - 4. Capable of running in sync with the standard
MMD code. - 5. Makes use of cost function in the standard MMD
code to compare solutions. - 6. The number of solutions needed can be
configured.
7Limitations of the system
- Huge complexity in worst case input scenarios
limits the number of solutions possible. - Very fast for small number of variables (n). But
slows down considerably for ngt10. - Complete backtracking is not feasible for large
number of dont cares. So the code is optimized
to give a limited number of solutions.
8Truth Table of the initial specification of the
incompletely specified 33 function
Example
9Function creation intermediate steps S1 S5
000 cannot be selected
10Function creation intermediate steps S6 S10
101 cannot be selected
100 cannot be selected
101 cannot be selected
11Function creation intermediate steps S11 S15
Backtrack and try counting from last used value
Backtrack and try counting from zero again
000 cannot be selected
001 cannot be selected
12Function creation intermediate steps S16 S20
101 cannot be selected
13Function creation intermediate steps S21 S24
100 cannot be selected
101 cannot be selected
000 cannot be selected
14Function creation intermediate steps S25 S29
001 cannot be selected
010 cannot be selected
Backtrack, start from next value
Backtrack, start from next value
15Function creation intermediate steps S30 S34
101 cannot be selected
100 cannot be selected
16Function creation intermediate steps S35 S38
101 cannot be selected
001 can be assigned and table is successfully
completed
000 cannot be selected
17Original incomplete reversible function versus
final complete reversible function after DCARL
18Example of non-reversible initial function Full
Adder
Inputs x,y,z Outputs c,s
000 00
001 01
010 01
011 10
100 01
101 10
110 10
111 11
19The first 10 solutions to full adder
Inputs (xyz) in decimal Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs Reversible outputs
Inputs (xyz) in decimal O1 O2 o3 o3 o4 o5 o6 07 08 09 o10
0 1 2 3 4 5 6 7 X X X X X X X X 0 1 5 2 9 6 10 3 4 7 8 11 12 13 14 15 4 1 5 2 9 6 10 3 0 7 8 11 12 13 14 15 8 1 5 2 9 6 10 3 0 4 7 11 12 13 14 15 12 1 5 2 9 6 10 3 0 4 7 8 11 13 14 15 0 5 1 2 9 6 10 3 4 7 8 11 12 13 14 15 0 9 1 2 5 6 10 3 4 7 8 11 12 13 14 15 0 13 1 2 5 6 10 3 4 7 8 9 11 12 14 15 0 1 9 2 5 6 10 3 4 7 8 11 12 13 14 15 0 1 13 2 5 6 10 3 4 7 8 9 11 12 14 15 0 1 5 6 9 2 10 3 4 7 8 11 12 13 14 15 0 1 5 10 9 2 6 3 4 7 8 11 12 13 14 15
20Sample Solution
- A circuit with size17 and Cost17
21This is not the minimum solution!!
But a good starting point for minimization.
22DCARL Testing
- 6-bit and 9-bit randomly generated functions were
used. - 20, 40, 60 , 80 dont cares were
included. - Increased number of dont cares increases the
ability of the method to find assignments with
low MMD cost
23Results
24Results (continued..)
25DCARL Results
- DCARL is not designed to find the best solution.
- Does DCARL allow MMD to handle incompletely
specified functions? - YES
26Number of output patterns as a function of
percentage of dont cares for the 8-bit Gray
code benchmark from Maslov WWW Page.
27Future Work
- Additional benchmark testing
- Complete integration of dont care assignment
with synthesis of the circuit. - Intelligent backtracking, based on cost analysis.
- Integrate dont care assignment with search