Digital Circuit Design

alt text 

We consider the problem of designing a kind of digital circuit known as a combinational logic block. In such a circuit, the basic building block is a gate: a circuit that implements some simple boolean function. A gate could be for example an inverter, which performs logical inversion, or a more complicated function such as a “not-AND”, or NAND, which takes two boolean inputs A, B to produce the inversion of (A and B).

The basic idea is to design (size) the gates in such a way that the circuit operates fast, yet occupies a small area. There are other factors, such as power, involved in the design problem but we will not discuss this here.

The design variables are scale factors that determine the size of each gate, as well as its basic electrical parameters. Together with the (here, fixed) topology of the circuit, these parameters in turn influence the speed of the circuit.

This section uses geometric programming models to address the circuit design problem.