SyReC: A Programming Language for Synthesis of Reversible Circuits
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).
- 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
- 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.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
- 7.T. Grötker, S. Liao, G. Martin, and S. Swan. System Design with SystemC. Kluwer Academic Publishers, 2002.Google Scholar
- 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
- 10.R. Lipsett, C.F. Schaefer, and C. Ussery. VHDL: Hardware Description and Design. Kluwer Academic Publishers, Intermetrics, Inc., 1989.Google Scholar
- 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.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.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
- 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.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.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
- 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.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.P. W. Shor. Algorithms for quantum computation: discrete logarithms and factoring. Foundations of Computer Science, pages 124–134, 1994.Google Scholar
- 22.S. Sutherland, S. Davidmann, and P. Flake. System Verilog for Design and Modeling. Kluwer Academic Publishers, 2004.Google Scholar
- 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
- 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.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.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.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.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.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 http://www.revlib.org.
- 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.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.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.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.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
- 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