Boolean Circuits · Synthesis of Boolean Circuits

Lesson 2

Nikolai Chukhin · Alexander S. Kulikov

Circuits are often synthesized from known blocks that are themselves circuits for some standard functions. For example, a circuit for \(\operatorname{SUM}_{5}\) can be assembled from two FA blocks and one HA block. In the diagram below, wires coming out of the blocks are labeled with their weights: for example, the first block computes \((a_{1}, a_{0})=\operatorname{FA}(x_{1}, x_{2}, x_{3})\), so \(x_{1}+x_{2}+x_{3}=a_{0}+2a_{1}\); we assume that \(a_{1}\) and \(a_{0}\) have weights of 1 and 0.

Of course, each of the blocks can be replaced with its representation as a circuit. The result is a circuit of size 12 that computes \(\operatorname{SUM}_{5}\).

Such a construction, with known inputs and outputs but concealed internal structure, is often referred to as a black box. If we assemble more complex circuits from such boxes and subsequently decide to modify the internal implementation of a box, our circuits will continue to operate in the same manner, provided that the functions computed by the boxes remain unchanged.