Subexpression elimination can be applied to a set of constant multipliers that multiply a common variable. The multiple constant multiplication (MCM) problem [1] determines how subexpression elimination can be applied to the set of constant multipliers so that the number of shifts and additions required for implementation is minimized. A general framework and algorithm for solving this problem has been presented in [1], One of the attractive features of this algorithm is its versatility and adaptability to various forms of the MCM problem. The algorithm uses an iterative matching process that consists of 5 basic steps.

Table 15.1    Binary Representation of Constants from Example 15.3.1


Step 1:    Express each constant in the set using a binary format (such as signed, unsigned, two’s complement representation).

Step 2:    Determine the number of bit-wise matches (nonzero bits) between all of the constants in the set.

Step 3:    Choose the best match.

Step 4:    Eliminate the redundancy from the best match. Return the remainders and the redundancy to the set of coefficients.

Step 5:    Repeat Steps 2–4 until no improvement is achieved.

Although a few additional preprocessing steps can reduce the CPU run-time of the algorithm, these 5 steps represent the primary processing steps required to solve the MCM problem. Several applications of the ...

Get VLSI Digital Signal Processing Systems: Design and Implementation now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.