SyReC: A Programming Language for Synthesis of Reversible Circuits

  • Robert Wille
  • Sebastian Offermann
  • Rolf Drechsler
Conference paper
Part of the Lecture Notes in Electrical Engineering book series (LNEE, volume 106)


Reversible logic serves as a basis for emerging technologies like quantum computing and additionally has applications in low-power design. In particular, since conventional technologies like CMOS are going to reach their limits in the near future, reversible logic has been established as a promising alternative. Thus, in the last years this area started to become intensely studied by researchers. In particular, how to efficiently synthesize complex reversible circuits is an important question. So far, only synthesis approaches are available that rely on Boolean function representations, like e.g., truth tables or decision diagrams.

In this chapter, we propose the programming language SyReC that allows to specify and afterwards to automatically synthesize reversible circuits. Using an existing programming language for reversible software design as basis, we introduce new concepts, operations, and restrictions allowing the specification of reversible hardware. Furthermore, a hierarchical approach is presented that automatically transforms the respective statements and operations of the new programming language into a reversible circuit. Experiments show that with the proposed method, complex circuits can be easily specified and synthesized while with previous approaches this often is not possible due to the limits caused by truth tables or decision diagrams.



This work was supported by the German Research Foundation (DFG) (DR 287/20-1).


  1. 1.
    S. Abramsky. A structural approach to reversible computation. Theor. Comput. Sci., 347(3):441–464, 2005.CrossRefMATHMathSciNetGoogle Scholar
  2. 2.
    A. Barenco, C. H. Bennett, R. Cleve, D.P. DiVinchenzo, N. Margolus, P. Shor, T. Sleator, J.A. Smolin, and H. Weinfurter. Elementary gates for quantum computation. The American Physical Society, 52:3457–3467, 1995.Google Scholar
  3. 3.
    C. H. Bennett. Logical reversibility of computation. IBM J. Res. Dev, 17(6):525–532, 1973.CrossRefMATHGoogle Scholar
  4. 4.
    B. Desoete and A. De Vos. A reversible carry-look-ahead adder using control gates. INTEGRATION, the VLSI Jour., 33(1-2):89–104, 2002.Google Scholar
  5. 5.
    D. Y. Feinstein, M. A. Thornton, and D. M. Miller. Partially redundant logic detection using symbolic equivalence checking in reversible and irreversible logic circuits. In Design, Automation and Test in Europe, pages 1378–1381, 2008.Google Scholar
  6. 6.
    E. F. Fredkin and T. Toffoli. Conservative logic. International Journal of Theoretical Physics, 21(3/4):219–253, 1982.CrossRefMATHMathSciNetGoogle Scholar
  7. 7.
    T. Grötker, S. Liao, G. Martin, and S. Swan. System Design with SystemC. Kluwer Academic Publishers, 2002.Google Scholar
  8. 8.
    P. Gupta, A. Agrawal, and N. K. Jha. An algorithm for synthesis of reversible logic circuits. IEEE Trans. on CAD, 25(11):2317–2330, 2006.Google Scholar
  9. 9.
    R. Landauer. Irreversibility and heat generation in the computing process. IBM J. Res. Dev., 5:183, 1961.CrossRefMATHMathSciNetGoogle Scholar
  10. 10.
    R. Lipsett, C.F. Schaefer, and C. Ussery. VHDL: Hardware Description and Design. Kluwer Academic Publishers, Intermetrics, Inc., 1989.Google Scholar
  11. 11.
    D. Maslov, G. W. Dueck, and D. M. Miller. Toffoli network synthesis with templates. IEEE Trans. on CAD, 24(6):807–817, 2005.Google Scholar
  12. 12.
    D. Maslov, C. Young, G. W. Dueck, and D. M. Miller. Quantum circuit simplification using templates. In Design, Automation and Test in Europe, pages 1208–1213, 2005.Google Scholar
  13. 13.
    D. M. Miller, R. Wille, and R. Drechsler. Reducing reversible circuit cost by adding lines. In Int’l Symp. on Multi-Valued Logic, pages 217–222, 2010.Google Scholar
  14. 14.
    M. Nielsen and I. Chuang. Quantum Computation and Quantum Information. Cambridge Univ. Press, 2000.MATHGoogle Scholar
  15. 15.
    S. Offermann, R. Wille, G. W. Dueck, and R. Drechsler. Synthesizing Multiplier in Reversible Logic. In IEEE Symp. on Design and Diagnostics of Electronic Circuits and Systems, 2010.Google Scholar
  16. 16.
    K. N. Patel, J. P. Hayes, and I. L. Markov. Fault testing for reversible circuits. IEEE Trans. on CAD, 23(8):1220–1230, 2004.Google Scholar
  17. 17.
    M. Perkowski, J. Biamonte, and M. Lukac. Test generation and fault localization for quantum circuits. In Int’l Symp. on Multi-Valued Logic, pages 62–68, 2005.Google Scholar
  18. 18.
    A. Di Pierro, C. Hankin, and H. Wiklicky. Reversible combinatory logic. Mathematical. Structures in Comp. Sci., 16(4):621–637, 2006.CrossRefMATHGoogle Scholar
  19. 19.
    I. Polian, T. Fiehn, B. Becker, and J. P. Hayes. A family of logical fault models for reversible circuits. In Asian Test Symp., pages 422–427, 2005.Google Scholar
  20. 20.
    V. V. Shende, A. K. Prasad, I. L. Markov, and J. P. Hayes. Synthesis of reversible logic circuits. IEEE Trans. on CAD, 22(6):710–722, 2003.Google Scholar
  21. 21.
    P. W. Shor. Algorithms for quantum computation: discrete logarithms and factoring. Foundations of Computer Science, pages 124–134, 1994.Google Scholar
  22. 22.
    S. Sutherland, S. Davidmann, and P. Flake. System Verilog for Design and Modeling. Kluwer Academic Publishers, 2004.Google Scholar
  23. 23.
    Y. Takahashi and N. Kunihiro. A linear-size quantum circuit for addition with no ancillary qubits. Quantum Information and Computation, 5:440–448, 2005.MATHMathSciNetGoogle Scholar
  24. 24.
    M. K. Thomson and R. Glück. Optimized reversible binary-coded decimal adders. J. of Systems Architecture, 54:697–706, 2008.CrossRefGoogle Scholar
  25. 25.
    T. Toffoli. Reversible computing. In W. de Bakker and J. van Leeuwen, editors, Automata, Languages and Programming, page 632. Springer, 1980. Technical Memo MIT/LCS/TM-151, MIT Lab. for Comput. Sci.Google Scholar
  26. 26.
    L. M. K. Vandersypen, M. Steffen, G. Breyta, C. S. Yannoni, M. H. Sherwood, and I. L. Chuang. Experimental realization of shor’s quantum factoring algorithm using nuclear magnetic resonance. Nature, 414:883, 2001.CrossRefGoogle Scholar
  27. 27.
    G. F. Viamontes, I. L. Markov, and J. P. Hayes. Checking equivalence of quantum circuits and states. In Int’l Conf. on CAD, pages 69–74, 2007.Google Scholar
  28. 28.
    S.-A. Wang, C.-Y. Lu, I-M. Tsai, and S.-Y. Kuo. An XQDD-based verification method for quantum circuits. IEICE Transactions, 91-A(2):584–594, 2008.Google Scholar
  29. 29.
    R. Wille and R. Drechsler. BDD-based synthesis of reversible logic for large functions. In Design Automation Conf., pages 270–275, 2009.Google Scholar
  30. 30.
    R. Wille, D. Große, S. Frehse, G. W. Dueck, and R. Drechsler. Debugging of Toffoli networks. In Design, Automation and Test in Europe, pages 1284–1289, 2009.Google Scholar
  31. 31.
    R. Wille, D. Große, D. M. Miller, and R. Drechsler. Equivalence checking of reversible circuits. In Int’l Symp. on Multi-Valued Logic, pages 324–330, 2009.Google Scholar
  32. 32.
    R. Wille, D. Große, L. Teuber, G. W. Dueck, and R. Drechsler. RevLib: an online resource for reversible functions and reversible circuits. In Int’l Symp. on Multi-Valued Logic, pages 220–225, 2008. RevLib is available at
  33. 33.
    R. Wille, O. Keszöcze, and R. Drechsler. Determining the Minimal Number of Lines for Large Reversible Circuits. In Design, Automation and Test in Europe, pages 1204–1207, 2011.Google Scholar
  34. 34.
    R. Wille, H. M. Le, G. W. Dueck, and D. Große. Quantified synthesis of reversible logic. In Design, Automation and Test in Europe, pages 1015–1020, 2008.Google Scholar
  35. 35.
    R. Wille, M. Soeken, and R. Drechsler. Reducing the Number of Lines in Reversible Circuits. In Design Automation Conf., pages 647–652, 2010.Google Scholar
  36. 36.
    R. Wille, H. Zhang, and R. Drechsler. ATPG for reversible circuits using simulation, Boolean satisfiability, and pseudo Boolean optimization. In IEEE Annual Symposium on VLSI, pages 120–125, 2011.Google Scholar
  37. 37.
    T. Yokoyama and R. Glück. A reversible programming language and its invertible self-interpreter. In Symp. on Partial evaluation and semantics-based program manipulation, pages 144–153, 2007.Google Scholar
  38. 38.
    V. V. Zhirnov, R. K. Cavin, J. A. Hutchby, and G. I. Bourianoff. Limits to binary logic switch scaling – a gedanken model. Proc. of the IEEE, 91(11):1934–1939, 2003.CrossRefGoogle Scholar
  39. 39.
    J. Zhong and J.C. Muzio. Using crosspoint faults in simplifying Toffoli networks. In IEEE North-East Workshop on Circuits and Systems, pages 129–132, 2006.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Robert Wille
    • 1
  • Sebastian Offermann
    • 1
  • Rolf Drechsler
    • 1
  1. 1.Institute of Computer ScienceUniversity of BremenBremenGermany

Personalised recommendations