Efficient Combinational Circuits for Division by Small Integer Constants

Division of an integer by an integer constant is a widely used operation and hence justifies a customized efficient implementation. There are various versions of this operation. This paper attacks a particular version of this problem, where the divisor is small and the circuit outputs a quotient and remainder. We propose a fast (low-latency) yet area-efficient combinational circuit topology, which we call Binary Tree based Constant Division (BTCD). BTCD uses a collection of small LUTs wired to each other to form a binary tree. The circuit also has bunch of adders, whose latencies are almost hidden as they operate in parallel with the binary tree. We wrote RTL code generators for BTCD and two previous works in the literature, then generated circuits for dividends of up to 128 bits and divisors of 3, 5, 11, and 23. We synthesized the generated RTL designs using a commercial ASIC synthesis tool. BTCD strikes a good balance between timing (latency) and area. It is up to 3.3 times better in Area-Timing Product (ATP) compared to the best alternative. ATP has a good correlation with energy consumption.

[1]  George A. Constantinides,et al.  Correctly rounded constant integer division via multiply-add , 2012, 2012 IEEE International Symposium on Circuits and Systems.

[2]  F. Petry,et al.  Division techniques for integers of the form 2n±1 , 1993 .

[3]  Florent de Dinechin,et al.  Table-Based Division by Small Integer Constants , 2012, ARC.

[4]  M. Brutscheck,et al.  Constant Divider Structures of the Form 2 n ±1 , 2000 .

[5]  Robert Alverson,et al.  Integer division using reciprocals , 1991, [1991] Proceedings 10th IEEE Symposium on Computer Arithmetic.

[6]  Florent de Dinechin Multiplication by Rational Constants , 2012, IEEE Trans. Circuits Syst. II Express Briefs.

[7]  David H. Jacobsohn A Combinatoric Division Algorithm for Fixed-Integer Divisors , 1973, IEEE Trans. Computers.