This is a tutorial paper that examines the problem of performing fixed-point constant
integer multiplications using as few adders as possible. The driving application is the
design of digital filters, where it is often required that several products of a single
multiplicand are produced. Thus two specific problems are examined in detail, i.e.,
the one-input/one-output case and the one-input/several-output case. The latter is of
interest because it can take advantage of redundancy in the different coefficient multipliers.
Graphical methods can be used to design multipliers in both cases.For the one-input/one-output case, both optimal and sub-optimal algorithms
introduced by the author are shown to be the best methods for the design of these
multipliers. The key to the new methods' success is the use of different graph topologies
to those available under standard methods. The optimal method uses an exhaustive
search and is limited to short wordlengths, so the suboptimal methods must be used for
long wordlengths. The design is shown to be analogous to the design of algorithms for
exponentiation, which is becoming increasingly important in cryptography.For the one-input/several-output (“multiplier block”) case, again new algorithms
designed by the author are shown to be the best. When used for designing digital filters,
the multiplier block method is more efficient (uses fewer adders) than any other method
that has been examined. It is so successful at reducing the number of adders used for
multiplication that the non-multiplier elements begin to dominate the overall filter cost.
It also allows previously unpopular filter structures to compete with structures like the
lattice wave structure, despite having more coefficients of longer wordlength. The use of
multiplier blocks in filter banks is also described.A third case is examined briefly, that of matrix multiplication (several-input/several-output),
which is an area of further research.