# Patent

## Title
Low-error canonic-signed-digit fixed-width multiplier, and method for designing same

## Abstract

An error compensation bias circuit and method for a canonic signed digit (CSD) fixed-width multiplier that receives a W-bit input and produces a W-bit product. Truncated bits of the multiplier are divided into two groups (a major group and a minor group) depending upon their effects on quantization error. An error compensation bias is expressed in terms of the truncated bits in the major group. The effects of the remaining truncated bits in the minor group are taken into account by a probabilistic estimation. The error compensation bias circuit typically requires only a few logic gates to implement.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of U.S. Provisional Application No. 60/382,064, filed May 22, 2002, which is incorporated herein by reference in its entirety.


STATEMENT REGARDING FEDERALLY-SPONSORED RESEARCH AND DEVELOPMENT
This invention was made with Government support under Grant No. 02-456, Disclosure No. CCR-9988262, awarded by the National Science Foundation. The Government has certain rights in this invention.


FIELD OF THE INVENTION
The present invention relate to data processing. More particularly, it relates to fixed-width multiplication of data.
BACKGROUND OF THE INVENTION
In many multimedia and digital signal processing (DSP) applications, for example, multiplication operations have a fixed-width property. This property means that input data and output results for multiplication operations have the same bit width. In these applications, multiplication by a W-bit constant multiplier is typically carried out using fixed-width constant multiplier systems and methods. In fixed-width constant multiplier systems and methods, the partial product terms corresponding to the nonzero bit positions in the constant multiplier are added to form the desired product.
In many fixed-width constant multiplier systems and methods, in order to implement the fixed-width property the “2W−1” bit product obtained from a W-bit multiplicand and a W-bit multiplier is quantized to W-bits by eliminating the “W−1” least-significant bits. This quantization, however, results in truncation errors that make these systems and methods unsuitable for many applications. Improved fixed-width multiplier schemes and/or designs such as, for example, Baugh-Wooley multipliers or parallel array multipliers exist. (See, e.g., S. S. Kidambi et al., “Area-efficient multipliers for digital signal processing applications,” IEEE Trans. Circuits Syst. II, vol. 43, pp. 90–94 (February 1996); J. M. Jou and S. R. Kuang, “Design of a low-error fixed-width multiplier for DSP applications,” Electron. Lett., vol. 33, no. 19, pp. 1597–1598 (1997); L. D. Van et al., “Design of the lower error fixed-width multiplier and its applications,” IEEE Trans. Circuits Syst. II, vol. 47, pp. 1112–1118 (October 2000); and S. J. Jou and H. H. Wang, “Fixed-width multiplier for DSP application,” in Proceedings of 2000 ICCD (Austin, Tex.), pp. 318–322 (September 2000); each of which is incorporated herein in its entirety.) These improved fixed-width multipliers, which implement the fixed-width property, operate by introducing biases into retained adder cells in order to compensate for the omitted “W−1” least-significant bits. Each of these improved fixed-width multiplier schemes and/or designs, however, still introduces errors into the multiplication output results, which for certain applications are significant.
Consider, for example, Kidambi et al. Kidambi et al. relates to a constant bias scheme wherein a constant bias is added to the retained cells. This constant bias scheme cannot be adjusted adaptively by the input signals, however, and the resulting truncation error is typically large. In Jou and Kuang and in Van et al., error compensation biases are generated using an indexing scheme. The indices used in these schemes attempt to incorporate the effects of the input signals and thus are an improvement over Kidambi et al. However, although quantization errors may be reduced by using indices, these schemes still have limitations that introduce errors into the multiplication output results, which for certain applications are significant. In Jou and Wang, statistical analysis and linear regression analysis are used to generate a bias that is added to retained adder cells. This scheme, however, also introduces errors into the multiplication output results, which for certain applications are significant. Thus, there is a need for new schemes and/or designs that do not have the limitations of the conventional schemes and/or designs.
What is needed is a new lower-error fixed-width multiplier, and a method for designing the same, that overcomes the limitations of the conventional fixed-width multiplier schemes and/or designs.
BRIEF SUMMARY OF THE INVENTION
The present invention provides a low-error canonic signed digit (CSD) fixed-width multiplier and a method for designing the CSD fixed-width multiplier. In an embodiment, the CSD fixed-width multiplier of the present invention includes a plurality of adder cells and an error compensation bias circuit. The CSD fixed-width multiplier is useful, for example, for implementing multimedia applications and digital signal processing applications.
In accordance with the present invention, truncated bits of the CSD fixed-width multiplier are divided into two groups (a major group and a minor group) depending upon their effects on quantization error. The desired error compensation bias is expressed in terms of the truncated bits in the major group. This error compensation bias expression is used to form the error compensation bias circuit. The effects of bits in the minor group are taken into consideration using a probabilistic estimation. In an embodiment, the error compensation bias circuit is formed by selecting a CSD multiplier/value (Y), multiplying a W-bit variable (X) by the canonic signed digit multiplier/value (Y) to produce sign-extended partial products each having an associated weight (2n), associating each partial product with a most significant bit group (MP) or a least significant bit group (LP), associating the partial products of the least significant bit group (LP) with a major least significant bit group (LPmajor) or a minor least significant bit group (LPminor), computing an error compensation bias for each possible input bit combination of the partial products having the greatest weight of the least significant bit group (LP), and forming a circuit to generate the error compensation biases computed in the computing step from the partial products having the greatest weight of the least significant bit group (LP).
The CSD fixed-width multiplier of the present invention can be used to form a wide variety of electrical products. For example, in one embodiment, the CSD fixed-width multiplier forms part of a digital filter. In another embodiment, the CSD fixed-width multiplier forms part of an equalizer. In still other embodiments, the CSD fixed-width multiplier forms, for example, part of a receiver, a transceiver, a decoder, or a mixer.
It is an advantage of the CSD fixed-width multiplier of the present invention that it has improved accuracy. It is also an advantage that the CSD fixed-width multiplier of the present invention requires less integrated circuit area and power to operate than conventional fixed-width multipliers.
Further embodiments, features, and advantages of the present invention, as well as the structure and operation of the various embodiments of the present invention are described in detail below with reference to accompanying drawings.



