Asynchronous system
The primary focus of this article is asynchronous control in digital electronic systems.   In a synchronous system, operations (instructions, calculations, logic, etc.)  are coordinated by one, or more, centralized clock signals.  An asynchronous system, in contrast, has no global clock.  Asynchronous systems do not depend on strict arrival times of signals or messages for reliable operation.   Coordination is achieved using event-driven architecture triggered by network packet arrival, changes (transitions) of signals,  handshake protocols, and other methods.

Modularity

Asynchronous systems – much like object-oriented software – are typically constructed out of modular 'hardware objects', each with well-defined communication interfaces. These modules may operate at variable speeds, whether due to data-dependent processing, dynamic voltage scaling, or process variation. The modules can then be combined to form a correct working system, without reference to a global clock signal. Typically, low power is obtained since components are activated only on demand. Furthermore, several asynchronous styles have been shown  to accommodate clocked interfaces, and thereby support mixed-timing design. Hence, asynchronous systems match well the need for correct-by-construction methodologies in assembling large-scale heterogeneous and scalable systems.

Design styles

There is a large spectrum of asynchronous design styles, with tradeoffs between robustness and performance (and other parameters such as power). The choice of design style depends on the application target: reliability/ease-of-design vs. speed.  The most robust designs use  'delay-insensitive circuits', whose operation is correct regardless
of gate and wire delays; however, only limited useful systems can be  designed with this style.  Slightly less robust, but much more useful, are  quasi-delay-insensitive circuits (also known as speed-independent circuits), such as delay-insensitive minterm synthesis, which operate correctly regardless of gate delays; however, wires at each fanout point must be tuned for roughly equal delays.  Less robust but faster circuits, requiring simple localized one-sided timing constraints,  include controllers using fundamental-mode operation (i.e. with setup/hold  requirements on when new inputs can be received), and bundled datapaths using matched delays (see below).  At the extreme, high-performance "timed circuits" have been proposed, which use tight two-side timing constraints, where the clock can still be avoided but careful physical delay tuning is required, such as for some high-speed  pipeline applications.

Asynchronous communication

Asynchronous communication is typically performed on communication channels. Communication is used both to synchronize operations of the concurrent system as well as to pass data.  A simple channel typically consists  of two wires:  a request and an acknowledge.  In a '4-phase handshaking  protocol' (or return-to-zero), the request is asserted by the sender component, and the receiver responds by asserting the acknowledge; then both signals are de-asserted in turn.  In a '2-phase handshaking protocol' (or transition-signalling), the requester simply toggles the value on the request wire (once), and the receiver responds by toggling the value on the acknowledge wire.  Channels can also be extended to communicate data.

Asynchronous datapaths

Asynchronous datapaths are typically encoded using several schemes. Robust schemes use two wires or 'rails' for each bit, called 'dual-rail encoding'.  In this case, first rail is asserted to transmit a 0 value, or the second rail is asserted to transmit a 1 value.  The asserted rail is then reset to zero before the next data value is transmitted, thereby indicating 'no data' or a 'spacer' state.  A less robust, but widely used and practical scheme, is called 'single-rail bundled data'. Here, a single-rail (i.e. synchronous-style) function block can be used, with an accompanying worst-case matched delay.  After valid data inputs arrive, a request signal is asserted as the input to the matched delay.  When the matched delay produces a 'done' output, the block guaranteed to have completed computation.  While this scheme has timing constraints, they are simple, localized (unlike in synchronous systems), and one-sided, hence are usually easy to validate.

Literature

The literature in this field exists in a variety of conference and journal proceedings.  The leading symposium is the IEEE Async Symposium (International Symposium on Asynchronous Circuits and Systems), founded in 1994.   A variety of asynchronous papers have also been published since the mid-1980s in such conferences as IEEE/ACM Design Automation Conference,  IEEE International Conference on Computer Design, IEEE/ACM International Conference on Computer-Aided Design, International Solid-State Circuits  Conference, and Advanced Research in VLSI, as well as in leading journals  such as IEEE Transactions on VLSI Systems, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, and Transactions on Distributed Computing.

See also

Design flow (EDA)
Electronic design automation
Integrated circuit design
Isochronous timing
Mesochronous network
Perfect clock gating
Plesiochronous system

References

 S.M. Nowick and M. Singh, "Asynchronous Design -- Part 1:  Overview and Recent Advances", IEEE Design and Test, vol. 32:3, pp. 5–18 (May/June 2015).
S.M. Nowick and M. Singh, "Asynchronous Design -- Part 2:  Systems and Methodologies", IEEE Design and Test, vol. 32:3, pp. 19–28 (May/June 2015)
These two articles provide a broad and modern snapshot of the state-of-the-art of asynchronous design. They include a short history of asynchronous design, as well as a technical introduction to handshaking protocols and data encoding, hazard-free logic, and controller design.  They also cover recent industrial successes in mainstream technologies (IBM, Intel, Philips Semiconductors, etc.), as well as recent application to emerging areas (neuromorphic computers, flexible electronics, quantum cellular automata, continuous-time DSPs, ultra-low voltage design, extreme environments). Highlights several application areas in depth, with a wide range of cited publications: GALS systems, networks-on-chip, computer architecture, testing and design-for-testability, and CAD tool development.
Claire Tristram, "It's Time for Clockless Chips", cover story, MIT's Technology Review Magazine, vol. 104:8, pp. 36–41, October 2001.
 C.H. van Berkel, M.B. Josephs, and S.M. Nowick, , Proceedings of the IEEE, Vol. 87, No. 2, pp. 223–233, February 1999.  (This entire issue is devoted to asynchronous circuits, with many other relevant articles.)
 L. Lavagno and S.M. Nowick, "Asynchronous Control Circuits", chapter 10 in ,  pp. 255–284,(Includes pointers to recent asynchronous chips, as well as coverage of CAD techniques for asynchronous control circuits.)

Adapted from Steve Nowick's column in the ACM SIGDA e-newsletter by Igor Markov 
Original text is available at https://web.archive.org/web/20060624073502/http://www.sigda.org/newsletter/2006/eNews_060115.html

External links
 ARM ARM996HS clockless processor 
 Navarre AsyncArt. N-Protocol: Asynchronous Design Methodology for FPGAs
Asynchronous design page at Newcastle University 
Workcraft: toolset for asynchronous circuit synthesis and verification https://workcraft.org/

Electrical circuits
Synchronization
Electronic design automation
Network architecture
Formal methods