Elsevier

Integration

Volume 53, March 2016, Pages 39-53
Integration

SyReC: A hardware description language for the specification and synthesis of reversible circuits

https://doi.org/10.1016/j.vlsi.2015.10.001Get rights and content

Highlights

  • Definition of a hardware description language for reversible circuits.
  • Introduction of a synthesis methodology which realizes a corresponding description as a reversible circuit.
  • Introduction of refinements of the synthesis methodology with respect to different cost metrics.
  • Evaluation and case studies of the hardware description language as well as the synthesis results.

Abstract

Although researchers and engineers originally focused on a preponderantly irreversible computing paradigm, alternative models receive more and more attention. Reversible computation is a promising example which has applications in many emerging technologies such as quantum computation or alternative directions for low-power design. Accordingly, the design of reversible circuits has become an intensely studied research area. In particular, the efficient synthesis of complex reversible circuits poses an important and difficult research question. Most of the solutions proposed thus far are based on pure Boolean function representations such as truth tables or decision diagrams.
In this paper, we provide a comprehensive introduction to and present extensions for the hardware description language SyReC which allows for the specification and automatic synthesis of reversible circuits. Besides a detailed presentation of the language׳s concepts and operations, we additionally propose algorithms that optimize the resulting circuits with respect to different objectives. A case study on a RISC CPU as well as a thorough experimental evaluation of both, the synthesis approach and its optimizations, show the applicability and demonstrate the advantage of SyReC compared to other solutions based on Boolean function representations.

Introduction

Researchers and engineers have focused the investigation of computing machines on a preponderantly irreversible computing paradigm. In fact, most of the established computations are not invertible as a standard logical operation such as an AND illustrates. Although it is possible to obtain the inputs of an AND gate if the output is set to 1 (then, both inputs must be set to 1 as well), it is not possible to uniquely determine the input values if the gate outputs 0. While mainly relying on this conventional way of computation, also its alternative reversible paradigm receives increasing attention.
Reversible computation is a computing paradigm which only allows bijective operations, i.e. reversible n-input n-output functions in which no two input vectors are mapped to the same output pattern. Hence, all computations can be reverted as the inputs can be obtained from the outputs and vice versa.
Although not so well established thus far, reversible computation enables several promising applications and superiors conventional computation paradigms in many domains. Recent accomplishments and experimental validations in these domains made this alternative paradigm also interesting for computer aided design. In particular applications to low-power design and quantum computation accelerated this development.
Low power computation may significantly profit from reversible circuits because, as observed by Landauer [1], power is always dissipated when information is lost during computation. This indeed happens independently from the applied technology. Hence, all computing machines following the conventional paradigm always lose power if irreversible operations (as the above-mentioned AND) are performed. Although the fraction of dissipated power is negligible today, it will become substantial with the expected ongoing miniaturization. Moreover, Gershenfeld has shown that the actual power dissipation corresponds to the amount of energy used to represent the signal [2]. With ongoing miniaturization of circuits, this amount will soon become substantial. Since reversible computations are information loss-less (inputs can always be restored from the outputs and vice versa), this power loss can significantly be reduced or even entirely avoided with the alternative paradigm (e.g. [3], [4]). Recently, this has experimentally been verified in [5].
Quantum computation [6] allows for breaching complexity bounds which are valid for computing devices based on conventional computing by using quantum mechanical phenomena such as superposition and entanglement. Considering that many of the established quantum algorithms include a significant Boolean component (e.g. the oracle transformation in the Deutsch–Jozsa algorithm [7], the database in Grover׳s search algorithm [8], and the modulo exponentiation in Shor׳s algorithm [9]), it is crucial to have efficient methods to synthesize quantum gate realizations of Boolean functions. Since any quantum operation inherently is reversible, reversible circuits can be exploited for this purpose.
Moreover, further promising applications have recently been investigated in the design of low-power encoding and decoding devices for on-chip interconnects in systems-on-a-chip [10], for adiabatic circuits [11], and for circuits employing energy recovery logic [12].
Motivated by these promising developments, design and synthesis of reversible circuits have received significant attention in the last decade. This led to several synthesis techniques following complementary schemes and exploiting different kinds of function representations. Examples include approaches
  • relying on a permutation-based [13] or cycle-based [14] representation,
  • following a transformation-based scheme [15],
  • using functions descriptions such as positive-polarity Reed–Muller expansion [16], Reed–Muller spectra [17], or Exclusive Sum of Products [18], and
  • exploiting efficient data-structures such as Binary Decision Diagrams [19] or Quantum Multiple-valued Decision Diagrams [20].
