Minimization Techniques for Reversible Logic Synthesis
Outline • Why reversible logic? • The building blocks • The synthesis problem • Some solutions • Optimization • Finding identities • Remaining problems Reversible Logic Synthesis
Reversible Logic • from the output you can determine the input (bijection) • Why would we want this? • Landauer's principle: every bit of information lost consumes energy • k is the Boltzman constant • T is the temperature • energy loss is small circuit network outputs inputs Reversible Logic Synthesis
Applications • Quantum Computing • necessarily reversible • Low power CMOS • In adiabatic circuits, current is restricted to flow across devices with low voltage drop and the energy stored on their capacitors is recycled • Optical Computing • Nano-technologies • Billiard Ball Model (BBM) Reversible Logic Synthesis
Standard Gates • which ones are reversible? and Embedding a non-reversible function into a reversible one not How many ways? xor or Reversible Logic Synthesis
Reversible Gates • Feynman gate (controlled not) x x y x y • Toffoli gate x x y y z xy z • Generalized Toffoli gate more control lines Reversible Logic Synthesis
Reversible Gates • Fredkin gate (controlled swap) x x y yx’ + zx z zx’ + yx • Generalized Fredkin gate more control lines Reversible Logic Synthesis
Restrictions • No fan-out • No back-feeds Reversible Logic Synthesis
Restrictions • No fan-out • No back-feeds Cascade of Gates g1 g2 gi gi+1 gn-1 gn … … output inputs Reversible Logic Synthesis
Function Representation • How do we represent a reversible function? • truth table • BDDs • Is there an easy check to see that the function is reversible? Reversible Logic Synthesis
Synthesis • Given a reversible function find a network of gates that realize the function • Cost should be near minimal • Possible cost assumptions: • Each gate has the same cost • The cost of each gate reflects its actual implementation cost Reversible Logic Synthesis
Approach 1 Reversible transformation outputs inputs Reversible Logic Synthesis
Approach 1 Reversible Transformation T1 outputs inputs G A T E Reversible Transformation T2 inputs outputs Reversible Logic Synthesis
Conditions • T2 should be “simpler” than T1 • How do you measure simplicity? • Hamming distance • Spectral techniques • Questions: • Will it converge? • How good is the result? • Improvements • Look ahead • Backtracking Reversible Logic Synthesis
Approach 2 Reversible Logic Synthesis
Approach 2 These are correct Reversible Logic Synthesis
Approach 2 These are correct Step 1: move up 100 to 110 Reversible Logic Synthesis
Approach 2 These are correct Step 1: move up 100 to 110 a a b b c c Reversible Logic Synthesis
Approach 2 These are correct Step 1: move up 100 to 110 a a b b c c Reversible Logic Synthesis
Approach 2 These are correct Step 1: move up 100 to 110 a a b b c c Reversible Logic Synthesis
Approach 2 These are correct Step 2: move down 110 to 010 Reversible Logic Synthesis
Approach 2 These are correct Step 2: move down 110 to 010 a a b b c c Reversible Logic Synthesis
Approach 2 These are correct Step 2: move down 110 to 010 a a b b c c Reversible Logic Synthesis
Approach 2 Step 2: move down 110 to 010 a a b b c c Reversible Logic Synthesis
Approach 2 Reversible Logic Synthesis
Approach 2 c c b b a a Reversible Logic Synthesis
Advantages/Disadvantages • Always converges • Fast • No look ahead • Several optimizations are possible • May not be optimal • Worst case? Reversible Logic Synthesis
Approach 3 • Local transformation • Replace a sequence of gates with another • For example replace 3 gates with 2 Reversible Logic Synthesis
Reversible Logic Synthesis
Approach 3 • Use Identity circuits for local transformations g1 g2 gi gi+1 gn-1 gn … … identity inputs Reversible Logic Synthesis
Approach 3 g1 g2 gi gi+1 gn-1 gn … … identity inputs F(X) F-1(X) Reversible Logic Synthesis
Approach 3 g1 g2 gi gi+1 gn-1 gn … … identity inputs F(X) F-1(X) Replace this sequence of gates Reversible Logic Synthesis
Approach 3 g1 g2 gi gi+1 gn-1 gn … … identity inputs F(X) F-1(X) with this sequence of gates Replace this sequence of gates Reversible Logic Synthesis
Template Description • As a class - an identity that is not reducible by another template • A template may be rotated • A template may be applied in reverse order • Size 2 ==> Duplicate gates (may be deleted) • Size 3 ==> There are none • Size 4 ==> Passing rule Reversible Logic Synthesis
Template Class — Size 5 A line may be duplicated A line may be removed Reversible Logic Synthesis
How many classes of identities are there? Reversible Logic Synthesis
The Templates: Application Reversible Logic Synthesis
The quest for identities • Exhaustive searches are not feasible • A feasible approach (to find size n identities): • Find all functions of size n/2 • With limited number of lines • With some canonical order • Pair each function with its inverse • If no reduction is possible ==> we found a new template Reversible Logic Synthesis
A new approach • Start with an identity that has target lines only • For any subset of gates that preserve the identity a new control line may be added • Example: Reversible Logic Synthesis
Recent Advances • Automatic template encoding • Application of iterative minimization heuristics • Progress in calculating “real quantum cost” • Using gates NOT, CNOT, V, and V+ • Quantum templates • Using SAT to find exact results Reversible Logic Synthesis
Future Work • Handling don’t cares (can be done with SAT) • Billiard ball implementation of reversible circuits (via cellular arrays) • Better representation for reversible functions • Truth table is not adequate • Some form of BDD (possibly Davio) • Minimization with aid of group theory Reversible Logic Synthesis