BRIEF DESCRIPTION OF THE DRAWINGS/FIGURES
The present invention is described with reference to the accompanying figures. In the figures, like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit or digits of a reference number identify the figure in which the reference number first appears. The accompanying figures, which are incorporated herein and form part of the specification, illustrate the present invention and, together with the description, further serve to explain the principles of the invention and to enable a person skilled in the relevant art to make and use the invention.
FIG. 1 illustrates a block diagram of a CSD multiplier for performing fixed-width multiplication according to the invention.
FIG. 2 illustrates partial products resulting from 10-bit canonical-signed-digit (CSD) multiplication.
FIG. 3 illustrates how to associate partial products with a major least significant bit (LPMAJOR) or a minor least significant bit group (LPMINOR) according to the invention.
FIG. 4 illustrates the structure of a CSD multiplier according to the invention.
FIG. 5 is a table illustrating error compensation biases (σINV) for partial product combinations associated with LPMINOR.
FIG. 6 is a table illustrating carry signals that can be used to generate the error compensation biases (σINV) illustrated in FIG. 5.
FIG. 7 is a circuit that can be used to generate the carry signals illustrated in FIG. 6.
FIGS. 8A–B illustrate a flowchart of the steps of a method for designing a fixed-width multiplier according to the present invention.
FIG. 9 is a graph comparing the average absolute error for the method of Van et al. and the method of the present invention.
FIG. 10 is a table illustrating the average absolute error and the variance of the absolute error for various quantization schemes.
FIG. 11 is a table illustrating the normalized average absolute error and the normalized variance of the absolute error for the quantization schemes in FIG. 10.



