Combinational logic circuits implement logical functions on a set of inputs. Used for control, arithmetic, and data steering, combinational circuits are the heart of digital systems. Sequential logic circuits (see Chapter 14) use combinational circuits to generate their next state functions.
In this chapter we introduce combinational logic circuits and describe a procedure to design these circuits given a specification. At one time, before the mid 1980s, such manual synthesis of combinational circuits was a major part of digital design practice. Today, however, designers write the specification of logic circuits in a hardware description language (like VHDL) and the synthesis is performed automatically by a computer-aided design (CAD) program.
We describe the manual synthesis process here because every digital designer should understand how to generate a logic circuit from a specification. Understanding this process allows the designer to better use the CAD tools that perform this function in practice, and, on rare occasions, to generate critical pieces of logic manually.
COMBINATIONAL LOGIC
As illustrated in Figure 6.1, a combinational logic circuit generates a set of outputs whose state depends only on the current state of the inputs. Of course, when an input changes state, some time is required for an output to reflect this change. However, except for this delay the outputs do not reflect the history of the circuit.With a combinational circuit, a given input state will always produce the same output state regardless of the sequence of previous input states. A circuit where the output depends on previous input states is called a sequentiall circuit (see Chapter 14).
For example, a majority circuit, a logic circuit that accepts n inputs and outputs a 1 if at least ⌊n/2+1⌋ of the inputs are 1, is a combinational circuit. The output depends only on the number of 1s in the present input state. Previous input states do not affect the output.
On the other hand, a circuit that outputs a 1 if the number of 1s in the n inputs is greater than the previous input state is sequential (not combinational). A given input state, e.g., ik = 011, can result in o = 1 if the previous input was ik−1 = 010, or it can result in o = 0 if the previous input was ik−1 = 111.
Review the options below to login to check your access.
Log in with your Cambridge Aspire website account to check access.
If you believe you should have access to this content, please contact your institutional librarian or consult our FAQ page for further information about accessing our content.