Han Carlson Adder(Professor Han invented Han Carlson adder in part of his Ph. D. dissertation). currently widely used in Intel Pentium Micro. Download scientific diagram | (a) Han-Carlson (HC) adder; from publication: Power-aware Design of Logarithmic Prefix Adders in Sub-threshold Regime: A. Key Words – Parallel Prefix Adders, Han-Carlson Adder, area, prefix computation, Power Consumption, delay. 1. Introduction. VLSI binary adders are critically.
|Published (Last):||18 September 2015|
|PDF File Size:||1.12 Mb|
|ePub File Size:||17.59 Mb|
|Price:||Free* [*Free Regsitration Required]|
Arithmetic Module Generator AMG supports various hardware algorithms for two-operand adders and multi-operand adders. These hardware algorithms are also used to generate multipliers, constant-coefficient multipliers and multiply accumulators.
In the following, we briefly describe the hardware algorithms that can be handled by AMG. The most straightforward implementation of a final stage adder for two n-bit operands is a ripple carry adder, which requires n full adders FAs. Figure 1 shows a ripple carry adder for n-bit operands, producing n-bit sum outputs and a carry out.
The main idea behind carry look-ahead addition is an attempt to generate all incoming carries in parallel and avoid waiting until the correct carry propagates from the stage FA of the adder where it has been generated. The equation can be interpreted as stating that there is a carry either if one is generated at that stage or if one is propagated from the preceding stage. In other words, a carry is generated if both operand bits are 1, and an incoming carry is propagated if one of the operand bits is 1 and the other is 0.
Therefore, let Gi and Pi denote the generation and propagation at the ith stage, we have: These expressions allow us to calculate all the carries in parallel from the operands.
The idea of the ripple-block carry look-ahead addition is to lessen the fan-in and fan-out difficulties inherent in carry look-ahead adders. A ripple-block carry look-ahead adder RCLA consists of N m-bit blocks arranged in such a way that carries within blocks are generated by carry look-ahead but carries between blocks are rippled.
The block size m is fixed to 4 in the generator. The RCLA design is obtained by using multiple levels of carry look-ahead. If there are five or more blocks in a RCLA, 4 blocks are grouped into a single superblock, with the second level of look-ahead applied to the superblocks. Figure 2 shows the parallel prefix graph of a bit RCLA, where the symbol solid circle indicates an extension of the fundamental carry operator described at Parallel prefix adders.
Hybrid Han-Carlson adder – Semantic Scholar
Another way to design a practical carry look-ahead adder is to reverse caroson basic design principle of the RCLA, that is, to ripple carries within blocks but to generate carries between blocks by look-ahead.
A block carry look-ahead adder BCLA is based on the above idea.
Figure 3 shows the parallel prefix graph of a bit BCLA, where the symbol solid circle indicates an extension of the fundamental carry operator described at Parallel prefix adders. The fundamental carry operator is represented as Figure 4.
A parallel prefix adder can be represented as a parallel prefix graph consisting of carry operator nodes. Figure 5 is the parallel prefix graph of a Ladner-Fischer adder. Figure 6 is the parallel prefix graph of a Kogge-Stone adder. This adder structure has minimum logic depth, and full binary tree with minimum fun-out, ader in a fast adder but with a large area.
Figure 7 is the parallel prefix graph of a Brent-Kung adder. This adder is the extreme case of maximum logic depth and minimum area.
Figure 8 is the parallel prefix graph of a Han-Carlson adder. This adder has a hybrid design combining stages from the Brent-Kung and Kogge-Stone adder. The basic idea in the conditional sum adder is to generate two sets of outputs for a given group of operand bits, say, k bits. Adcer set includes k sum bits and an outgoing carry.
One set assumes that the eventual incoming carry will be zero, while the other assumes that it will be one. Once the incoming carry is known, we need only to select the correct set of outputs out of the two sets without waiting for the carry to further propagate through the k positions.
This process can, in principle, be continued until a group of size 1 is reached. The above idea is applied to each of groups separately. The underlying strategy of the carry-select adder is similar to that of the conditional-sum adder. Each group generates two sets of sum bits and an outgoing carry. One set assumes that the incoming carry into the group is 0, the other assumes that it is 1. When the incoming carry into the group is assigned, its final value is selected out of the two sets.
Unlike the conditional-sum adder, the sizes of the kth group is chosen so as to equalize the delay of the ripple-carry within the group and the delay of the carry-select chain from group 1 to group k. In this generator, the group lengths follow the simple arithmetic progression 1, 1, 2, 3, A carry-skip adder reduces the carry-propagation time by skipping over groups of consecutive adder stages.
The carry-skip adder is usually comparable in speed to the carry look-ahead technique, but it requires less chip area and consumes less power. The adder structure is divided into blocks of consecutive stages with a simple ripple-carry scheme. This signal can be used to allow an incoming carry to skip all the stages within the block and generate a block-carry-out. Figure 12 shows an 8-bit carry-skip adder consisting of four fixed-size blocks, each of size 2.
The fixed block size should be selected so that the time for the longest carry-propagation chain can be minimized. Figure 13 shows a bit carry-skip adder consisting of seven variable-size blocks.
This optimal organization of block size includes L blocks with sizes k1, k2, This reduces the ripple-carry delay through these blocks. Please note that the delay information of carry-skip adders in Reference data page is simply estimated by using false paths instead of true paths. Figure 14 compares the delay information of true paths and that of false paths in the case of Hitachi 0.
Table 1 shows hardware algorithms that can be selected for multi-operand adders in AMG, where the bit-level optimized design indicates that the matrix of partial product bits is reorganized to optimize the number of basic components.
Array is a straightforward way to accumulate partial products using a number of adders. The n-operand array consists of n-2 carry-save adder. Figure 15 shows an array for operand, producing 2 outputs, where CSA indicates a carry-save carlosn having three multi-bit inputs and hzn multi-bit outputs.
Wallace tree is known for their optimal computation time, when adding multiple operands to two outputs using carry-save adders. The Wallace tree guarantees the lowest overall delay but csrlson the largest number of wiring tracks vertical feedthroughs between adjacent bit-slices. The number of wiring tracks is a measure of wiring complexity.
Figure 16 shows an operand Addet tree, adser CSA indicates a carry-save adder having three multi-bit inputs and two multi-bit outputs. Balanced delay tree requires the smallest number of zdder tracks but has the highest overall delay compared with the Wallace tree and the overturned-stairs tree. Figure 17 shows an operand balanced delay tree, where Adeer indicates a carry-save adder having three multi-bit inputs and two multi-bit outputs.
Overturned-stairs tree requires zdder number of wiring tracks compared with the Wallace tree and has lower overall delay compared with the balanced delay tree.
Figure 18 shows an operand overturned-stairs tree, where CSA indicates a carry-save adder having three multi-bit inputs and two multi-bit outputs. Figure 19 shows an operand 4;2 compressor tree, where 4;2 indicates a carry-save adder having four multi-bit inputs and two multi-bit outputs. Dadda tree is based on 3,2 counters. To reduce the hardware complexity, we allow the use of 2,2 counters in addition to 3,2 counters. Given the matrix of partial product bits, the number of bits in each column is reduced cadlson minimize the number of 3,2 and 2,2 counters.
A 7,3 counter tree is based on 7,3 counters. To reduce the hardware complexity, we allow the use of 6,35,34,33,2and 2,2 counters in addition carlsom 7,3 counters. We employ Dadda’s strategy for constructing 7,3 counter trees. Redundant binary RB addition tree has a more regular structure than an ordinary CSA catlson made of 3,2 counters because the RB partial products are added up in the binary tree form by RB adders.
The RB addition tree is closely related to 4;2 compressor tree. Note here that the RB number should be encoded into a vector of binary digit in the standard binary-logic implementation. In this generator, we employ a minimum length encoding based on positive-negative representation. Partial products are generated with Radix-4 modified Booth recoding. The Booth recoding of the multiplier reduces the number of partial products and hence has a possibility of reducing the amount of hardware involved and the execution time.
Hybrid Han-Carlson adder
The PPG stage first generates partial products from the multiplicand and multiplier in parallel. The PPA stage then performs multi-operand addition for all the generated partial products and produces their sum in carry-save form.
Finally, the carry-save form is converted to the corresponding binary output at FSA. AMG provides constant-coefficient multipliers in the form: The hardware algorithms for constant-coefficient multiplication are based on multi-input 1-output addition algorithms i. There are many possible choices for the multiplier structure for a specific coefficient R. The complexity of multiplier structures significantly varies with the coefficient value R.
We consider here the use of special number representation called Signed-Weight SW number system, which is useful for constructing compact PPAs. At present, the combination of CSD Canonic Signed-Digit coefficient encoding technique with the SW-based PPAs seems to provide the practical hardware implementation of fast constant-coefficient multipliers.
As a result, AMG supports such hardware algorithms for constant-coefficient multiplication, where the range of R is from -2 31 to 2 31 A constant-coefficient multiplier is given as a part of MACs as follow. AMG provides multiply accumulators in the form: Figure 22 shows a n-term multiply accumulator.
Hardware algorithms for arithmetic modules
A multiply accumulator is generated by a combination of hardware algorithms for multipliers and constant-coefficient multipliers. The carry-save form is converted to the corresponding binary output by an FSA. The structure a illustrates a typical situation, where the MAC is used to perform a multiply-add operation in an iterative fashion.
On the other hand, the structure b shows a faster design, where two product terms are computed simultaneously in a single iteration. You can further increase the number of product terms computed in a single cycle depending on your target applications.
Generalized MAC Figure