DETAILED DESCRIPTION OF THE INVENTION
Canonic Signed Digit (CSD) Fixed-Width Multiplier
FIG. 1 illustrates a block diagram of an efficient, low-error, CSD fixed-width multiplier 100 according to the present invention. CSD fixed-width multiplier 100 includes a two's complement coder 102, a partial product generator 104, and a partial product accumulator 106. In embodiments, CSD fixed-width multiplier 100 operates as follows. Two's complement coder 102 receives a multiplicand X and produces a two's complement of X. Partial product generator 104 operates on the two's complement of X and a two's complement CSD multiplier Y to generate partial products. Partial product accumulator 106 accumulates the partial products generated by partial product generator 104 and produces a product P.
To better understand the operation of a fixed-width multiplier, consider the multiplication of two 2's complement W-bit numbers X and Y, wherein X and Y are given by EQ. (1).




  
    
      
        
          
            
              
                X
                =
                
                  
                    -
                    
                      x
                      
                        W
                        -
                        1
                      
                    
                  
                  +
                  
                    
                      ∑
                      
                        i
                        =
                        1
                      
                      
                        W
                        -
                        1
                      
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        x
                        
                          W
                          -
                          1
                          -
                          i
                        
                      
                      ⁢
                      
                        2
                        
                          -
                          i
                        
                      
                    
                  
                
              
              ,
            
          
        
        
          
            
              Y
              =
              
                
                  -
                  
                    y
                    
                      W
                      -
                      1
                    
                  
                
                +
                
                  
                    ∑
                    
                      i
                      =
                      1
                    
                    
                      W
                      -
                      1
                    
                  
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      y
                      
                        W
                        -
                        1
                        -
                        i
                      
                    
                    ⁢
                    
                      
                        2
                        
                          -
                          i
                        
                      
                      .
                    
                  
                
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          1
          )
        
      
    
  




Their (2W−1)-bit ideal product PI can be expressed as:

PI=MP+LP,  EQ. (2)

where





  
    
      
        
          
            
              
                MP
                =
                
                  
                    -
                    
                      p
                      
                        
                          2
                          ⁢
                          W
                        
                        -
                        2
                      
                    
                  
                  +
                  
                    
                      ∑
                      
                        i
                        =
                        1
                      
                      
                        W
                        -
                        1
                      
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        p
                        
                          
                            2
                            ⁢
                            W
                          
                          -
                          2
                          -
                          i
                        
                      
                      ⁢
                      
                        2
                        
                          -
                          i
                        
                      
                    
                  
                
              
              ,
            
          
        
        
          
            
              LP
              =
              
                
                  ∑
                  
                    i
                    =
                    W
                  
                  
                    
                      2
                      ⁢
                      W
                    
                    -
                    2
                  
                
                ⁢
                
                  
                
                ⁢
                
                  
                    p
                    
                      
                        2
                        ⁢
                        W
                      
                      -
                      2
                      -
                      i
                    
                  
                  ⁢
                  
                    
                      2
                      
                        -
                        i
                      
                    
                    .
                  
                
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          3
          )
        
      
    
  




In typical fixed-width multipliers, the adder cells required for LP are omitted and appropriate biases are introduced to the retained adder cells based on a probabilistic estimation. Thus, the W-bit quantized product PQ can be expressed as:

PQ=MPQ+σ×2−(w−1),  EQ. (4)

where MPQ is the sum of the partial products obtained without LP and σ represents the error-compensation bias.

