As taught in most introductory digital circuit classes, design of sequential digital circuits is limited to a very strict set of restrictions, usually called "synchronous" finite state machine design. In synchronous design, there is one special signal called the "clock" which controls the timing of all state transitions, and all clock inputs on all sequential components in the digital system (flip-flops or other more complex components) must connect directly to that one clock signal in the system, without exception. Furthermore, all variables in the system are restricted to change only on the clock transition that causes state changes in the sequential components of the system. There is good reason to impose these restrictions in an introductory class. Working under the "synchronous" umbrella protects the designer from many timing problems that can occur in systems if these restrictions are not followed. However, examples abound where synchronous restrictions must be violated. For example, when a manually controlled switch input enters an otherwise synchronous system, the manual switch variable can change value at times unrelated to the clock transition, violating synchronous restrictions and causing headaches. In fact, synchronous design techniques, and other related design regimens, are special cases of the more general design approach called "asynchronous" finite state machine design. In asynchronous design, there is no special clock signal to cause state changes. Instead, the state machine reacts to changes on the input variables from the environment. Flip-flops, for example, actually are not elementary building blocks of digital circuits as is taught in introductory courses. Flip-flops themselves are designed as asynchronous circuits. The memory in sequential circuits arises from the feedback present in asynchronous design to implement states in the state machine operation. In asynchronous sequential circuit design, there are no artificial restrictions on circuit behavior. As a result, however, there are many more concerns that must be addressed by the designer in order to ensure correct circuit operation, so asynchronous design is usually omitted from discussion in introductory digital courses. This paper addresses some issues related to asynchronous finite state machine design, and includes some important examples of specific asynchronous circuits that have central significance in digital design. Techniques are included here to incorporate asynchronous design into lab experiments for advanced digital design courses. Without an understanding of the issues presented here, digital designers must work in a design environment that unnecessarily limits what they can do.
|Original language||English (US)|
|Journal||ASEE Annual Conference and Exposition, Conference Proceedings|
|State||Published - Jan 1 2006|
|Event||113th Annual ASEE Conference and Exposition, 2006 - Chicago, IL, United States|
Duration: Jun 18 2006 → Jun 21 2006