Incompletely Incompletely Specified Specified Reversible Reversible Functions Functions Manjith Kumar Ying Wang Natalie Metzger Bala Iyer Marek Perkowski Portland Quantum Logic Group Portland State University, Oregon RM 2007, Oslo, Norway
Realization of Realization of Incompletely Specified Incompletely Specified Reversible FunctionsReversible Functions
Manjith KumarYing Wang
Natalie Metzger Bala Iyer
Marek Perkowski
Portland Quantum Logic Group
Portland State University, Oregon
RM 2007, Oslo, Norway
ObjectivesTo improve the capabilities of the original
Miller-Maslov-Dueck algorithm (MMD):
1) to synthesize incompletely specified multi-output functions as reversible circuits
2) to synthesize non-reversible Boolean functions by converting them to reversible functions
Don’t 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.
The Code-How It works.
Pseudo code:
For each of the output with don’t cares (e.g. 10xx10x) { for set of all don’t care’s (i.e. “xxx”) { assign_values_for_don’t_cares; } if (find_conflict)
{ try the next assignment; } }Backtrack_and_reassign_for_N_solutions() ;
Capabilities of the system
1.It can accept any reversible function with don’t 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.
Limitations 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 n>10.
• Complete backtracking is not feasible for large number of don’t cares. So the code is optimized to give a limited number of solutions.
Truth Table of the initial specification of Truth Table of the initial specification of the the incompletely specifiedincompletely specified 3*3 function 3*3 function
ExampleExample
Function creation – intermediate steps S6 – S10
101 cannot be selected
100 cannot be selected
101 cannot be selected
Function creation – intermediate steps S11 – S15
000 cannot be selected
001 cannot be selected
Backtrack and try counting from zero again
Backtrack and try counting from last used value
Function creation – intermediate steps S21 – S24
100 cannot be selected
101 cannot be selected
000 cannot be selected
Function creation – intermediate steps S25 – S29
001 cannot be selected
Backtrack, start from next value
010 cannot be selected Backtrack,
start from next value
Function creation – intermediate steps S35 – S38
101 cannot be selected 000 cannot be
selected
001 can be assigned and table is successfully completed
Original incomplete reversible function versus Original incomplete reversible function versus final complete reversible function after final complete reversible function after
DCARLDCARL
Example 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
The first 10 solutions to full adder:
Inputs
(xyz) in decimal
Reversible outputs
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
DCARL Testing
• 6-bit and 9-bit randomly generated functions were used.
• 20%, 40%, 60% , 80% “don’t cares” were included.
• Increased number of “don’t cares” increases the ability of the method to find assignments with low MMD cost
ResultsDCARL with 6 variable inputs
100
150
200
250
300
350
400
20 40 60 80
Percentage of "don't cares"
MM
D C
ost 6bit_1
6bit_2
9bit_3
9bit_4
Results (continued..)
DCARL with 9 variable inputs
4950
5000
5050
5100
5150
5200
5250
5300
5350
20 40 60 80
Percentage of "don't cares"
MM
D C
ost 9bit_1
9bit_2
9bit_3
9bit_4
DCARL Results
• DCARL is not designed to find the best solution.
• Does DCARL allow MMD to handle incompletely specified functions? – YESYES
Number of output patterns as a function of percentage of “don’t cares” for the 8-bit Gray code benchmark from Maslov WWW Page.