In this chapter, we define and study combinational circuits. The underlying graph of a combinational circuit is more general than the underlying graph of a Boolean formula. In a formula, the underlying graph is a rooted tree. However, in a combinational circuit, the underlying graph is a directed acyclic graph.
We focus on the representation of Boolean functions by combinational circuits, a representation that is different from tables and formulas. Our goal is to prove two theorems: (i) every Boolean function can be implemented by a combinational circuit and (ii) every combinational circuit implements a Boolean function.
We introduce an efficient algorithm for simulating a combinational circuit. Simulation means that we can determine the value of the outputs if we are given the values of the inputs. In addition, we analyze the time that elapses until the outputs of a combinational circuit stabilize.
We measure the quality of a combinational circuit using two criteria: cost and delay. Cost refers to the number of gates in a circuit. Delay refers to the speed of the circuit. Obviously, we prefer cheap and fast circuits over costly and slow circuits.
COMBINATIONAL GATES: AN ANALOG APPROACH
By Definition 10.1, a gate is a device whose static functionality is specified by a static transfer function. This means that the output is a function of the inputs, provided that the input values do not change for a sufficiently long amount of time.