However, all these approaches only allow one to automatically synthesize reversible circuits up to a certain size that is bounded by the underlying function representation. In order to provide an efficient design flow for this kind of computation and its applications, synthesis of reversible logic has to reach a level which allows for the description of circuits at higher levels of abstraction. For this purpose, hardware description languages can be exploited. In conventional synthesis, approaches using languages such as VHDL [21], SystemC [22], or SystemVerilog [23] are used to specify and subsequently synthesize circuits. Even in some of the application domains of reversible logic, namely quantum computation, first programming languages have been proposed (see e.g. Quipper [24] or Scaffold [25] as well as related overviews such as e.g. [26]).
In this work, we provide a comprehensive introduction to and extensions for the hardware description language SyReC.1 SyReC allows for the specification and automatic synthesis of complex reversible circuits. For this purpose, established concepts from the previously introduced reversible software language Janus [28], [29] are adapted. To the best of our knowledge only two other hardware description languages for reversible logic have been proposed after SyReC has been introduced. In [30] a functional reversible language has been proposed that ensures reversibility using a type system based on linear types. As a consequence, only pure reversible functionality can be addressed, i.e. irreversible operations are not supported. A combinator-style functional language has been presented in [31] which offers the design of reversible circuits at the gate level and therefore focuses on lower levels than SyReC.
In the remainder of this paper, the concepts of the SyReC language as well as the corresponding synthesis methodology are described in detail. After a brief review on the basics of reversible logic and circuits, Section 3 introduces the general concept as well as the precise syntax and the (informal) semantics of the proposed language. It is shown how reversibility in the description is ensured while at the same time a wide range of (also non-reversible) functionality can be provided. The realization of a reversible control flow is also discussed. All concepts are illustrated by means of examples. Section 4 describes how the resulting programs are realized as a reversible circuit. A hierarchical synthesis approach is presented that automatically transforms the respective statements and operations of the new language into a reversible circuit. The respective realizations of the individual statements and expressions as building blocks are presented and discussed. While this allows for the synthesis of complex reversible circuits, the quality of the results can still be improved. Sections 5 and 6 introduce optimization techniques which allow for a reduction of the number of lines or gate costs depending on the individual design needs. Finally, the applicability of the language as well as its synthesizer is demonstrated in Section 7. Here, a fully functional RISC CPU is designed and realized using SyReC. This confirms that even complex logic can easily be realized with this language. Furthermore, the effects of the different optimizations are evaluated and the synthesizer is compared to another solution which is based on a Boolean function representation.
Overall, a comprehensive overview on this new hardware description language for reversible circuit design is provided. This eventually lifts the design of circuits following the reversible computation paradigm from the Boolean level to a higher abstraction.

Section snippets

Preliminaries

To keep the paper self-contained, this section introduces necessary definitions on reversible logic and circuits.

The SyReC language

In the following, the SyReC language is introduced. SyReC allows for the specification and the synthesis of complex logic through common HDL description means. Since every (valid) SyReC program is inherently reversible, the reversibility of the specification is ensured at the same time. The general concepts to achieve this are summarized in the first part of this section. Afterwards, the syntax and semantics of all SyReC description means are explained in detail.