An efficient fixed-width multiplier design scheme for a Baugh-Wooley multiplier was proposed in Van, L. D., et al., “Design of the lower error fixed-width multiplier and its applications,” IEEE Trans. Circuits Syst. II, Vol. 47, pp. 1112–1118 (October 2000).
In CSD numbers, consecutive nonzero digits are not allowed. In the Van et al. approach, the following error-compensation bias for CSD multiplications can be derived:




  
    
      
        
          
        
        ⁢
        
          
            σ
            Van
          
          =
          
            
              ∑
              
                i
                =
                0
              
              
                W
                -
                2
              
            
            ⁢
            
              
            
            ⁢
            
              
                
                  x
                  ^
                
                i
              
              ⁢
              
                
                
                  
                    y
                    
                      W
                      -
                      2
                      -
                      i
                    
                  
                  ,
                  
                    

                  
                  ⁢
                  where
                  ,
                
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          5
          )
        
      
    
  
  
    
      
        
          
            x
            ^
          
          i
        
        ⁢
        
          
          
            
              y
              
                W
                -
                2
                -
                i
              
            
            =
            
              {
              
                
                  
                    
                      
                        x
                        i
                      
                      ,
                    
                  
                  
                    
                      
                        
                          
                            if
                            ⁢
                            
                              
                            
                            ⁢
                            
                              y
                              
                                W
                                -
                                2
                                -
                                i
                              
                            
                          
                          =
                          1
                        
                        ,
                      
                      ⁢
                      
                        
                      
                    
                  
                  
                    
                      
                    
                  
                
                
                  
                    
                      
                        
                          x
                          _
                        
                        i
                      
                      ,
                    
                  
                  
                    
                      
                        
                          
                            if
                            ⁢
                            
                              
                            
                            ⁢
                            
                              y
                              
                                W
                                -
                                2
                                -
                                i
                              
                            
                          
                          =
                          
                            -
                            1
                          
                        
                        ,
                      
                      ⁢
                      
                        
                      
                    
                  
                  
                    
                      
                    
                  
                
                
                  
                    
                      0
                      ,
                    
                  
                  
                    
                      
                        otherwise
                        .
                      
                      ⁢
                      
                        
                      
                    
                  
                  
                    
                      
                    
                  
                
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          6
          )
        
      
    
  




Now consider the following CSD fixed-width multiplication example with W=10:




  
    
      
        
          
            
              
                
                  P
                  I
                
                =
                
                  X
                  ×
                  Y
                
              
              ⁢
              
                
              
            
          
        
        
          
            
              
                
              
              ⁢
              
                
                  =
                  
                    
                      x
                      9
                    
                    ⁢
                    
                      x
                      8
                    
                    ⁢
                    
                      x
                      7
                    
                    ⁢
                    
                      x
                      6
                    
                    ⁢
                    
                      x
                      5
                    
                    ⁢
                    
                      x
                      4
                    
                    ⁢
                    
                      x
                      3
                    
                    ⁢
                    
                      x
                      2
                    
                    ⁢
                    
                      x
                      1
                    
                    ⁢
                    
                      x
                      0
                    
                    ×
                    0.0010
                    ⁢
                    
                      1
                      _
                    
                    ⁢
                    0
                    ⁢
                    
                      1
                      _
                    
                    ⁢
                    01
                  
                
                ,
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          7
          )
        
      
    
  




where the overbar denotes a bit complement. The sign extended partial products corresponding to the above multiplication are shown in FIG. 2. FIG. 2 illustrates the partial products resulting from 10-bit canonical-signed-digit (CSD) multiplication. From EQ. (5) and EQ. (6), the error compensation bias can be computed as:

σVan=x2+{overscore (x4)}+{overscore (x)}6+x8.  EQ. (8)

Notice that σVan is obtained by just adding the elements on column 10 in FIG. 2.

As can be seen from FIG. 2, sign-extension significantly increases the hardware complexity and the loading on the sign bit of the data bus. To reduce the overhead due to the sign-extension, a compensation vector approach has been widely used. (See Koren, I., “Computer Arithmetic Algorithms,” Englewood Cliffs, N.J., Prentice-Hall International, Inc., (1993).) Another sign-extension reduction method based on propagated-carry selection has been proposed by Kim et al., by which further hardware reduction can be achieved. (See S. M. Kim et al., “Sign extension reduction by propagated-carry selection,” in Proceedings of the 35th Asilomar conference on Signals, Systems, and Computers, IEEE (November 2001), which is incorporated herein by reference in its entirety.)
Bias Generation Circuit for CSD Fixed-Width Multiplier
From FIG. 2, the 10-bit quantized product PQ can be expressed as:

PQ=MPQ+σ×2−9.  EQ. (9)

Since σ can be interpreted as the carry propagated from the LP part to column 9 in FIG. 2, σ can be expressed as:

σ=[LP′/2]r,  EQ. (10)

where

LP′=LP×2w,  EQ. (11)

and [t]r is a rounding operation for t.

