27
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 Incompletely Specified Reversible Functions Manjith Kumar Ying Wang Natalie Metzger Bala Iyer Marek Perkowski Portland Quantum Logic Group

Embed Size (px)

Citation preview

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.

DCARL collaborates with MMD to DCARL collaborates with MMD to find the solutionfind the solution

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 S1 – S5

000 cannot be selected

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 S16 – S20

101 cannot be selected

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 S30 – S34

101 cannot be selected

100 cannot be selected

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

Sample Solution:A circuit with size=17 and Cost=17

This is not the minimum solution!!

But a good starting point for minimization.

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.

Future Work• Additional benchmark testing

• Complete integration of “don’t care” assignment with synthesis of the circuit.

• Intelligent backtracking, based on cost analysis.

• Integrate don’t care assignment with search