Synthesis of SyReC specifications

In order to synthesize a given SyReC specification, we developed a hierarchical synthesis method that uses existing realizations, so-called building blocks, of the individual statements and expressions and combines them so that the desired circuit results. More precisely, our approach (1) traverses the whole program and (2) adds cascades of reversible gates to the circuit realizing each statement or expression.
Modules are synthesized independently of each other and afterwards cascaded according

Line-aware synthesis of SyReC specifications

In order to realize SyReC specifications with a smaller number of additional circuit lines, an extended synthesis scheme is presented in this section (based on [42]). The idea is to use the same building blocks as introduced in the previous section, but to undo intermediate results of the expressions as soon as they are not needed anymore. A similar idea (for reversible software programs) has previously been proposed in [43]. This enables that circuit lines which have been occupied by

Cost-aware synthesis of SyReC specifications

Finally, all synthesis approaches proposed in the previous sections can further be refined in order to reduce the costs of the resulting circuits. An observation made in [44] is exploited for this purpose. Here, it has been observed that many reversible circuits are composed of cascades of gates with several common control lines. As reviewed in Section 2, the costs of single gates mainly depend on their respective number of control lines. Hence, buffering the results of common control

Case study and experimental evaluation

SyReC as proposed above enables the design and synthesis of complex logic as a reversible circuit. This has been demonstrated by means of a case study, i.e. the design of a RISC CPU. In this section, the design issues as well as the application of the result are summarized and discussed.
Furthermore, we conducted a thorough study on the effects of the respective optimization approaches presented in Sections 5 and 6. For this purpose, we used the components of the designed CPU as well as further

Conclusions

In this paper, we investigated, extended, and evaluated the reversible hardware description language SyReC. Besides new syntactical features, two optimization approaches have been proposed that can be applied to reduce synthesis results based on the designer׳s individual needs. An adjusted synthesis scheme “uncomputes” intermediate results and therefore allows one to keep the number of additional lines small. A second optimization scheme adds a new line which is then used in order to buffer

Acknowledgments

This work has partially been supported by the Graduate School SyDe, funded by the German Excellence Initiative within the University of Bremen׳s institutional strategy, and by the European Union through the COST Action IC1405.
Robert Wille received the Diploma and Dr.-Ing. degrees in computer science from the University of Bremen, Bremen, Germany, in 2006 and 2009, respectively. From 2006 to 2015, he has been with the Group of Computer Architecture, University of Bremen, and, since 2013, the German Research Center for Artificial Intelligence, Bremen. He was a Lecturer with the University of Applied Science, Bremen, and a Visiting Professor with the University of Potsdam, Potsdam, Germany, and Technical University

References (49)

  • B. Desoete et al.

    A reversible carry-look-ahead adder using control gates

    INTEGRATION, VLSI J.

    (2002)
  • R. Wille et al.

    Trading off circuit lines and gate costs in the synthesis of reversible logic

    INTEGRATION, VLSI J.

    (2014)
  • R. Landauer

    Irreversibility and heat generation in the computing process

    IBM J. Res. Dev

    (1961)
  • N. Gershenfeld

    Signal entropy and the thermodynamics of computation

    IBM Syst. J.

    (1996)
  • C.H. Bennett

    Logical reversibility of computation

    IBM J. Res. Dev.

    (1973)
  • A. Berut et al.

    Experimental verification of Landauer׳s principle linking information and thermodynamics

    Nature

    (2012)
  • M. Nielsen et al.

    Quantum Computation and Quantum Information

    (2000)
  • D. Deutsch, R. Jozsa, Rapid solution of problems by quantum computation, Proc. R. Soc. Lond. A 439 (1992)...
  • L.K. Grover

    A fast quantum mechanical algorithm for database search

    Theory Comput.

    (1996)
  • P.W. Shor

    Algorithms for quantum computation: discrete logarithms and factoring

    Found. Comput. Sci.

    (1994)