LP′/2 can be expressed as:




  
    
      
        
          
            
              
                
                  LP
                  ′
                
                /
                2
              
              =
              
              ⁢
              
                
                  
                    2
                    
                      -
                      1
                    
                  
                  ⁢
                  
                    (
                    
                      
                        x
                        2
                      
                      +
                      
                        
                          x
                          4
                        
                        _
                      
                      +
                      
                        
                          x
                          6
                        
                        _
                      
                      +
                      
                        x
                        8
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      2
                    
                  
                  ⁢
                  
                    (
                    
                      
                        x
                        1
                      
                      +
                      
                        
                          x
                          3
                        
                        _
                      
                      +
                      
                        
                          x
                          5
                        
                        _
                      
                      +
                      
                        x
                        7
                      
                    
                    )
                  
                
                +
              
            
          
        
        
          
            
              
              ⁢
              
                
                  
                    2
                    
                      -
                      3
                    
                  
                  ⁢
                  
                    (
                    
                      
                        x
                        0
                      
                      +
                      
                        
                          x
                          2
                        
                        _
                      
                      +
                      
                        
                          x
                          4
                        
                        _
                      
                      +
                      
                        x
                        6
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      4
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          x
                          1
                        
                        _
                      
                      +
                      
                        
                          x
                          3
                        
                        _
                      
                      +
                      
                        x
                        5
                      
                    
                    )
                  
                
                +
              
            
          
        
        
          
            
              
              ⁢
              
                
                  
                    2
                    
                      -
                      5
                    
                  
                  ⁢
                  
                    (
                    
                      1
                      +
                      
                        
                          x
                          0
                        
                        _
                      
                      +
                      
                        
                          x
                          2
                        
                        _
                      
                      +
                      
                        x
                        4
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      6
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          x
                          1
                        
                        _
                      
                      +
                      
                        x
                        3
                      
                    
                    )
                  
                
                +
              
            
          
        
        
          
            
              
              ⁢
              
                
                  
                    2
                    
                      -
                      7
                    
                  
                  ⁢
                  
                    (
                    
                      1
                      +
                      
                        
                          x
                          0
                        
                        _
                      
                      +
                      
                        x
                        2
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      8
                    
                  
                  ⁢
                  
                    (
                    
                      x
                      1
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      9
                    
                  
                  ⁢
                  
                    
                      (
                      
                        x
                        0
                      
                      )
                    
                    .
                  
                
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          12
          )
        
      
    
  




Notice that the elements on column 10 in FIG. 2 have a dominant effect on the carry signal generated from the LP part since these elements have the largest weight in the LP part. Thus, to generate an error compensation bias more efficiently, the LP part can be divided into LPmajor and LPminor parts. The elements on column 10 (x2, x4, x6, and x8) in FIG. 2 belong to LPmajor and the other elements belong to LPminor. This is shown more clearly in FIG. 3. FIG. 3 illustrates how to associate partial products with a major least significant bit (LPMAJOR) or a minor least significant bit group (LPMINOR) according to the present invention.
Using LPmajor and LPminor, EQ. (12) can be rewritten as:

LP′/2=LP′major/2+LP′minor/2,  EQ. (13)

where





  
    
      
        
          
            
              
                
                  
                    LP
                    major
                    ′
                  
                  /
                  2
                
                =
                
                ⁢
                
                  
                    
                      2
                      
                        -
                        1
                      
                    
                    ⁢
                    
                      (
                      
                        
                          x
                          2
                        
                        +
                        
                          
                            x
                            4
                          
                          _
                        
                        +
                        
                          
                            x
                            6
                          
                          _
                        
                        +
                        
                          x
                          8
                        
                      
                      )
                    
                  
                  +
                
              
              ⁢
              
                
              
            
          
        
        
          
            
               
              ⁢
              
                
                  
                    2
                    
                      -
                      3
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          x
                          2
                        
                        _
                      
                      +
                      
                        
                          x
                          4
                        
                        _
                      
                      +
                      x6
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      5
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          x
                          2
                        
                        _
                      
                      +
                      
                        x
                        4
                      
                    
                    )
                  
                
                +
              
            
          
        
        
          
            
               
              ⁢
              
                
                  
                    2
                    
                      -
                      7
                    
                  
                  ⁢
                  
                    (
                    x2
                    )
                  
                
                ,
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          14
          )
        
      
    
  




