Affiliation:
1. Simon Fraser University, Burnaby BC, Canada
Abstract
In today’s FPGA-based soft-processors, one of the slowest instructions is integer division. Compared to the low single-digit latency of other arithmetic operations, the fixed 32-cycle latency of radix-2 division is substantially longer. Given that today’s soft-processors typically only implement
radix-2
division—if they support hardware division at all—there is significant potential to improve the performance of integer dividers.
In this work, we present a set of high-performance, data-dependent, variable-latency integer dividers for FPGA-based soft-processors that we call
Quick-Div
. We compare them to various radix-N dividers and provide a thorough analysis in terms of latency and resource usage. In addition, we analyze the frequency scaling for such divider designs when (1) treated as a stand-alone unit and (2) integrated as part of a high-performance soft-processor. Moreover, we provide additional theoretical analysis of different dividers’ behaviour and develop a new better-performing
Quick-Div
variant, called
Quick-radix-4
. Experimental results show that our
Quick-radix-4
design can achieve up to 6.8× better performance and 6.1× better performance-per-LUT over the
radix-2
divider for applications such as random number generation. Even in cases where division operations constitute as little as 1% of all executed instructions,
Quick-radix-4
provides a performance uplift of 16% compared to the radix-2 divider.
Funder
NSERC Discovery
NSERC Alliance
CFI John R. Evans Leaders Fund
Simon Fraser University New Faculty Start-up Grant
Publisher
Association for Computing Machinery (ACM)
Reference34 articles.
1. Cobham Gaisler A.B. 2021. GRLIB IP Core User’s Manual. Retrieved from gaisler.com/products/grlib/grip.pdf.
2. A multi-radix approach to asynchronous division
3. High-radix division and square-root with speculation
4. Jack W. Crenshaw. 1998. Integer Square Roots. Retrieved from https://www.embedded.com/electronics-blogs/programmer-s-toolbox/4219659/Integer-Square-Roots.