Cited by (25)

  • Reversible computing from a programming language perspective

    2023, Theoretical Computer Science
    Citation Excerpt :

    Third, a reversible combinator language, called Agni, efficiently processes arrays in parallel on reversible vector processors [87]. Fourth, the reversible version of hardware description languages has been designed and implemented for reversible circuit synthesis (e.g., [112,113]). An early point-free functional language with a relational semantics, in which all functions definable are injective, is Inv [90].

  • Offline Testing of Reversible Logic Circuits: An Analysis

    2018, Integration
    Citation Excerpt :

    It guarantees nearly energy free computation by preventing power dissipation in form of information loss as in irreversible operations [2,3]. The researchers are at par with the latest innovations in this area to develop designs of several logical and benchmarking circuits on the top of various synthesis algorithms [4–8]. These circuits are based on distinguished gate libraries and their efficiency is governed by their operating costs [9].

  • Reversible programs have reversible semantics

    2020, Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
  • Towards quantum reversible ternary coded decimal adder

    2017, Quantum Information Processing
  • Exploiting reversible logic design for implementing adiabatic circuits

    2017, Proceedings of the 24th International Conference on Mixed Design of Integrated Circuits and Systems, MIXDES 2017
  • Logic synthesis for quantum state generation

    2016, Proceedings of The International Symposium on Multiple-Valued Logic
View all citing articles on Scopus
Robert Wille received the Diploma and Dr.-Ing. degrees in computer science from the University of Bremen, Bremen, Germany, in 2006 and 2009, respectively. From 2006 to 2015, he has been with the Group of Computer Architecture, University of Bremen, and, since 2013, the German Research Center for Artificial Intelligence, Bremen. He was a Lecturer with the University of Applied Science, Bremen, and a Visiting Professor with the University of Potsdam, Potsdam, Germany, and Technical University Dresden, Dresden, Germany. Since 2015, he is full professor at the Johannes Kepler University Linz, Austria. In the nine years of his research activity, he has published over 100 papers in journals and conferences and served in program committees of numerous conferences such as ASPDAC, DAC, and ICCAD. His current research interests include design of circuits and systems for both conventional and emerging technologies with a focus in the domain of verification and proof engines.
Eleonora Schönborn received the Diploma degree in computer science from the University of Bremen, Bremen, Germany, in 2012. From 2012 to 2015 she was with the Group of Computer Architecture, University of Bremen, and the Graduate School System Design, a cooperation of the University of Bremen with the German Research Center for Artificial Intelligence (DFKI) and the German Aerospace Center (DLR). Her research interests include the design and synthesis of reversible circuits and systems.
Mathias Soeken received the Dr.-Ing. degree in computer science from the University of Bremen in 2013. Since 2009, he is with the Group of Computer Architecture at the University of Bremen and, since 2012, with the German Research Center for Artificial Intelligence (DFKI). His research interests are in electronic design automation, formal verification, natural language processing, and circuit complexity. Since 2012, Mathias Soeken teaches graduate courses at the University of Bremen.
Rolf Drechsler received the Diploma and Dr. phil. nat. degrees in computer science from the J. W. Goethe University Frankfurt am Main, Frankfurt am Main, Germany, in 1992 and 1995, respectively. He was with the Institute of Computer Science, Albert-Ludwigs University, Freiburg im Breisgau, Germany and with the Corporate Technology Department, Siemens AG, Munich, Germany. Since October 2001, he has been with the University of Bremen, Bremen, Germany, where he is currently a Full Professor and the Head of the Group for Computer Architecture, Institute of Computer Science. Since 2011, he is also the Director of the Cyber-Physical Systems group at the German Research Center for Artificial Intelligence (DFKI) in Bremen. His research interests include the development and design of data structures and algorithms with a focus on circuit and system design. In these areas, he published more than 250 papers and served in program committees of international conferences such as DAC, DATE, and ICCAD.
View full text