and





  
    
      
        
          
            
              
                
                  LP
                  minor
                  ′
                
                /
                2
              
              =
              
              ⁢
              
                
                  
                    2
                    
                      -
                      2
                    
                  
                  ⁢
                  
                    (
                    
                      
                        x
                        1
                      
                      +
                      
                        
                          x
                          3
                        
                        _
                      
                      +
                      
                        
                          x
                          5
                        
                        _
                      
                      +
                      
                        x
                        7
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      3
                    
                  
                  ⁢
                  
                    (
                    
                      x
                      0
                    
                    )
                  
                
                +
              
            
          
        
        
          
            
              
              ⁢
              
                
                  
                    2
                    
                      -
                      4
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          x
                          1
                        
                        _
                      
                      +
                      
                        
                          x
                          3
                        
                        _
                      
                      +
                      
                        x
                        5
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      5
                    
                  
                  ⁢
                  
                    (
                    
                      1
                      +
                      
                        
                          x
                          0
                        
                        _
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      6
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          x
                          1
                        
                        _
                      
                      +
                      
                        x
                        3
                      
                    
                    )
                  
                
                +
              
            
          
        
        
          
            
              
              ⁢
              
                
                  
                    2
                    
                      -
                      7
                    
                  
                  ⁢
                  
                    (
                    
                      1
                      +
                      
                        
                          x
                          0
                        
                        _
                      
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      8
                    
                  
                  ⁢
                  
                    (
                    
                      x
                      1
                    
                    )
                  
                
                +
                
                  
                    2
                    
                      -
                      9
                    
                  
                  ⁢
                  
                    
                  
                  ⁢
                  
                    
                      (
                      
                        x
                        0
                      
                      )
                    
                    .
                  
                
              
            
          
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          15
          )
        
      
    
  




To simplify the error compensation circuit, each element in LPminor can be assumed as a random variable with uniform distribution. Then, LP′/2 can be approximated as:

LP′/2≅LP′major/2+E[LP′minor/2],  EQ. (16)

where E[t] represents the expected value of t.

By using the approximation in EQ. (16), it can be shown that LP′/2 in EQ. (12) can be simplified as:

LP′/2≅LP′major/2+0.7334.  EQ. (17)

Using EQ. (10) and EQ. (16), a new error compensation bias according to the present invention is:




  
    
      
        
          σ
          inv
        
        =
        
          
            
              [
              
                
                  
                    LP
                    major
                    ′
                  
                  2
                
                +
                
                  E
                  ⁢
                  
                    
                  
                  ⁢
                  
                    (
                    
                      
                        
                          LP
                          ′
                        
                        ⁢
                        minor
                      
                      2
                    
                    )
                  
                
              
              ]
            
            
              
                
              
              ⁢
              r
            
          
          .
        
      
    
    
      
        EQ
        .
        
          
        
        ⁢
        
          (
          18
          )
        
      
    
  




FIG. 4 illustrates an example CSD fixed-width multiplier structure 400 according to the present invention. CSD fixed-width multiplier structure 400 includes a bias generation circuit 402. Bias generation circuit 402 generates the error compensation bias σinv illustrated by EQ. (18). To synthesize bias generation circuit 402, σinv can be computed for each combination of the elements in LPmajor as shown in FIG. 5.
Since the maximum value of σinv is 3, as shown in FIG. 5, σinv can be represented as a sum of 3 carry signals as:

σinv=C1+C2+C3.  EQ. (19)

Also, as can be seen from FIG. 5, the minimum value of σinv is 1. Thus, by choosing C1=1, EQ. (19) can be rewritten as:

σprop=1+C2+C3.  EQ. (20)

Then, for each combination of the elements in LPmajor, C2 and C3 can be determined using EQ. (20) as shown in FIG. 6.

By applying a Karnaugh-map technique to the values shown in FIG. 6, C2 can be expressed as a function of the elements in LPmajor as follows:

C2={overscore (x4)}x8 (x2•{overscore (x6)}),  EQ. (21)

where  and • mean the OR and the AND operations, respectively.

By the same way, C3 can be expressed as:

C3={overscore (x4)}·{overscore (x6)}·x8.  EQ. (22)

From EQ. (20), EQ. (21) and EQ. (22), an error compensation bias circuit 700 can be designed as shown in FIG. 7. From FIG. 7, it can be seen that the designed error compensation bias circuit 700 requires only three AND gates 702 and two OR gates 704.
Method for Designing a CSD Fixed-Width Multiplier
FIGS. 8A and 8B illustrate a flowchart of a method 800 for designing a CSD fixed-width multiplier according to the present invention. As illustrated in FIGS. 8A and 8B, method 800 includes seven steps. These steps summarize the design technique described above.
In step 802, the partial products in LP are divided into two groups, LPmajor and LPminor. The partial products in LPmajor are those partial products in LP that have a dominant effect on the carry signal and that have the largest weight. The partial products in LPminor are those partial products in LP that do not form a part of LPmajor. FIGS. 2 and 3 illustrate implementation of step 802.
In step 804, the expected value of LP′minor/2 is computed.
In step 806, the error compensation bias σinv is computed for each combination of the elements in LPmajor. The implementation of this step is illustrated by FIG. 5.
In step 808, the computed error compensation bias values σinv are used to decide the maximum number of carry signals (Ci's) required to represent σinv. As noted above, with regard to FIG. 5, the maximum number of carry signals required is equal to the largest value of σinv computed in step 806.
In step 810, a table showing the values of the carry signals for each combination of the elements in LPmajor is constructed. Implementation of this step is illustrated by FIG. 6.
In step 812, each carry signal Ci in the table constructed in step 810 is express as a function of the elements in LPmajor. This step can be implemented, for example, by applying a Karnaugh-map technique to the values of the carry signals.
In step 814, an error compensation circuit is implemented using the result in step 812.
To illustrate the improved accuracy of fixed-width multipliers designed according to method 800, consider the graph shown in FIG. 9. FIG. 9 is a graph comparing the average absolute error for a fixed-width multiplier designed according to the modified method of Van et al. and a fixed-width multiplier designed according to method 800.
As shown in FIG. 9, the average of ε for σinv is thirty-five percent less than that for σvan. For the comparison illustrated in the graph of FIG. 9, it was assumed that the CSD coefficients had 4 nonzero digits. For each CSD coefficient, the average of the absolute quantization error ε (defined as ε=|PI–PQ|) was computed for all the 10-bit input words of a 10×10 CSD fixed-width multiplier design. FIG. 9 compares the average of ε obtained by method 800 of the present invention (σinv) with that of the method obtained by the modified approach of Van et al.
FIG. 10 is a table illustrating the average absolute error and the variance of the absolute error for four different quantization schemes. FIG. 11 is a table illustrating the normalized average absolute error and the normalized variance of the absolute error for the quantization schemes in FIG. 10. Notice that the performance of the fixed-width multiplier of method 800 is very close to the rounding operation and much better than the truncation operation. Furthermore, it can be shown that the error compensation bias circuit for a 10×10 CSD multiplier according to the present invention requires at most 4 AND gates and 4 OR gates. This is a significant advantage over conventional fixed-width multipliers.
CONCLUSIONS
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the art that various changes in form and details can be made therein without departing from the spirit and scope of the invention as defined in the appended claims. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.

## Claims

1. A fixed-width multiplier, comprising:
a plurality of adder cells; and
a digital circuit coupled to said plurality of adder cells that generates a compensation bias, said digital circuit being formed by
selecting a canonic signed digit value (Y),
multiplying a W-bit variable (X) by the canonic signed digit value (Y) to produce sign-extended partial products each having an associated weight (2n),
associating each partial product with a most significant bit group (MP) or a least significant bit group (LP),
associating the partial products of the least significant bit group (LP) with a major least significant bit group (LPmajor) or a minor least significant bit group (LPminor),
computing an error compensation bias for each possible input bit combination of the partial products having the greatest weight of the least significant bit group (LP), and
forming a circuit to generate the error compensation biases computed in said computing step from the partial products having the greatest weight of the least significant bit group (LP).

2. The fixed-width multiplier of claim 1, wherein said fixed-width multiplier forms part of a digital filter.

3. The fixed-width multiplier of claim 1, wherein said fixed-width multiplier forms part of an equalizer.

4. The fixed-width multiplier of claim 1, wherein said fixed-width multiplier forms part of a receiver.

5. The fixed-width multiplier of claim 1, wherein said fixed-width multiplier forms part of a transceiver.

6. The fixed-width multiplier of claim 1, wherein said fixed-width multiplier forms part of a decoder.

7. The fixed-width multiplier of claim 1, wherein said fixed-width multiplier forms part of a mixer.

8. An integrated circuit having a substrate and a fixed-width multiplier disposed on said substrate, said fixed-width multiplier being designed by:
selecting a canonic signed digit value (Y);
multiplying a W-bit variable (X) by the canonic signed digit value (Y) to produce sign-extended partial products each having an associated weight (2n);
associating each partial product with a most significant bit group (MP) or a least significant bit group (LP);
associating the partial products of the least significant bit group (LP) with a major least significant bit group (LPmajor) or a minor least significant bit group (LPminor);
computing an error compensation bias for each possible input bit combination of the partial products having the greatest weight of the least significant bit group (LP);
forming a circuit to generate the error compensation biases computed in said computing step from the partial products having the greatest weight of the least significant bit group (LP); and
forming the fixed-width multiplier from the circuit and a plurality of adder cells, the circuit being used to generate carry signals for the plurality of adder cells.

9. The integrated circuit of claim 8, wherein said fixed-width multiplier forms part of a digital filter.

10. The integrated circuit of claim 8, wherein said fixed-width multiplier forms part of an equalizer.

11. The integrated circuit of claim 8, wherein said fixed-width multiplier forms part of a receiver.

12. The integrated circuit of claim 8, wherein said fixed-width multiplier forms part of a transceiver.

13. The integrated circuit of claim 8, wherein said fixed-width multiplier forms part of a decoder.

14. The integrated circuit of claim 8, wherein said fixed-width multiplier forms part of a mixer.

15. A method for forming an error compensation bias circuit for a fixed-width multiplier, the method comprising:
selecting a canonic signed digit value (Y);
multiplying a W-bit variable (X) by the canonic signed digit value (Y) to produce sign-extended partial products each having an associated weight (2n);
associating each partial product with a most significant bit group (MP) or a least significant bit group (LP);
associating the partial products of the least significant bit group (LP) with a major least significant bit group (LPmajor) or a minor least significant bit group (LPminor);
computing an error compensation bias for each possible input bit combination of the partial products having the greatest weight of the least significant bit group (LP); and
forming a circuit to generate the error compensation biases computed in said computing step from the partial products having the greatest weight of the least significant bit group (LP).

16. An error compensation bias circuit for a fixed-width multiplier having a plurality of adder cells, comprising:
a circuit, coupled to the plurality of adder cells, that generates a compensation bias, said circuit being formed by
selecting a canonic signed digit value (Y),
multiplying a W-bit variable (X) by the canonic signed digit value (Y) to produce sign-extended partial products each having an associated weight (2n),
associating each partial product with a most significant bit group (MP) or a least significant bit group (LP),
associating the partial products of the least significant bit group (LP) with a major least significant bit group (LPmajor) or a minor least significant bit group (LPminor),
computing an error compensation bias for each possible input bit combination of the partial products having the greatest weight of the least significant bit group (LP), and
forming a digital circuit to generate the error compensation biases computed in said computing step from the partial products having the greatest weight of the least significant bit group (LP).

17. The error compensation bias circuit of claim 16, wherein said error compensation bias circuit forms part of a digital filter.

18. The error compensation bias circuit of claim 16, wherein said error compensation bias circuit forms part of an equalizer.

19. The error compensation bias circuit of claim 16, wherein said error compensation bias circuit forms part of a receiver.

20. The error compensation bias circuit of claim 16, wherein said error compensation bias circuit forms part of a transceiver.

21. The error compensation bias circuit of claim 16, wherein said error compensation bias circuit forms part of a decoder.

22. The error compensation bias circuit of claim 16, wherein said error compensation bias circuit forms part of a mixer.