Author :
Vazquez, A. ; Antelo, Elisardo ; Bruguera, Javier D.
Author_Institution :
Centro de Investig. en Tecnoloxias da Informacion (CITIUS), Univ. of Santiago de Compostela, Santiago de Compostela, Spain
Abstract :
We present the algorithm and architecture of a BCD parallel multiplier that exploits some properties of two different redundant BCD codes to speedup its computation: the redundant BCD excess-3 code (XS-3), and the overloaded BCD representation (ODDS). In addition, new techniques are developed to reduce significantly the latency and area of previous representative high-performance implementations. Partial products are generated in parallel using a signed-digit radix-10 recoding of the BCD multiplier with the digit set [-5, 5], and a set of positive multiplicand multiples (0X, 1X, 2X, 3X, 4X, 5X) coded in XS-3. This encoding has several advantages. First, it is a self-complementing code, so that a negative multiplicand multiple can be obtained by just inverting the bits of the corresponding positive one. Also, the available redundancy allows a fast and simple generation of multiplicand multiples in a carry-free way. Finally, the partial products can be recoded to the ODDS representation by just adding a constant factor into the partial product reduction tree. Since the ODDS uses a similar 4-bit binary encoding as non-redundant BCD, conventional binary VLSI circuit techniques, such as binary carry-save adders and compressor trees, can be adapted efficiently to perform decimal operations. To show the advantages of our architecture, we have synthesized a RTL model for $16times 16$-digit and $34times 34$-digit multiplications and performed a comparative survey of the previous most representative designs. We show that the proposed decimal multiplier has an area improvement roughly in the range 20-35 percent for similar target delays with respect to the fastest implementation.
Keywords :
VLSI; adders; carry logic; codes; redundancy; 4-bit binary encoding; BCD multiplier; BCD parallel multiplier; ODDS representation; XS-3; binary carry-save adders; compressor trees; conventional binary VLSI circuit techniques; decimal multiplier; fast radix-10 multiplication; negative multiplicand multiple; nonredundant BCD; overloaded BCD representation; partial product reduction tree; partial products; positive multiplicand multiples; redundancy; redundant BCD codes; redundant BCD excess-3 code; self-complementing code; Adders; Computer architecture; Delays; Encoding; Hardware; Redundancy; Vegetation; Parallel multiplication; decimal hardware; overloaded BCD representation; redundant arithmetic; redundant excess-3 code;