A methodology for designing and analyzing fixed-point implementations of computational data paths
David M. Buehler, G.W. Donohoe · 2004
Due to the high cost of circuitry for performing floating-point arithmetic (in terms of area, design complexity and power consumption), the Reconfigurable DataPath Processor (RDPP) only has circuitry for performing integer arithmetic. When floating-point circuitry is unavailable, values from the mathematical field of reals can be represented using a fixed-point representation. However, implementing a computation using fixed-point representations of value is much more challenging than implementing the same computation using floating-point representations of values. This is because the designer has to determine and implement alignment operations, resealing operations and overflow protection operations—operations which are built into floating-point circuitry—for himself. This work presents a theoretical foundation which can be used to determine how to implement a computation using fixed-point numerical representations. This theory is based on a notation for the partitioning of the fixed-point value's runtime integer into a sign region; an integer region and a fractional region. A method for determining the partitioning of results of the mathematical operations addition, subtraction, and multiplication is presented. This method is based on a static analysis of the computation which determines a partitioning, estimated value ranges and estimated accumulated truncation error for each node in the computation. A software design tool has been written which implements this theory, for evaluation purposes. The software tool takes a high-level description of an algorithm and creates an implementation which uses fixed-point representations of numerical values. It also provides feedback on the implementation it creates, including information about the range and resolution of all variables, numbers of bits truncated, and cumulative maximum truncation error. The software tool was used to implement several example problems, which were taken from the RDPP project's requirements, using fixed-point values. The quality of these implementations was then evaluated, providing a measure of how useful the theory is in practice.