What Is A Full Adder / Creating A Single Bit Full Adder?
The purpose of this article is to introduce an essential component to binary computation – a full adder. For simplification the single bit full adder will be considered (from which the device can be scaled to multiple bits). This article also touches upon layout design and sizing considerations with regard to power optimization principles. Input-to-Sum and Carry-in to Carry-out timing restrictions are also factored into this sizing consideration.
What Is A One-Bit Full Adder…
A one-bit full adder is a device with three single bit binary inputs (A, B, Cin) and two single bit binary outputs (Sum, C-out). Having both carry in and carry out capabilities, the full adder is highly scalable and found in many cascaded circuit implementations.
The basic logic functions of the full adder can be summarized in the truth table (right). From the truth table it can be seen that the full adder can be trivially constructed with two half adders. The full adder can also be decomposed into the following logical relationships:
One possible implementation of the full adder is the Mirror Full Adder. This circuit device consists of 28 total transistors (4 transistors used for the construction of two inverters). Since the full adder acts as a fundamental building-block component to larger circuits units, timing and power consumption optimization efforts at the adder level can lead to improved circuit throughput ratings, enhanced speed performance, and lowered power consumption requirements. Thus at this fundamental level it is very important to minimize latency and resolve any timing issues in order to avoid issues inevitably brought about by scaling.
Sizing and Power Optimization Considerations…
While there are many possible techniques to use in the transistor optimization process – buffering, size progression, ordering, etc. – the most effective means by which propagation delay and power consumption can be minimized comes with the sizing of the transistors. With sizing modifications, one could alter the resistive characteristics of the transistor to decrease the time delay through the device (t ~ R*C) and effectively increase its current drive capabilities. This technique has been used extensively in the commercial industry with an example coming in Intel’s modification of their Northwood core (.13-micron process) to their newly released Prescott core (.09-micron process). Other changes that can be made come in the setting of VDD, which can be increased to boost speed or decreased to improve power conservation, and the operational clock frequency, which when lowered can greatly improve power consumption losses. In making modifications, however, it is important to understand the many tradeoffs that also occur. With sizing, these manifest as introduced parasitic capacitances that can act against the optimization gains. Thus, the effective goal in design comes not only in improving upon a measurement, but rather, reaching a point at which the net benefit at a maximum.
Full Adder Schematic…
Here is one possible implementation for a Full Adder at the transistor level (Mirror Adder):
Sample transistor sizing values for an optimal implementation – .25µm CMOS Process:
Reducing Dynamic Power Consumption…
A great improvement to an adder (or any other scalable device) is the reduction of power consumption. Power consumption issues can lead to over consumption of resources when devices are cascaded so they must be planned for at the fundamental design level. With respect to VDD (High Voltage), one could greatly reduce the dynamic power consumption of the mirror-cell circuit above by decreasing the supply voltage (Power = CL * I*VDD^2*f). As seen by the formula, the VDD component is squared, indicating a nonlinear reduction in power per voltage reduction in VDD. However, this reduction in power would come at the expense of overall speed and increased delay. In extreme instances in which VDD is greatly reduced, interference may occur with the logical operations of the circuit. With this said, the new direction in the technology is headed towards programmable VDD states. Looking at one possible proposal for programmable implementation, one could have three states of operation: high VDD, low VDD, and power-gating. The high VDD state would be reserved for critical paths and the others to the non critical paths (Reference Publication Li, Lin, He, UCLA). This technology will greatly increase the ‘lifetime’ of any confined power source as unneeded draws and excess dissipation would be largely eliminated. Should such a technology hit the mainstream, it would be easy to see how its potential for portable device powering could revolutionize the industry. An additional benefit to VDD reduction also comes in improved power delay products.