Multiplication by Rational Constants

Multiplications by simple rational constants often appear in fixed- or floating-point application code, for instance, in the form of division by an integer constant. The hardware implementation of such operations is of practical interest to reconfigurable computing. It is well known that the binary representation of rational constants is eventually periodic. This brief shows how this feature can be exploited to implement multiplication by a rational constant in a number of additions that is logarithmic in the precision. An open-source implementation of these techniques is provided and is shown to be practically relevant for constants with small numerators and denominators, where it provides improvements of 20% to 40% in area with respect to the state of the art. It is also shown that, for such constants, the additional cost for a correctly rounded result is very small and that correct rounding very often comes for free in practice.

[1]  A. Dempster,et al.  Constant integer multiplication using minimum adders , 1994 .

[2]  Levent Aksoy,et al.  Exact and Approximate Algorithms for the Optimization of Area and Delay in Multiple Constant Multiplications , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[3]  Florent de Dinechin,et al.  Designing Custom Arithmetic Data Paths with FloPoCo , 2011, IEEE Design & Test of Computers.

[4]  Jean-Michel Muller,et al.  Integer and floating-point constant multipliers for FPGAs , 2008, 2008 International Conference on Application-Specific Systems, Architectures and Processors.

[5]  Frederick E. Petry,et al.  Constant division algorithms , 1989, CSC '89.

[6]  Shuo-Yen Robert Li Fast Constant Division Routines , 1985, IEEE Trans. Computers.

[7]  Ehud Artzy,et al.  A fast division technique for constant divisors , 1976, CACM.

[8]  Michael J. Wirthlin Constant Coefficient Multiplication Using Look-Up Tables , 2004, J. VLSI Signal Process..

[9]  Oscar Gustafsson,et al.  Addition Aware Quantization for Low Complexity and High Precision Constant Multiplication , 2010, IEEE Signal Processing Letters.

[10]  Levent Aksoy,et al.  Optimization of Area in Digital FIR Filters using Gate-Level Metrics , 2007, 2007 44th ACM/IEEE Design Automation Conference.

[11]  Laurent Imbert,et al.  Multiplication by a Constant is Sublinear , 2007, 18th IEEE Symposium on Computer Arithmetic (ARITH '07).

[12]  Nicola Nicolici,et al.  An Optimal and Practical Approach to Single Constant Multiplication , 2011, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[13]  Oscar Gustafsson,et al.  Lower Bounds for Constant Multiplication Problems , 2007, IEEE Transactions on Circuits and Systems II: Express Briefs.

[14]  Florent de Dinechin,et al.  Floating-point exponential functions for DSP-enabled FPGAs , 2010, 2010 International Conference on Field-Programmable Technology.

[15]  O. Gustafsson,et al.  Simplified Design of Constant Coefficient Multipliers , 2006 .

[16]  Markus Püschel,et al.  Multiplierless multiple constant multiplication , 2007, TALG.

[17]  Robert L. Bernstein Multiplication by integer constants , 1986, Softw. Pract. Exp..

[18]  Jean-Michel Muller,et al.  Handbook of Floating-Point Arithmetic (2nd Ed.) , 2018 .