Asynchronous VLSI is a design technique for
intergrated circuits, such as
microprocessors.
As described in
clockless computing, asynchronous design involves no global clock signal. This means the chip does not rely on any sort of timing assumptions; the circuits should
theoretically work even if you slowed down any given signal by any amount.
Asynchronous circuits are different from clocked,
synchronous systems in that they can actually be
mathematically characterized. (Thus,
computer scientists are happy). One can prove, for example, that the class of truly delay-insensitive circuits is very small.
Circuits made out of such elements would not be able to do much at all.
Therefore, any actual asynchronous
implementation does make some timing
assumptions; the assumptions tend to vary by
research group or
company.
One of the smallest
concession to practicality is assuming that signal forks are
isochronous. That is, if a given wire travels from A to B and C, a signal sent from A reaches B and C at the same time. With just this assumption, relatively easy to satisfy, the range of available circuits expands to just about anything one would need. Complete microprocessors have been fabricated using this method
In general, asynchronous VLSI can be harder to grasp at first than standard design. The restrictions required to ensure delay insensitivity are sometimes
subtle; logic checking tools are essential. However, the
benefits are significant: Unconstrained by a clock, the circuits run as fast as they possibly can, making chips fast. And because a part of the chip that is not involved in a
calculation is doing nothing (unlike in a normal chip, where the clock signal is always causing
transistors to switch in the whole chip), power consumption tends to be far lower.
Commercial asynchronous designs have focused on the low power;
research is ongoing to improve design techniques and automate the process further.