Skip to Main Content
Multiplier blocks have been shown to require a small number of adders for multiplying one data sample with multiple, constant, coefficients. The previously proposed multiplier block algorithms have been using carry-propagation adders. However, for high-speed applications carry-save adders are a better choice. Although it is possible to map carry-save adders to carry-propagation adders, it is shown that this mapping is inconsistent in the number of carry-save adders required for a given number of carry-propagation adders for multiplier blocks. Therefore, a multiplier block algorithm for carry-save adders is proposed. It is shown that the proposed algorithm is producing multiplier blocks with consistently fewer carry-save adders compared with starting with a carry-propagation multiplier block and mapping it to carry-save adders. Further, it is shown that the proposed algorithm produces multiplier blocks with fewer carry-save adders than algorithms based on subexpression sharing.